multilib osdir search paths for powerpc*-linux
authorAlan Modra <amodra@gmail.com>
Tue, 24 Sep 2013 06:29:39 +0000 (06:29 +0000)
committerAlan Modra <amodra@gmail.com>
Fri, 15 Nov 2013 04:54:25 +0000 (15:24 +1030)
(cherry picked from commit 6c668e71eb5f8a9a3355e239738c85448adfc0e8)

ld/ChangeLog
ld/emulparams/elf32ppccommon.sh
ld/emulparams/elf64ppc.sh

index c3796fb..cc9c435 100644 (file)
@@ -1,3 +1,12 @@
+2013-11-15  Alan Modra  <amodra@gmail.com>
+
+       Apply mainline changes to 2.24
+       2013-09-24  Alan Modra  <amodra@gmail.com>
+       * emulparams/elf32ppccommon.sh (LIBPATH_SUFFIX): Provide 32-bit
+       and cross-endian values.
+       * emulparams/elf64ppc.sh: Source elf32ppccomon.sh.  Delete duplicate,
+       and unset unwanted variables.
+
 2013-10-10  Roland McGrath  <mcgrathr@google.com>
 
        * ldmisc.c (vfinfo): Use Boolean ? "" : ":" in place of ":" + Boolean.
index 15cb3b1..049fdb9 100644 (file)
@@ -1,5 +1,5 @@
 # The PLT-agnostic parts of a generic 32-bit ELF PowerPC target.  Included by:
-# elf32ppc.sh elf32ppcvxworks.sh
+# elf32ppc.sh elf32ppcvxworks.sh elf64ppc.sh
 TEMPLATE_NAME=elf32
 GENERATE_SHLIB_SCRIPT=yes
 GENERATE_PIE_SCRIPT=yes
@@ -45,6 +45,14 @@ if test `echo "$host" | sed -e s/64//` = `echo "$target" | sed -e s/64//`; then
 fi
 
 # Look for 64 bit target libraries in /lib64, /usr/lib64 etc., first.
-case "$EMULATION_NAME" in
-  *64*) LIBPATH_SUFFIX=64 ;;
+# Similarly, look for 32 bit libraries in /lib32, /usr/lib32 etc.
+case "$host":"$EMULATION_NAME" in
+  *le-*:*64lppc*) LIBPATH_SUFFIX=64 ;;
+  *le-*:*32lppc*) LIBPATH_SUFFIX=32 ;;
+  *le-*:*64*) LIBPATH_SUFFIX=64be ;;
+  *le-*:*32*) LIBPATH_SUFFIX=32be ;;
+  *:*64lppc*) LIBPATH_SUFFIX=64le ;;
+  *:*32lppc*) LIBPATH_SUFFIX=32le ;;
+  *:*64*) LIBPATH_SUFFIX=64 ;;
+  *:*32*) LIBPATH_SUFFIX=32 ;;
 esac
index 8611686..355e046 100644 (file)
@@ -1,19 +1,19 @@
+. ${srcdir}/emulparams/elf32ppccommon.sh
 . ${srcdir}/emulparams/plt_unwind.sh
-TEMPLATE_NAME=elf32
 EXTRA_EM_FILE=ppc64elf
 ELFSIZE=64
-GENERATE_SHLIB_SCRIPT=yes
-GENERATE_PIE_SCRIPT=yes
-SCRIPT_NAME=elf
 OUTPUT_FORMAT="elf64-powerpc"
-NO_REL_RELOCS=yes
 TEXT_START_ADDR=0x10000000
 #SEGMENT_SIZE=0x10000000
-MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
-COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
 ARCH=powerpc:common64
-MACHINE=
 NOP=0x60000000
+unset EXECUTABLE_SYMBOLS
+unset SDATA_START_SYMBOLS
+unset SDATA2_START_SYMBOLS
+unset SBSS_START_SYMBOLS
+unset SBSS_END_SYMBOLS
+unset OTHER_END_SYMBOLS
+unset OTHER_RELRO_SECTIONS
 OTHER_TEXT_SECTIONS="*(.sfpr .glink)"
 BSS_PLT=
 OTHER_BSS_SYMBOLS="
@@ -39,18 +39,3 @@ OTHER_READWRITE_SECTIONS="
   .toc1                ${RELOCATING-0} :${RELOCATING+ ALIGN(8)} { *(.toc1) }
   .opd         ${RELOCATING-0} :${RELOCATING+ ALIGN(8)} { KEEP (*(.opd)) }
   .branch_lt   ${RELOCATING-0} :${RELOCATING+ ALIGN(8)} { *(.branch_lt) }"
-
-# Treat a host that matches the target with the possible exception of "64"
-# in the name as if it were native.
-if test `echo "$host" | sed -e s/64//` = `echo "$target" | sed -e s/64//`; then
-  case " $EMULATION_LIBPATH " in
-    *" ${EMULATION_NAME} "*)
-      NATIVE=yes
-      ;;
-  esac
-fi
-
-# Look for 64 bit target libraries in /lib64, /usr/lib64 etc., first.
-case "$EMULATION_NAME" in
-  *64*) LIBPATH_SUFFIX=64 ;;
-esac