* config.bfd (s390-*-linux*): Add targ64_selvecs.
authorJakub Jelinek <jakub@redhat.com>
Wed, 16 Oct 2002 19:54:54 +0000 (19:54 +0000)
committerJakub Jelinek <jakub@redhat.com>
Wed, 16 Oct 2002 19:54:54 +0000 (19:54 +0000)
(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
bfd/config.bfd
ld/ChangeLog
ld/configure.tgt
ld/emulparams/elf64_s390.sh
ld/emulparams/elf64_sparc.sh
ld/emulparams/elf_x86_64.sh
libiberty/ChangeLog
libiberty/config.table

index f2d81b9..4625676 100644 (file)
@@ -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,
index cfe6097..fdc7bbe 100644 (file)
@@ -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
 
index 0fe7133..44009b7 100644 (file)
@@ -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.
index 48b2c5c..0aca3d0 100644 (file)
@@ -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 ;;
 
index 8416c89..236fd17 100644 (file)
@@ -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
index a4706b5..7a4d2dc 100644 (file)
@@ -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
index 1786e33..a428bfc 100644 (file)
@@ -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
index 10e7740..4a32a3b 100644 (file)
@@ -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
index b9a2479..df48ce9 100644 (file)
@@ -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