mirror of
https://github.com/opnsense/src.git
synced 2026-05-28 04:12:45 -04:00
Fix ld not respecting --sysroot.
ld(1) uses the /usr/libdata/ldscripts when linking. These scripts add in the
default search paths of /lib and /usr/lib via 'SEARCH_DIR("DIR")'. These
need to be prefixed by '=' so that the --sysroot flag is respected. This
is not a problem with buildworld since the TOOLS_PREFIX is baked into the
cross-ld. However it is a problem when trying to use ld(1) with --sysroot
anywhere else as it ends up still reading /lib and /usr/lib despite --sysroot.
The default --sysroot (TARGET_SYSTEM_ROOT) is '/' for /usr/bin/ld.
I found this while building with META MODE with uses only --sysroot with
/usr/bin/ld, and found that libraries that I had not built in its sysroot
directory were leaking in. This didn't happen with ports binutils either. This
would also impact external compiler support.
Reviewed by: bapt, brooks
MFC after: 2 weeks
Sponsored by: EMC / Isilon Storage Division
Differential Revision: https://reviews.freebsd.org/D4262
This commit is contained in:
parent
15d107308f
commit
8b2b71b415
1 changed files with 1 additions and 1 deletions
|
|
@ -50,7 +50,7 @@ FILES= ${LDSCRIPTS:S|^|ldscripts/|}
|
|||
FILESDIR= ${SCRIPTDIR}
|
||||
|
||||
HOST= ${TARGET_TUPLE}
|
||||
LIBSEARCHPATH= \"${TOOLS_PREFIX}/lib\":\"${TOOLS_PREFIX}/usr/lib\"
|
||||
LIBSEARCHPATH= \"=/lib\":\"=/usr/lib\"
|
||||
.for ext in ${ELF_SCR_EXT}
|
||||
LDSCRIPTS+= ${NATIVE_EMULATION}.${ext}
|
||||
ldscripts/${NATIVE_EMULATION}.${ext}: e${NATIVE_EMULATION}.c
|
||||
|
|
|
|||
Loading…
Reference in a new issue