Subject: [bug#48275] [PATCH] gnu: ocaml: Depend on libiberty.

From: Ludovic Courtès <[email-masked]>
Date: Fri, 7 May 2021 14:22:18 +0200

From: Ludovic Courtès <[email-masked]>

Currently gcc:lib does not include libiberty so this change restores the
initial intent.

* gnu/packages/ocaml.scm (ocaml-4.11)[inputs]: Replace "gcc:lib" by
"libiberty".
---
 gnu/packages/ocaml.scm | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

Hi there!

I noticed that “guix graph ocaml” looked weird; this change clarifies
the original intent.  In fact, the addition of gcc:lib was useless AFAICS:

--8<---------------cut here---------------start------------->8---
$ guix build -e '(@@ (gnu packages commencement) gcc-final)'
/gnu/store/01b4w3m6mp55y531kyi1g8shh722kwqm-gcc-7.5.0-lib
/gnu/store/rn75fm7adgx3pw5j8pg3bczfqq1y17lk-gcc-7.5.0
$ ls /gnu/store/01b4w3m6mp55y531kyi1g8shh722kwqm-gcc-7.5.0-lib/lib/*ibert*
ls: ne eblas atingi '/gnu/store/01b4w3m6mp55y531kyi1g8shh722kwqm-gcc-7.5.0-lib/lib/*ibert*': Dosiero aŭ dosierujo ne ekzistas
--8<---------------cut here---------------end--------------->8---

With this change I see that libiberty is indeed used while building
[email-masked]:

--8<---------------cut here---------------start------------->8---
../boot/ocamlrun ../boot/ocamlc -g -nostdlib -I ../boot -use-prims ../runtime/primitives -I .. -c -absname -w +a-4-9-41-42-44-45-48 -strict-sequence -warn-error A -principal -safe-string -strict-formats -bin-annot -I ../utils -I ../parsing -I ../typing -I ../bytecomp -I ../middle_end -I ../middle_end/closure -I ../middle_end/flambda -I ../middle_end/flambda/base_types -I ../driver -I ../toplevel -I ../file_formats -I ../lambda - opnames.ml
gcc  -O2 -fno-strict-aliasing -fwrapv -Wall -Wdeclaration-after-statement -fno-common -fexcess-precision=standard -fno-tree-vrp -ffunction-sections -o objinfo_helper objinfo_helper.o -lbfd -ldl  -liberty -lz
--8<---------------cut here---------------end--------------->8---

There’s no ‘-liberty’ in the build log of 4.09 though.

According to ‘guix refresh -l ocaml [email-masked]’, this change is OK
for ‘master’.

Thoughts?

Ludo’.

diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index 427ea38ccc..272f5bf268 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -200,8 +200,7 @@ This package produces a native @command{ocamlc} and a bytecode @command{ocamllex
        ("pkg-config" ,pkg-config)))
     (inputs
      `(("libx11" ,libx11)
-       ;; For libiberty, needed for objdump support.
-       ("gcc:lib" ,(canonical-package gcc) "lib")
+       ("libiberty" ,libiberty)               ;needed for objdump support
        ("zlib" ,zlib)))                       ;also needed for objdump support
     (arguments
      `(#:phases
-- 
2.31.1