aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2013-09-24 06:29:39 +0000
committerAlan Modra <amodra@gmail.com>2013-09-24 06:29:39 +0000
commit6c668e71eb5f8a9a3355e239738c85448adfc0e8 (patch)
tree09ba860928db4145a0ea4d5076027a1742340bd9
parent0f70b6b5041b7455a72da513e4d36630f8bacbf1 (diff)
downloadfsf-binutils-gdb-6c668e71eb5f8a9a3355e239738c85448adfc0e8.zip
fsf-binutils-gdb-6c668e71eb5f8a9a3355e239738c85448adfc0e8.tar.gz
fsf-binutils-gdb-6c668e71eb5f8a9a3355e239738c85448adfc0e8.tar.bz2
* emulparams/elf32ppccommon.sh (LIBPATH_SUFFIX): Provide 32-bit
and cross-endian values. * emulparams/elf64ppc.sh: Source elf32ppccomon.sh. Delete duplicate, and unset unwanted variables.
-rw-r--r--ld/ChangeLog7
-rw-r--r--ld/emulparams/elf32ppccommon.sh14
-rw-r--r--ld/emulparams/elf64ppc.sh31
3 files changed, 26 insertions, 26 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 6dfce36..e93bdea 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,5 +1,12 @@
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-09-24 Alan Modra <amodra@gmail.com>
+
* genscripts.sh (LIB_PATH): Don't exclude libdir or tooldir when
sysrooted. Also, don't always add tooldir when non-sysrooted.
Instead add both when native and tooldir also when TOOL_DIR is
diff --git a/ld/emulparams/elf32ppccommon.sh b/ld/emulparams/elf32ppccommon.sh
index 15cb3b1..049fdb9 100644
--- a/ld/emulparams/elf32ppccommon.sh
+++ b/ld/emulparams/elf32ppccommon.sh
@@ -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
diff --git a/ld/emulparams/elf64ppc.sh b/ld/emulparams/elf64ppc.sh
index 8611686..355e046 100644
--- a/ld/emulparams/elf64ppc.sh
+++ b/ld/emulparams/elf64ppc.sh
@@ -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