aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/config.bfd2
-rw-r--r--ld/ChangeLog9
-rw-r--r--ld/configure.tgt12
-rw-r--r--ld/emulparams/elf64_s390.sh30
-rw-r--r--ld/emulparams/elf64_sparc.sh45
-rw-r--r--ld/emulparams/elf_x86_64.sh35
-rw-r--r--libiberty/ChangeLog4
-rw-r--r--libiberty/config.table1
9 files changed, 100 insertions, 43 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index f2d81b9..4625676 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2002-10-16 Jakub Jelinek <jakub@redhat.com>
+
+ * config.bfd (s390-*-linux*): Add targ64_selvecs.
+ (s390x-*-linux*): Add targ_selvecs.
+
2002-10-16 Alan Modra <amodra@bigpond.net.au>
* Makefile.am (BFD32_BACKENDS): Remove elfarmqnx-nabi.lo,
diff --git a/bfd/config.bfd b/bfd/config.bfd
index cfe6097..fdc7bbe 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 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
diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog
index 10e7740..4a32a3b 100644
--- a/libiberty/ChangeLog
+++ b/libiberty/ChangeLog
@@ -1,3 +1,7 @@
+2002-10-16 Jakub Jelinek <jakub@redhat.com>
+
+ * config.table: Use mh-s390pic for s390x too.
+
2002-10-06 Andreas Jaeger <aj@suse.de>
* libiberty/cplus-dem.c (ada_demangle): Get rid of unneeded
diff --git a/libiberty/config.table b/libiberty/config.table
index b9a2479..df48ce9 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