From f52d1d64053435bf10413c8722f8c547fcdd08ef Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Wed, 16 Oct 2002 19:54:54 +0000 Subject: [PATCH] * config.bfd (s390-*-linux*): Add targ64_selvecs. (s390x-*-linux*): Add targ_selvecs. * config.table: Use mh-s390pic for s390x too. * configure.tgt (s390x-*-linux*): Add elf_s390 emulation. (s390-*-linux*): Add elf64_s390 emulation if want64. * emulparams/elf64_sparc.sh (LIB_PATH): Update to match 2002-05-22 genscript.sh changes. * emulparams/elf_x86_64.sh (LIB_PATH): Likewise. * emulparams/elf64_s390.sh (LIB_PATH): Set up native 64 bit dirs. --- bfd/ChangeLog | 5 ++++ bfd/config.bfd | 2 ++ ld/ChangeLog | 9 ++++++++ ld/configure.tgt | 12 ++++++++-- ld/emulparams/elf64_s390.sh | 30 ++++++++++++++++++++++++ ld/emulparams/elf64_sparc.sh | 45 ++++++++++++++++++------------------ ld/emulparams/elf_x86_64.sh | 35 +++++++++++++--------------- libiberty/ChangeLog | 4 ++++ libiberty/config.table | 1 + 9 files changed, 100 insertions(+), 43 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index f2d81b9f5f..4625676004 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2002-10-16 Jakub Jelinek + + * config.bfd (s390-*-linux*): Add targ64_selvecs. + (s390x-*-linux*): Add targ_selvecs. + 2002-10-16 Alan Modra * Makefile.am (BFD32_BACKENDS): Remove elfarmqnx-nabi.lo, diff --git a/bfd/config.bfd b/bfd/config.bfd index cfe6097f5a..fdc7bbe485 100644 --- a/bfd/config.bfd +++ b/bfd/config.bfd @@ -915,10 +915,12 @@ case "${targ}" in s390-*-linux*) targ_defvec=bfd_elf32_s390_vec + targ64_selvecs=bfd_elf64_s390_vec ;; #ifdef BFD64 s390x-*-linux*) targ_defvec=bfd_elf64_s390_vec + targ_selvecs=bfd_elf32_s390_vec ;; #endif diff --git a/ld/ChangeLog b/ld/ChangeLog index 0fe7133e6c..44009b74c3 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,12 @@ +2002-10-16 Jakub Jelinek + + * configure.tgt (s390x-*-linux*): Add elf_s390 emulation. + (s390-*-linux*): Add elf64_s390 emulation if want64. + * emulparams/elf64_sparc.sh (LIB_PATH): Update to match 2002-05-22 + genscript.sh changes. + * emulparams/elf_x86_64.sh (LIB_PATH): Likewise. + * emulparams/elf64_s390.sh (LIB_PATH): Set up native 64 bit dirs. + 2002-10-15 Alan Modra * ldlang.c (load_symbols): Revert last change. diff --git a/ld/configure.tgt b/ld/configure.tgt index 48b2c5c045..0aca3d00e6 100644 --- a/ld/configure.tgt +++ b/ld/configure.tgt @@ -518,8 +518,16 @@ fr30-*-*) targ_emul=elf32fr30 ;; mcore-*-pe) targ_emul=mcorepe ; targ_extra_ofiles="deffilep.o pe-dll.o" ;; mcore-*-elf) targ_emul=elf32mcore ;; -s390x-*-linux*) targ_emul=elf64_s390 ;; -s390-*-linux*) targ_emul=elf_s390 ;; +s390x-*-linux*) targ_emul=elf64_s390 + targ_extra_emuls=elf_s390 + targ_extra_libpath=$targ_extra_emuls + tdir_elf_s390=`echo ${targ_alias} | sed -e 's/s390x/s390/'` ;; +s390-*-linux*) targ_emul=elf_s390 + if test "${want64}" = "true"; then + targ_extra_emuls=elf64_s390 + targ_extra_libpath=$targ_extra_emuls + tdir_elf64_s390=`echo ${targ_alias} | sed -e 's/s390/s390x/'` + fi ;; *-*-ieee*) targ_emul=vanilla ;; ip2k-*-elf) targ_emul=elf32ip2k ;; diff --git a/ld/emulparams/elf64_s390.sh b/ld/emulparams/elf64_s390.sh index 8416c89e11..236fd1767e 100644 --- a/ld/emulparams/elf64_s390.sh +++ b/ld/emulparams/elf64_s390.sh @@ -9,3 +9,33 @@ MACHINE= NOP=0x07070707 TEMPLATE_NAME=elf32 GENERATE_SHLIB_SCRIPT=yes + +# Treat a host that matches the target with the possible exception of "x" +# in the name as if it were native. +if test `echo "$host" | sed -e s/390x/390/` \ + = `echo "$target" | sed -e s/390x/390/`; then + case " $EMULATION_LIBPATH " in + *" ${EMULATION_NAME} "*) + LIB_PATH=${libdir} + for lib in ${NATIVE_LIB_DIRS}; do + case :${LIB_PATH}: in + *:${lib}:*) ;; + *) LIB_PATH=${LIB_PATH}:${lib} ;; + esac + done + + case "$target" in + s390*-linux*) + suffix=64 ;; + esac + + # Look for 64 bit target libraries in /lib64, /usr/lib64 etc., first + # on Linux. + if [ -n "$suffix" ]; then + case "$EMULATION_NAME" in + *64*) + LIB_PATH=`echo ${LIB_PATH}: | sed -e s,:,$suffix:,g`$LIB_PATH ;; + esac + fi ;; + esac +fi diff --git a/ld/emulparams/elf64_sparc.sh b/ld/emulparams/elf64_sparc.sh index a4706b5fe8..7a4d2dc9c5 100644 --- a/ld/emulparams/elf64_sparc.sh +++ b/ld/emulparams/elf64_sparc.sh @@ -22,36 +22,37 @@ case "$target" in ;; esac -if [ "x${host}" = "x${target}" ]; then +# Treat a host that matches the target with the possible exception of "64" +# and "v7", "v8", "v9" in the name as if it were native. +if test `echo "$host" | sed -e 's/64//;s/v[789]//'` \ + = `echo "$target" | sed -e 's/64//;s/v[789]//'`; then case " $EMULATION_LIBPATH " in *" ${EMULATION_NAME} "*) - # Native, and default or emulation requesting LIB_PATH. + LIB_PATH=${libdir} + for lib in ${NATIVE_LIB_DIRS}; do + case :${LIB_PATH}: in + *:${lib}:*) ;; + *) LIB_PATH=${LIB_PATH}:${lib} ;; + esac + done # Linux and Solaris modify the default library search path # to first include a 64-bit specific directory. It's put # in slightly different places on the two systems. case "$target" in - sparc*-linux*) - suffix=64 ;; - sparc*-solaris*) - suffix=/sparcv9 ;; + sparc*-linux*) + suffix=64 ;; + sparc*-solaris*) + suffix=/sparcv9 ;; esac - if [ -n "${suffix}" ]; then - - LIB_PATH=/lib${suffix}:/lib - LIB_PATH=${LIB_PATH}:/usr/lib${suffix}:/usr/lib - if [ -n "${NATIVE_LIB_DIRS}" ]; then - LIB_PATH=${LIB_PATH}:`echo ${NATIVE_LIB_DIRS} | sed s_:_${suffix}:_g`${suffix}:${NATIVE_LIB_DIRS} - fi - if [ "${libdir}" != /usr/lib ]; then - LIB_PATH=${LIB_PATH}:${libdir}${suffix}:${libdir} - fi - if [ "${libdir}" != /usr/local/lib ]; then - LIB_PATH=${LIB_PATH}:/usr/local/lib${suffix}:/usr/local/lib - fi - - fi - ;; + # Look for 64 bit target libraries in /lib64, /usr/lib64 etc., first + # on Linux and /lib/sparcv9, /usr/lib/sparcv9 etc. on Solaris. + if [ -n "$suffix" ]; then + case "$EMULATION_NAME" in + *64*) + LIB_PATH=`echo ${LIB_PATH}: | sed -e s,:,$suffix:,g`$LIB_PATH ;; + esac + fi ;; esac fi diff --git a/ld/emulparams/elf_x86_64.sh b/ld/emulparams/elf_x86_64.sh index 1786e33946..a428bfc123 100644 --- a/ld/emulparams/elf_x86_64.sh +++ b/ld/emulparams/elf_x86_64.sh @@ -15,30 +15,27 @@ NO_SMALL_DATA=yes if [ "x${host}" = "x${target}" ]; then case " $EMULATION_LIBPATH " in *" ${EMULATION_NAME} "*) - # Native, and default or emulation requesting LIB_PATH. + LIB_PATH=${libdir} + for lib in ${NATIVE_LIB_DIRS}; do + case :${LIB_PATH}: in + *:${lib}:*) ;; + *) LIB_PATH=${LIB_PATH}:${lib} ;; + esac + done # Linux modify the default library search path to first include # a 64-bit specific directory. case "$target" in - x86_64*-linux*) - suffix=64 ;; + x86_64*-linux*) + suffix=64 ;; esac - if [ -n "${suffix}" ]; then - - LIB_PATH=/lib${suffix}:/lib - LIB_PATH=${LIB_PATH}:/usr/lib${suffix}:/usr/lib - if [ -n "${NATIVE_LIB_DIRS}" ]; then - LIB_PATH=${LIB_PATH}:`echo ${NATIVE_LIB_DIRS} | sed s_:_${suffix}:_g`${suffix}:${NATIVE_LIB_DIRS} - fi - if [ "${libdir}" != /usr/lib ]; then - LIB_PATH=${LIB_PATH}:${libdir}${suffix}:${libdir} - fi - if [ "${libdir}" != /usr/local/lib ]; then - LIB_PATH=${LIB_PATH}:/usr/local/lib${suffix}:/usr/local/lib - fi - - fi - ;; + # Look for 64 bit target libraries in /lib64, /usr/lib64 etc., first. + if [ -n "$suffix" ]; then + case "$EMULATION_NAME" in + *64*) + LIB_PATH=`echo ${LIB_PATH}: | sed -e s,:,$suffix:,g`$LIB_PATH ;; + esac + fi ;; esac fi diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog index 10e7740420..4a32a3b298 100644 --- a/libiberty/ChangeLog +++ b/libiberty/ChangeLog @@ -1,3 +1,7 @@ +2002-10-16 Jakub Jelinek + + * config.table: Use mh-s390pic for s390x too. + 2002-10-06 Andreas Jaeger * libiberty/cplus-dem.c (ada_demangle): Get rid of unneeded diff --git a/libiberty/config.table b/libiberty/config.table index b9a2479aac..df48ce9952 100644 --- a/libiberty/config.table +++ b/libiberty/config.table @@ -39,6 +39,7 @@ if [ "${shared}" = "yes" ]; then powerpc*-*-aix*) ;; powerpc*-*-*) frag=mh-ppcpic ;; sparc*-*-*) frag=mh-sparcpic ;; + s390*-*-*) frag=mh-s390pic ;; *) frag=mh-${host_cpu}pic ;; esac if [ -n "${frag}" ]; then -- 2.34.1