X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=ld%2Femulparams%2Felf32ppccommon.sh;h=da892988f5df808f286a826fe69a4125399beb09;hb=1ee1a363454d88a87ad2ade7530b2a7fb670021e;hp=15cb3b123a7ea5e6a2a974b69f7d875bc4803907;hpb=485cf679681e0218e710df1df17a9158c1445e47;p=deliverable%2Fbinutils-gdb.git diff --git a/ld/emulparams/elf32ppccommon.sh b/ld/emulparams/elf32ppccommon.sh index 15cb3b123a..da892988f5 100644 --- a/ld/emulparams/elf32ppccommon.sh +++ b/ld/emulparams/elf32ppccommon.sh @@ -1,6 +1,8 @@ # The PLT-agnostic parts of a generic 32-bit ELF PowerPC target. Included by: -# elf32ppc.sh elf32ppcvxworks.sh -TEMPLATE_NAME=elf32 +# elf32ppc.sh elf32ppcvxworks.sh elf64ppc.sh +source_sh ${srcdir}/emulparams/dynamic_undefined_weak.sh + +TEMPLATE_NAME=elf GENERATE_SHLIB_SCRIPT=yes GENERATE_PIE_SCRIPT=yes SCRIPT_NAME=elf @@ -13,8 +15,6 @@ ARCH=powerpc:common MACHINE= EXECUTABLE_SYMBOLS='PROVIDE (__stack = 0); PROVIDE (___stack = 0);' if test -z "${CREATE_SHLIB}"; then - SDATA_START_SYMBOLS="PROVIDE (_SDA_BASE_ = 32768);" - SDATA2_START_SYMBOLS="PROVIDE (_SDA2_BASE_ = 32768);" SBSS_START_SYMBOLS="PROVIDE (__sbss_start = .); PROVIDE (___sbss_start = .);" SBSS_END_SYMBOLS="PROVIDE (__sbss_end = .); PROVIDE (___sbss_end = .);" else @@ -23,7 +23,7 @@ else unset SBSS_START_SYMBOLS unset SBSS_END_SYMBOLS fi -OTHER_END_SYMBOLS="__end = .;" +OTHER_END_SYMBOLS="${CREATE_SHLIB+PROVIDE (}__end = .${CREATE_SHLIB+)};" OTHER_RELRO_SECTIONS=" .fixup ${RELOCATING-0} : { *(.fixup) } .got1 ${RELOCATING-0} : { *(.got1) } @@ -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 `echo "$target" | sed -e 's/-.*//'`:"$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