[PATCH] gnu: ocaml: Depend on libiberty.

  • Done
  • quality assurance status badge
Details
2 participants
  • Julien Lepiller
  • Ludovic Courtès
Owner
unassigned
Submitted by
Ludovic Courtès
Severity
normal
L
L
Ludovic Courtès wrote on 7 May 2021 14:22
(address . guix-patches@gnu.org)(name . Ludovic Courtès)(address . ludovic.courtes@inria.fr)
20210507122218.25615-1-ludo@gnu.org
From: Ludovic Courtès <ludovic.courtes@inria.fr>

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:

Toggle snippet (7 lines)
$ 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

With this change I see that libiberty is indeed used while building
ocaml@4.11:

Toggle snippet (4 lines)
../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

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

According to ‘guix refresh -l ocaml ocaml@4.09’, this change is OK
for ‘master’.

Thoughts?

Ludo’.

Toggle diff (16 lines)
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
J
J
Julien Lepiller wrote on 7 May 2021 14:52
(name . Ludovic Courtès)(address . ludovic.courtes@inria.fr)
C006B343-1C65-47C1-9500-25A12BA28317@lepiller.eu
LGTM, thanks !

Le 7 mai 2021 08:22:18 GMT-04:00, "Ludovic Courtès" <ludo@gnu.org> a écrit :
Toggle quote (73 lines)
>From: Ludovic Courtès <ludovic.courtes@inria.fr>
>
>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
>ocaml@4.11:
>
>--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 ocaml@4.09’, 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
Attachment: file
L
L
Ludovic Courtès wrote on 9 May 2021 23:53
Re: bug#48275: [PATCH] gnu: ocaml: Depend on libiberty.
(name . Julien Lepiller)(address . julien@lepiller.eu)(address . 48275-done@debbugs.gnu.org)
87zgx360cg.fsf_-_@gnu.org
Julien Lepiller <julien@lepiller.eu> skribis:

Toggle quote (2 lines)
> LGTM, thanks !

Pushed as 28ae35850357acfda42d3c82c29df37149a6b8d0, thank you.

Ludo’.
Closed
?