Submitted By: Ryan Oliver (ryan dot oliver at pha dot com dot au) Origin: Ryan Oliver Date: 2010-01-01 Initial package version: 2.15 (problem also exists in 2.14 series) Description: Rediffed for 2.19.1 by Jim Gifford Rediffed for 2.10 by Joe Ciccone 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}. This patch differs from the preceding genscripts-multilib patch as now USE_LIBPATH will always be set if LIB_PATH is non empty diff -Naur binutils-2.20.orig/ld/genscripts.sh binutils-2.20/ld/genscripts.sh --- binutils-2.20.orig/ld/genscripts.sh 2009-09-02 03:25:35.000000000 -0400 +++ binutils-2.20/ld/genscripts.sh 2010-01-01 12:45:50.201595087 -0500 @@ -132,7 +132,8 @@ esac # If the emulparams file sets NATIVE, make sure USE_LIBPATH is set also. -if test "x$NATIVE" = "xyes" ; then +# Also set USE_LIBPATH if LIB_PATH has been set +if [ "x$NATIVE" = "xyes" -o "x${LIB_PATH}" != "x" ] ; then USE_LIBPATH=yes fi @@ -147,17 +148,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