diff options
author | Jakub Jelinek <jakub@redhat.com> | 2002-10-16 19:54:54 +0000 |
---|---|---|
committer | Jakub Jelinek <jakub@redhat.com> | 2002-10-16 19:54:54 +0000 |
commit | f52d1d64053435bf10413c8722f8c547fcdd08ef (patch) | |
tree | 72960d6e7774f25ea520d9c6b246a8a5b0f819f9 /ld | |
parent | 74451869f4a5111186d6a84d8d288e1004d4311b (diff) | |
download | gdb-f52d1d64053435bf10413c8722f8c547fcdd08ef.zip gdb-f52d1d64053435bf10413c8722f8c547fcdd08ef.tar.gz gdb-f52d1d64053435bf10413c8722f8c547fcdd08ef.tar.bz2 |
* 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.
Diffstat (limited to 'ld')
-rw-r--r-- | ld/ChangeLog | 9 | ||||
-rw-r--r-- | ld/configure.tgt | 12 | ||||
-rw-r--r-- | ld/emulparams/elf64_s390.sh | 30 | ||||
-rw-r--r-- | ld/emulparams/elf64_sparc.sh | 45 | ||||
-rw-r--r-- | ld/emulparams/elf_x86_64.sh | 35 |
5 files changed, 88 insertions, 43 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index 0fe7133..44009b7 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,12 @@ +2002-10-16 Jakub Jelinek <jakub@redhat.com> + + * 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 <amodra@bigpond.net.au> * ldlang.c (load_symbols): Revert last change. diff --git a/ld/configure.tgt b/ld/configure.tgt index 48b2c5c..0aca3d0 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 8416c89..236fd17 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 a4706b5..7a4d2dc 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 1786e33..a428bfc 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 |