From 6c668e71eb5f8a9a3355e239738c85448adfc0e8 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Tue, 24 Sep 2013 06:29:39 +0000 Subject: [PATCH] * emulparams/elf32ppccommon.sh (LIBPATH_SUFFIX): Provide 32-bit and cross-endian values. * emulparams/elf64ppc.sh: Source elf32ppccomon.sh. Delete duplicate, and unset unwanted variables. --- ld/ChangeLog | 7 +++++++ ld/emulparams/elf32ppccommon.sh | 14 +++++++++++--- ld/emulparams/elf64ppc.sh | 31 ++++++++----------------------- 3 files changed, 26 insertions(+), 26 deletions(-) diff --git a/ld/ChangeLog b/ld/ChangeLog index 6dfce36f8f..e93bdea29b 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,10 @@ +2013-09-24 Alan Modra + + * 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 * genscripts.sh (LIB_PATH): Don't exclude libdir or tooldir when diff --git a/ld/emulparams/elf32ppccommon.sh b/ld/emulparams/elf32ppccommon.sh index 15cb3b123a..049fdb987a 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 8611686362..355e0461c3 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