* genscripts.sh (LIB_PATH): Don't exclude libdir or tooldir when
sysrooted. Also, don't always add tooldir when non-sysrooted. Instead add both when native and tooldir also when TOOL_DIR is defined. Always prepend '=' to paths when sysrooted. Always put paths with LIBPATH_SUFFIX first in search order.
This commit is contained in:
parent
8cbc424d22
commit
0f70b6b504
|
@ -1,3 +1,11 @@
|
||||||
|
2013-09-24 Alan Modra <amodra@gmail.com>
|
||||||
|
|
||||||
|
* genscripts.sh (LIB_PATH): Don't exclude libdir or tooldir when
|
||||||
|
sysrooted. Also, don't always add tooldir when non-sysrooted.
|
||||||
|
Instead add both when native and tooldir also when TOOL_DIR is
|
||||||
|
defined. Always prepend '=' to paths when sysrooted. Always
|
||||||
|
put paths with LIBPATH_SUFFIX first in search order.
|
||||||
|
|
||||||
2013-09-20 Chung-Lin Tang <cltang@codesourcery.com>
|
2013-09-20 Chung-Lin Tang <cltang@codesourcery.com>
|
||||||
|
|
||||||
* Makefile.am (enios2elf.c): Change tdir_nios2 to tdir_nios2elf.
|
* Makefile.am (enios2elf.c): Change tdir_nios2 to tdir_nios2elf.
|
||||||
|
|
145
ld/genscripts.sh
145
ld/genscripts.sh
|
@ -95,13 +95,6 @@ EMULATION_NAME=$3
|
||||||
TOOL_LIB=$4
|
TOOL_LIB=$4
|
||||||
CUSTOMIZER_SCRIPT=$5
|
CUSTOMIZER_SCRIPT=$5
|
||||||
|
|
||||||
# Can't use ${TOOL_LIB:-$target_alias} here due to an Ultrix shell bug.
|
|
||||||
if [ "x${TOOL_LIB}" = "x" ] ; then
|
|
||||||
tool_lib=${exec_prefix}/${target_alias}/lib
|
|
||||||
else
|
|
||||||
tool_lib=${exec_prefix}/${TOOL_LIB}/lib
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "x${CUSTOMIZER_SCRIPT}" = "x" ] ; then
|
if [ "x${CUSTOMIZER_SCRIPT}" = "x" ] ; then
|
||||||
CUSTOMIZER_SCRIPT=${EMULATION_NAME}
|
CUSTOMIZER_SCRIPT=${EMULATION_NAME}
|
||||||
fi
|
fi
|
||||||
|
@ -150,97 +143,87 @@ fi
|
||||||
# If the emulparams file set LIBPATH_SUFFIX, prepend an extra copy of
|
# If the emulparams file set LIBPATH_SUFFIX, prepend an extra copy of
|
||||||
# the library path with the suffix applied.
|
# the library path with the suffix applied.
|
||||||
|
|
||||||
if [ "x${LIB_PATH}" = "x" ] && [ "x${USE_LIBPATH}" = xyes ] ; then
|
# Paths with LIBPATH_SUFFIX
|
||||||
LIB_PATH2=
|
lib_path1=
|
||||||
|
# Paths without LIBPATH_SUFFIX
|
||||||
|
lib_path2=
|
||||||
|
if [ "${LIB_PATH}" != ":" ] ; then
|
||||||
|
lib_path2=${LIB_PATH}
|
||||||
|
fi
|
||||||
|
|
||||||
libs=${NATIVE_LIB_DIRS}
|
# Add args to lib_path1 and lib_path2, discarding any duplicates
|
||||||
if [ "x${use_sysroot}" != "xyes" ] ; then
|
append_to_lib_path()
|
||||||
case " ${libs} " in
|
{
|
||||||
*" ${libdir} "*) ;;
|
if [ $# != 0 ]; then
|
||||||
*) libs="${libdir} ${libs}" ;;
|
for lib in "$@"; do
|
||||||
esac
|
|
||||||
case " ${libs} " in
|
|
||||||
*" ${tool_lib} "*) ;;
|
|
||||||
*) libs="${tool_lib} ${libs}" ;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
|
|
||||||
for lib in ${libs}; do
|
|
||||||
# The "=" is harmless if we aren't using a sysroot, but also needless.
|
# The "=" is harmless if we aren't using a sysroot, but also needless.
|
||||||
if [ "x${use_sysroot}" = "xyes" ] ; then
|
if [ "x${use_sysroot}" = "xyes" ] ; then
|
||||||
lib="=${lib}"
|
lib="=${lib}"
|
||||||
fi
|
fi
|
||||||
addsuffix=
|
if test -n "${LIBPATH_SUFFIX}"; then
|
||||||
case "${LIBPATH_SUFFIX}:${lib}" in
|
case "${lib}" in
|
||||||
:*) ;;
|
*${LIBPATH_SUFFIX})
|
||||||
*:*${LIBPATH_SUFFIX}) ;;
|
case :${lib_path1}: in
|
||||||
*) addsuffix=yes ;;
|
|
||||||
esac
|
|
||||||
if test -n "$addsuffix"; then
|
|
||||||
case :${LIB_PATH}: in
|
|
||||||
*:${lib}${LIBPATH_SUFFIX}:*) ;;
|
|
||||||
::) LIB_PATH=${lib}${LIBPATH_SUFFIX} ;;
|
|
||||||
*) LIB_PATH=${LIB_PATH}:${lib}${LIBPATH_SUFFIX} ;;
|
|
||||||
esac
|
|
||||||
case :${LIB_PATH}:${LIB_PATH2}: in
|
|
||||||
*:${lib}:*) ;;
|
*:${lib}:*) ;;
|
||||||
*::) LIB_PATH2=${lib} ;;
|
::) lib_path1=${lib} ;;
|
||||||
*) LIB_PATH2=${LIB_PATH2}:${lib} ;;
|
*) lib_path1=${lib_path1}:${lib} ;;
|
||||||
esac
|
esac ;;
|
||||||
else
|
|
||||||
case :${LIB_PATH2}: in
|
|
||||||
*:${lib}:*) ;;
|
|
||||||
::) LIB_PATH2=${lib} ;;
|
|
||||||
*) LIB_PATH2=${LIB_PATH2}:${lib} ;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
case :${LIB_PATH}:${LIB_PATH2}: in
|
|
||||||
*:: | ::*) LIB_PATH=${LIB_PATH}${LIB_PATH2} ;;
|
|
||||||
*) LIB_PATH=${LIB_PATH}:${LIB_PATH2} ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
# For multilib'ed targets, ensure both ${target_alias}/lib${LIBPATH_SUFFIX}
|
|
||||||
# and ${TOOL_LIB}/lib${LIBPATH_SUFFIX} are in the default search path, because
|
|
||||||
# 64bit libraries may be in both places, depending on cross-development
|
|
||||||
# setup method (e.g.: /usr/s390x-linux/lib64 vs /usr/s390-linux/lib64)
|
|
||||||
case "${LIBPATH_SUFFIX}:${tool_lib}" in
|
|
||||||
:*) ;;
|
|
||||||
*:*${LIBPATH_SUFFIX}) ;;
|
|
||||||
*)
|
*)
|
||||||
paths="${exec_prefix}/${target_alias}/lib${LIBPATH_SUFFIX}"
|
case :${lib_path1}: in
|
||||||
if [ x"${TOOL_LIB}" != x ]; then
|
*:${lib}${LIBPATH_SUFFIX}:*) ;;
|
||||||
paths="${paths} ${exec_prefix}/${TOOL_LIB}/lib${LIBPATH_SUFFIX}"
|
::) lib_path1=${lib}${LIBPATH_SUFFIX} ;;
|
||||||
|
*) lib_path1=${lib_path1}:${lib}${LIBPATH_SUFFIX} ;;
|
||||||
|
esac ;;
|
||||||
|
esac
|
||||||
fi
|
fi
|
||||||
for path in $paths; do
|
case :${lib_path1}:${lib_path2}: in
|
||||||
case :${LIB_PATH}: in
|
*:${lib}:*) ;;
|
||||||
::: | *:${path}:*) ;;
|
*::) lib_path2=${lib} ;;
|
||||||
*) LIB_PATH=${path}:${LIB_PATH} ;;
|
*) lib_path2=${lib_path2}:${lib} ;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
;;
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Always search $(tooldir)/lib, aka /usr/local/TARGET/lib when native
|
||||||
|
# except when LIBPATH=":".
|
||||||
|
if [ "${LIB_PATH}" != ":" ] ; then
|
||||||
|
libs=
|
||||||
|
if [ "x${TOOL_LIB}" = "x" ] ; then
|
||||||
|
if [ "x${NATIVE}" = "xyes" ] ; then
|
||||||
|
libs="${exec_prefix}/${target_alias}/lib"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
# For multilib'ed targets, ensure both ${target_alias}/lib${LIBPATH_SUFFIX}
|
||||||
|
# and ${TOOL_LIB}/lib${LIBPATH_SUFFIX} are in the default search path,
|
||||||
|
# because 64bit libraries may be in both places, depending on
|
||||||
|
# cross-development setup method (e.g.: /usr/s390x-linux/lib64
|
||||||
|
# vs. /usr/s390-linux/lib64)
|
||||||
|
case "${NATIVE}:${LIBPATH_SUFFIX}:${TOOL_LIB}" in
|
||||||
|
:* | *::* | *:*:*${LIBPATH_SUFFIX}) ;;
|
||||||
|
*) libs="${exec_prefix}/${target_alias}/lib${LIBPATH_SUFFIX}" ;;
|
||||||
esac
|
esac
|
||||||
|
libs="${exec_prefix}/${TOOL_LIB}/lib ${libs}"
|
||||||
|
fi
|
||||||
|
append_to_lib_path ${libs}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Always search $(tooldir)/lib, aka /usr/local/TARGET/lib, except for
|
if [ "x${LIB_PATH}" = "x" ] && [ "x${USE_LIBPATH}" = xyes ] ; then
|
||||||
# sysrooted configurations and when LIBPATH=":".
|
libs=${NATIVE_LIB_DIRS}
|
||||||
if [ "x${use_sysroot}" != "xyes" ] ; then
|
if [ "x${NATIVE}" = "xyes" ] ; then
|
||||||
case :${LIB_PATH}: in
|
case " ${libs} " in
|
||||||
::: | *:${tool_lib}:*) ;;
|
*" ${libdir} "*) ;;
|
||||||
::) LIB_PATH=${tool_lib} ;;
|
*) libs="${libdir} ${libs}" ;;
|
||||||
*) LIB_PATH=${tool_lib}:${LIB_PATH} ;;
|
|
||||||
esac
|
|
||||||
# For multilib targets, search both $tool_lib dirs
|
|
||||||
if [ "x${LIBPATH_SUFFIX}" != "x" ] ; then
|
|
||||||
case :${LIB_PATH}: in
|
|
||||||
::: | *:${tool_lib}${LIBPATH_SUFFIX}:*) ;;
|
|
||||||
::) LIB_PATH=${tool_lib}${LIBPATH_SUFFIX} ;;
|
|
||||||
*) LIB_PATH=${tool_lib}${LIBPATH_SUFFIX}:${LIB_PATH} ;;
|
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
|
append_to_lib_path ${libs}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
case :${lib_path1}:${lib_path2}: in
|
||||||
|
*:: | ::*) LIB_PATH=${lib_path1}${lib_path2} ;;
|
||||||
|
*) LIB_PATH=${lib_path1}:${lib_path2} ;;
|
||||||
|
esac
|
||||||
|
|
||||||
LIB_SEARCH_DIRS=`echo ${LIB_PATH} | sed -e 's/:/ /g' -e 's/\([^ ][^ ]*\)/SEARCH_DIR(\\"\1\\");/g'`
|
LIB_SEARCH_DIRS=`echo ${LIB_PATH} | sed -e 's/:/ /g' -e 's/\([^ ][^ ]*\)/SEARCH_DIR(\\"\1\\");/g'`
|
||||||
|
|
||||||
# We need it for testsuite.
|
# We need it for testsuite.
|
||||||
|
|
Loading…
Reference in New Issue