[PATCH] ldscript: Omit exec_prefix from SEARCH_DIR when sysroot is specified

Mark Goncharov mark.goncharov@syntacore.com
Thu Jul 3 14:51:43 GMT 2025


Ping

  *   jimw@sifive.com
  *   amodra@gmail.com

________________________________
From: Mark Goncharov
Sent: 01 July 2025 09:05:44
To: binutils@sourceware.org
Cc: Mark Goncharov
Subject: [PATCH] ldscript: Omit exec_prefix from SEARCH_DIR when sysroot is specified

The libpath value directly influences the SEARCH_DIR entries in the generated linker scripts.
When creating entries with SEARCH_DIR("=/[path]"), the linker automatically substitutes the sysroot path for the '=' symbol.
As a result, when building with the --with-sysroot flag specified, explicitly adding exec_prefix to the library search path becomes incorrectly.

Signed-off-by: Mark Goncharov <mark.goncharov@syntacore.com>
---
 ld/genscripts.sh | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/ld/genscripts.sh b/ld/genscripts.sh
index 77a1fb465ad..c2f230a6434 100755
--- a/ld/genscripts.sh
+++ b/ld/genscripts.sh
@@ -248,9 +248,12 @@ append_to_lib_path()
 # except when LIBPATH=":".
 if [ "${LIB_PATH}" != ":" ] ; then
   libs=
+  if [ "x${use_sysroot}" != "xyes" ] ; then
+    libpath_exec_prefix="${exec_prefix}/"
+  fi
   if [ "x${TOOL_LIB}" = "x" ] ; then
     if [ "x${NATIVE}" = "xyes" ] ; then
-      libs="${exec_prefix}/${target_alias}/lib"
+      libs="${libpath_exec_prefix}/${target_alias}/lib"
     fi
   else
     # For multilib'ed targets, ensure both ${target_alias}/lib${LIBPATH_SUFFIX}
@@ -261,10 +264,10 @@ if [ "${LIB_PATH}" != ":" ] ; then
     for libpath_suffix in ${LIBPATH_SUFFIX}; do
       case "${NATIVE}:${libpath_suffix}:${TOOL_LIB}" in
         :* | *::* | *:*:*${libpath_suffix}) ;;
-       *) libs="${exec_prefix}/${target_alias}/lib${libpath_suffix}" ;;
+       *) libs="${libpath_exec_prefix}/${target_alias}/lib${libpath_suffix}" ;;
       esac
     done
-    libs="${exec_prefix}/${TOOL_LIB}/lib ${libs}"
+    libs="${libpath_exec_prefix}/${TOOL_LIB}/lib ${libs}"
   fi
   append_to_lib_path ${libs}
 fi
--
2.43.0

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://sourceware.org/pipermail/binutils/attachments/20250703/a03799b5/attachment.htm>


More information about the Binutils mailing list