* [PATCH v2 0/1] Fix rpath handling in OCaml's Makefile.rules @ 2024-12-09 17:57 Andrii Sultanov 2024-12-09 17:57 ` [PATCH v2 1/1] tools/ocaml: Specify rpath correctly for ocamlmklib Andrii Sultanov 0 siblings, 1 reply; 3+ messages in thread From: Andrii Sultanov @ 2024-12-09 17:57 UTC (permalink / raw) To: xen-devel; +Cc: Andrii Sultanov, Christian Lindig, David Scott, Anthony PERARD As reported by Nix's Xen team, OCaml stub libs would embed an absolute rpath in the binaries, which was picked up on by patchelf. This is a symptom of improper handling of -rpath-link in the first place, so correct that and get rid of the issue. Changes in v2: - Previous version mistakenly did not actually get rid of the absolute rpath, pass -L directly to the linker as well - Credit the original reporter Andrii Sultanov (1): tools/ocaml: Specify rpath correctly for ocamlmklib tools/ocaml/Makefile.rules | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -- 2.39.5 ^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH v2 1/1] tools/ocaml: Specify rpath correctly for ocamlmklib 2024-12-09 17:57 [PATCH v2 0/1] Fix rpath handling in OCaml's Makefile.rules Andrii Sultanov @ 2024-12-09 17:57 ` Andrii Sultanov 2024-12-11 11:06 ` Jan Beulich 0 siblings, 1 reply; 3+ messages in thread From: Andrii Sultanov @ 2024-12-09 17:57 UTC (permalink / raw) To: xen-devel Cc: Andrii Sultanov, Christian Lindig, David Scott, Anthony PERARD, Fernando Rodrigues, Christian Lindig ocamlmklib has special handling for C-like '-Wl,-rpath' option, but does not know how to handle '-Wl,-rpath-link', as evidenced by warnings like: "Unknown option -Wl,-rpath-link=$HOME/xen/tools/ocaml/libs/eventchn/../../../../tools/libs/toollog" Pass this option directly to the compiler with -ccopt instead. Also pass -L directly to the linker with -ldopt. This prevents embedding absolute paths from buildtime into binary's RPATH. Fixes: f7b4e4558b42 ("tools/ocaml: Fix OCaml libs rules") Reported-by: Fernando Rodrigues <alpha@sigmasquadron.net> Tested-by: Fernando Rodrigues <alpha@sigmasquadron.net> Signed-off-by: Andrii Sultanov <andrii.sultanov@cloud.com> Acked-by: Christian Lindig <christian.lindig@cloud.com> --- Changes in v2: - Pass -L directly to the linker --- tools/ocaml/Makefile.rules | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/ocaml/Makefile.rules b/tools/ocaml/Makefile.rules index b9d4b51f0a..43f7add072 100644 --- a/tools/ocaml/Makefile.rules +++ b/tools/ocaml/Makefile.rules @@ -63,7 +63,7 @@ mk-caml-lib-bytecode = $(call quiet-command, $(OCAMLC) $(OCAMLCFLAGS) -a -o $1 $ mk-caml-stubs = $(call quiet-command, $(OCAMLMKLIB) -o `basename $1 .a` $2,MKLIB,$1) mk-caml-lib-stubs = \ - $(call quiet-command, $(OCAMLMKLIB) -o `basename $1 .a | sed -e 's/^lib//'` $2 $3,MKLIB,$1) + $(call quiet-command, $(OCAMLMKLIB) -o `basename $1 .a | sed -e 's/^lib//'` $2 `echo $3 | sed -e 's/-ccopt -l/-l/g' | sed -e 's/-ccopt -L/-ldopt -L/g'`,MKLIB,$1) # define a library target <name>.cmxa and <name>.cma define OCAML_LIBRARY_template @@ -74,7 +74,7 @@ define OCAML_LIBRARY_template $(1)_stubs.a: $(foreach obj,$$($(1)_C_OBJS),$(obj).o) $(call mk-caml-stubs,$$@, $$+) lib$(1)_stubs.a: $(foreach obj,$($(1)_C_OBJS),$(obj).o) - $(call mk-caml-lib-stubs,$$@, $$+, $(foreach lib,$(LIBS_$(1)),$(lib))) + $(call mk-caml-lib-stubs,$$@, $$+, $(foreach lib,$(LIBS_$(1)),-ccopt $(lib))) endef # Dynamically linked OCaml libraries ("plugins" in Dynlink parlance) -- 2.39.5 ^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH v2 1/1] tools/ocaml: Specify rpath correctly for ocamlmklib 2024-12-09 17:57 ` [PATCH v2 1/1] tools/ocaml: Specify rpath correctly for ocamlmklib Andrii Sultanov @ 2024-12-11 11:06 ` Jan Beulich 0 siblings, 0 replies; 3+ messages in thread From: Jan Beulich @ 2024-12-11 11:06 UTC (permalink / raw) To: Andrii Sultanov Cc: Christian Lindig, David Scott, Anthony PERARD, Fernando Rodrigues, Christian Lindig, xen-devel On 09.12.2024 18:57, Andrii Sultanov wrote: > ocamlmklib has special handling for C-like '-Wl,-rpath' option, but does > not know how to handle '-Wl,-rpath-link', as evidenced by warnings like: > "Unknown option > -Wl,-rpath-link=$HOME/xen/tools/ocaml/libs/eventchn/../../../../tools/libs/toollog" > Pass this option directly to the compiler with -ccopt instead. > > Also pass -L directly to the linker with -ldopt. This prevents embedding absolute > paths from buildtime into binary's RPATH. > > Fixes: f7b4e4558b42 ("tools/ocaml: Fix OCaml libs rules") Just to mention it: The hash is that of a backport, the staging commit is 8ffcf184affb afaict. Please use the canonical (staging) hash whenever available. Jan ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2024-12-11 11:06 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-12-09 17:57 [PATCH v2 0/1] Fix rpath handling in OCaml's Makefile.rules Andrii Sultanov 2024-12-09 17:57 ` [PATCH v2 1/1] tools/ocaml: Specify rpath correctly for ocamlmklib Andrii Sultanov 2024-12-11 11:06 ` Jan Beulich
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.