[prev in list] [next in list] [prev in thread] [next in thread]
List: binutils-bugs
Subject: [Bug ld/29288] Dependent libraries cannot be found with default sysroot search dir and rpath using c
From: "galaxyking0419 at gmail dot com" <sourceware-bugzilla () sourceware ! org>
Date: 2022-06-30 12:37:51
Message-ID: bug-29288-70-OviplX0JII () http ! sourceware ! org/bugzilla/
[Download RAW message or body]
https://sourceware.org/bugzilla/show_bug.cgi?id=29288
--- Comment #8 from William Tang <galaxyking0419 at gmail dot com> ---
(In reply to Alan Modra from comment #7)
> sysroot and rpath are complicated, and can be difficult to get right. If
> using sysroot you have a linker that has access to your entire file system,
> but default searches should be as if the linker was chroot'd at the sysroot.
>
> BFD ld adds the sysroot to absolute paths in rpath when searching for shared
> library dependencies, ie. libraries not mentioned on the command line but
> found in DT_NEEDED entries of other libraries. If you accept that linking
> against libraries not mentioned on the command line is a good thing
> (debatable), then emulating the run-time loader is necessary. Note that
> gold doesn't go searching for library dependencies, hence the gold
> difference.
>
> I don't believe BFD ld prefixes -rpath paths with the sysroot in other
> circumstances. (You definitely would not want the sysroot prefix added to
> DT_NEEDED in executables you create, since they then would have the wrong
> paths if copied over to a native environment.)
>
> BFD ld also replaces an initial "=" or "$SYSROOT" in any -L or other
> paths with the sysroot. If configured with a sysroot, the default
> library search paths have the "=" prefix. eg. "=/usr/lib" and "=/lib".
Thanks for the detailed explanation. But I still cannot understand why bfd ld
always add "SEARCH_DIR("=/usr/arm-linux-gnueabihf/lib");" (which expanded to
"/usr/arm-linux-gnueabihf/usr/arm-linux-gnueabihf/lib") to the search dir
instead of something more reasonable like "SEARCH_DIR("=/lib");" (which
expanded to "/usr/arm-linux-gnueabihf/lib"). The former path is pointing to an
empty directory.
--
You are receiving this mail because:
You are on the CC list for the bug.
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic