* [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.