-
Notifications
You must be signed in to change notification settings - Fork 517
Description
It's sometimes useful to be able to relocate files in a container image. That breaks the default rpath produced by the build process, as introduced by the --codegen=link-arg=-Wl,-rpath flags.
It'd be neat to be able to transition a build subgraph to use a different relative rpath (the part between $ORIGIN and the .runfiles path suffix). For example, my binary currently embeds
0x000000000000001d (RUNPATH) Library runpath: [$ORIGIN/../../../../../../../_solib_k8/_U_A_Arust_Ucrate_Uindex_Ufips_U_Uaws-lc-fips-sys-0.13.9_S_S_Ccrypto___Uexternal_Srust_Ucrate_Uindex_Ufips_U_Uaws-lc-fips-sys-0.13.9:$ORIGIN/../../../../../../../_solib_k8/_U_A_Arust_Ucrate_Uindex_Ufips_U_Uaws-lc-fips-sys-0.13.9_S_S_Crust_Uwrapper___Uexternal_Srust_Ucrate_Uindex_Ufips_U_Uaws-lc-fips-sys-0.13.9]
and I would like to eliminate all the ../ path components in favor of just $ORIGIN/_solib_k8/_U_A_Arust_Ucrate_Uindex_Ufips_U_Uaws-lc-fips-sys-0.13.9_S_S_Ccrypto___Uexternal_Srust_Ucrate_Uindex_Ufips_U_Uaws-lc-fips-sys-0.13.9.
I'm not convinced this is a good idea, but I'm also not convinced it's a bad idea either. It's possible that this should be handled by patchelf post-processing, since that avoids recompiling the entire rust_binary when all that needs to change is a single string.
Thoughts?