On Thu, 14 Nov 2024 14:05:52 +0800, Hilton Chain wrote: > > Currently I'm 1. modifying each-lib-rpath option of 'zig build'. 2. passing > libc to linker. I'll write details on this when succeed.
1. Modification about each-lib-rpath. --8<---------------cut here---------------start------------->8--- -feach-lib-rpath Ensure adding rpath for each used dynamic library --8<---------------cut here---------------end--------------->8--- This option is on implicitly for native builds. This implicity is what our Zig currently solely relies on. I'm modifying it so that it's also on when CROSS_LIBRARY_PATH or LIBRARY_PATH is set. This approach is better than my previous one since it only adds needed libraries. 2. Pass libc to Zig's linker This was the behavior in 0.9, but changed due to issue on macOS[1]. (btw, our CPLUS_INCLUDE_PATH also has issue with macOS target[2]). RUNPATH for glibc was missing because of this, since it's the linker handling each-lib-rpath. Since we do not support macOS anyway, can we restore this behavior? I also have concern for Zig's relying on /usr/bin/env (Zig uses an ELF file to find dynamic linker, env is chosen for it's well-known). We have patched this reference, not sure if it will cause issue for cross-building Zig. Thanks --- [1]: https://github.com/ziglang/zig/issues/10765 [2]: https://github.com/ziglang/zig/issues/18063