Submitted By: Ryan Oliver (ryan dot oliver at pha dot com dot au) Origin: Ryan Oliver Date: 2004-07-15 Initial package version: 2.15 (problem also exists in 2.14 series) Description: Updated patch, use this for all binutils 2.15 series instead of the binutils-2.15.90.0.1-genscripts-multilib.patch If --with-libpath= was specified during configure (or LIB_PATH was supplied during make) we want to have these libraries added to the linker scripts search paths, and in the case of multi-lib have them processed to provide both lib and lib64 search paths. This patch produces this behaviour when building a cross-binutils. Also to fix an annoyance we remove whatever was specified (if anything) by --libdir= from the linker script search path. This is so when cross- compiling a 64bit target-native biarch toolchain we can specify the installation directory for binutils produced libraries to be */lib64 without having this directory added to the 32bit emulation search path. By rights we should really check if ${libdir} matches a search path in any of the supported emulations for this target (as opposed to only the one genscripts.sh is currently processing) and if so ignore ${libpath}. --- binutils-2.15.91.0.1-ORIG/ld/genscripts.sh 2004-05-28 04:26:04.000000000 +1000 +++ binutils-2.15.91.0.1/ld/genscripts.sh 2004-07-15 00:09:16.000000000 +1000 @@ -105,6 +105,8 @@ USE_LIBPATH=yes elif [ "x${use_sysroot}" = "xyes" ] ; then USE_LIBPATH=yes + elif [ "x${LIB_PATH}" != "x" ] ; then + USE_LIBPATH=yes fi ;; esac @@ -125,17 +127,17 @@ # # If the emulparams file set LIBPATH_SUFFIX, prepend an extra copy of # the library path with the suffix applied. - -if [ "x${LIB_PATH}" = "x" ] && [ "x${USE_LIBPATH}" = xyes ] ; then +if [ "x${USE_LIBPATH}" = xyes ] ; then LIB_PATH2= + if [ "x${LIB_PATH}" = "x" ] ; then + libs="${NATIVE_LIB_DIRS}" + else + libs=`echo ${LIB_PATH} | sed 's/:/ /g'` + LIB_PATH= + fi - libs=${NATIVE_LIB_DIRS} if [ "x${use_sysroot}" != "xyes" ] ; then case " ${libs} " in - *" ${libdir} "*) ;; - *) libs="${libdir} ${libs}" ;; - esac - case " ${libs} " in *" ${tool_lib} "*) ;; *) libs="${tool_lib} ${libs}" ;; esac