diff options
Diffstat (limited to 'ld')
-rw-r--r-- | ld/ChangeLog | 10 | ||||
-rw-r--r-- | ld/Makefile.am | 7 | ||||
-rw-r--r-- | ld/Makefile.in | 8 | ||||
-rw-r--r-- | ld/configure.tgt | 60 | ||||
-rw-r--r-- | ld/emulparams/elf32lppc.sh | 2 | ||||
-rw-r--r-- | ld/emulparams/elf32lppclinux.sh | 8 |
6 files changed, 58 insertions, 37 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index 5014b5f..ff69706 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,13 @@ +2013-04-25 Alan Modra <amodra@gmail.com> + + * Makefile.am (ALL_EMULATION_SOURCES): Add eelf32lppclinux.c. + (eelf32lppclinux.c): New rule. + * Makefile.in: Regenerate. + * configure.tgt: Merge powerpc-linux and other powerpc-elf targets + with corresponding little-endian targets. + * emulparams/elf32lppc.sh: Update comment. + * emulparams/elf32lppclinux.sh: New. + 2013-04-24 H.J. Lu <hongjiu.lu@intel.com> * configure.tgt (targ_extra_emuls): Adds elf32_x86_64 for diff --git a/ld/Makefile.am b/ld/Makefile.am index e1d05d8..e0366f3 100644 --- a/ld/Makefile.am +++ b/ld/Makefile.am @@ -247,6 +247,7 @@ ALL_EMULATION_SOURCES = \ eelf32lm32fd.c \ eelf32lmip.c \ eelf32lppc.c \ + eelf32lppclinux.c \ eelf32lppcnto.c \ eelf32lppcsim.c \ eelf32lsmip.c \ @@ -1106,6 +1107,12 @@ eelf32lppc.c: $(srcdir)/emulparams/elf32lppc.sh \ ldemul-list.h \ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32lppc "$(tdir_elf32lppc)" +eelf32lppclinux.c: $(srcdir)/emulparams/elf32lppclinux.sh \ + $(srcdir)/emulparams/elf32lppc.sh $(srcdir)/emulparams/elf32ppc.sh \ + $(srcdir)/emulparams/elf32ppccommon.sh $(srcdir)/emultempl/ppc32elf.em \ + ldemul-list.h \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32lppclinux "$(tdir_elf32lppclinux)" eelf32lppcnto.c: $(srcdir)/emulparams/elf32lppcnto.sh \ $(srcdir)/emulparams/elf32ppc.sh $(srcdir)/emulparams/elf32ppccommon.sh \ $(srcdir)/emultempl/ppc32elf.em $(ELF_DEPS) \ diff --git a/ld/Makefile.in b/ld/Makefile.in index 180a0ed..042e9f2 100644 --- a/ld/Makefile.in +++ b/ld/Makefile.in @@ -555,6 +555,7 @@ ALL_EMULATION_SOURCES = \ eelf32lm32fd.c \ eelf32lmip.c \ eelf32lppc.c \ + eelf32lppclinux.c \ eelf32lppcnto.c \ eelf32lppcsim.c \ eelf32lsmip.c \ @@ -1188,6 +1189,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32lm32fd.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32lmip.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32lppc.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32lppclinux.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32lppcnto.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32lppcsim.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32lr5900.Po@am__quote@ @@ -2591,6 +2593,12 @@ eelf32lppc.c: $(srcdir)/emulparams/elf32lppc.sh \ ldemul-list.h \ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32lppc "$(tdir_elf32lppc)" +eelf32lppclinux.c: $(srcdir)/emulparams/elf32lppclinux.sh \ + $(srcdir)/emulparams/elf32lppc.sh $(srcdir)/emulparams/elf32ppc.sh \ + $(srcdir)/emulparams/elf32ppccommon.sh $(srcdir)/emultempl/ppc32elf.em \ + ldemul-list.h \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32lppclinux "$(tdir_elf32lppclinux)" eelf32lppcnto.c: $(srcdir)/emulparams/elf32lppcnto.sh \ $(srcdir)/emulparams/elf32ppc.sh $(srcdir)/emulparams/elf32ppccommon.sh \ $(srcdir)/emultempl/ppc32elf.em $(ELF_DEPS) \ diff --git a/ld/configure.tgt b/ld/configure.tgt index cd840e9..65884fa 100644 --- a/ld/configure.tgt +++ b/ld/configure.tgt @@ -547,56 +547,44 @@ powerpc64-*-freebsd*) tdir_elf32ppc=`echo "${targ_alias}" | sed -e 's/64//'` tdir_elf32ppc_fbsd=$tdir_elf32ppc ;; -powerpc*-*-linux*) case "${targ}" in +powerpc-*-vxworks*) + targ_emul=elf32ppcvxworks + targ_extra_emuls="elf32ppc elf32ppclinux elf32ppcsim" ;; +powerpc*-*-elf* | powerpc*-*-eabi* | powerpc*-*-sysv* \ + | powerpc*-*-linux* | powerpc*-*-netbsd* | powerpc*-*-openbsd* \ + | powerpc*-*-solaris* | powerpc*-*-kaos* | powerpc*-*-vxworks*) + case "${targ}" in *64*) targ_emul=elf64ppc - targ_extra_emuls="elf32ppclinux elf32ppc elf32ppcsim" - targ_extra_libpath="elf32ppclinux elf32ppc" - tdir_elf32ppc=`echo "${targ_alias}" | sed -e 's/64//'` - tdir_elf32ppclinux=$tdir_elf32ppc - tdir_elf32ppcsim=$tdir_elf32ppc + targ_extra_emuls="elf32ppc elf32ppclinux elf32ppcsim" + targ_extra_libpath="elf32ppc elf32ppclinux" + td=tdir_elf32ppc + case "${targ}" in + powerpc*le-*) td=tdir_elf32lppc;; + esac + eval ${td}=`echo "${targ_alias}" | sed -e 's/64//'` + eval ${td}linux=\$${td} + eval ${td}sim=\$${td} ;; - *) targ_emul=elf32ppclinux + *linux*) targ_emul=elf32ppclinux targ_extra_emuls="elf32ppc elf32ppcsim" targ_extra_libpath=elf32ppc targ64_extra_emuls=elf64ppc targ64_extra_libpath=elf64ppc ;; - esac ;; -powerpc*le-*-elf* | powerpc*le-*-eabi* | powerpc*le-*-solaris* \ - | powerpc*le-*-sysv* | powerpc*le-*-vxworks*) - case "${targ}" in - *64*) targ_emul=elf64lppc - targ_extra_emuls="elf32lppc elf32lppcsim" - targ_extra_libpath=elf32lppc - tdir_elf32lppc=`echo "${targ_alias}" | sed -e 's/64//'` - tdir_elf32lppcsim=$tdir_elf32lppc - ;; - *) targ_emul=elf32lppc - targ_extra_emuls=elf32lppcsim - targ64_extra_emuls=elf64lppc - targ64_extra_libpath=elf64lppc - ;; - esac ;; -powerpc*-*-elf* | powerpc*-*-eabi* | powerpc*-*-sysv* \ - | powerpc*-*-netbsd* | powerpc-*-openbsd* | powerpc*-*-kaos*) - case "${targ}" in - *64*) targ_emul=elf64ppc - targ_extra_emuls="elf32ppc elf32ppclinux elf32ppcsim" - targ_extra_libpath="elf32ppc elf32ppclinux" - tdir_elf32ppc=`echo "${targ_alias}" | sed -e 's/64//'` - tdir_elf32ppclinux=$tdir_elf32ppc - tdir_elf32ppcsim=$tdir_elf32ppc - ;; *) targ_emul=elf32ppc targ_extra_emuls="elf32ppclinux elf32ppcsim" targ_extra_libpath=elf32ppclinux targ64_extra_emuls=elf64ppc targ64_extra_libpath=elf64ppc ;; + esac + case "${targ}" in + powerpc*le-*) + for z in targ_emul targ_extra_emuls targ_extra_libpath targ64_extra_emuls targ64_extra_libpath + do + eval ${z}=\"`eval echo \\$${z} | sed -e 's/ppc/lppc/g'`\" + done esac ;; -powerpc-*-vxworks*) - targ_emul=elf32ppcvxworks - targ_extra_emuls="elf32ppc elf32ppclinux elf32ppcsim" ;; powerpc-*-nto*) targ_emul=elf32ppcnto ;; powerpcle-*-nto*) targ_emul=elf32lppcnto ;; powerpc-*-rtems*) targ_emul=elf32ppc ;; diff --git a/ld/emulparams/elf32lppc.sh b/ld/emulparams/elf32lppc.sh index 18cce48..8d4e3a0 100644 --- a/ld/emulparams/elf32lppc.sh +++ b/ld/emulparams/elf32lppc.sh @@ -1,5 +1,5 @@ # If you change this file, please also look at files which source this one: -# elf32lppcsim.sh +# elf32lppcsim.sh elf32lppclinux.sh . ${srcdir}/emulparams/elf32ppc.sh OUTPUT_FORMAT="elf32-powerpcle" diff --git a/ld/emulparams/elf32lppclinux.sh b/ld/emulparams/elf32lppclinux.sh new file mode 100644 index 0000000..9a56372 --- /dev/null +++ b/ld/emulparams/elf32lppclinux.sh @@ -0,0 +1,8 @@ +. ${srcdir}/emulparams/elf32lppc.sh +TEXT_START_ADDR=0x10000000 +unset EXECUTABLE_SYMBOLS +unset OTHER_END_SYMBOLS +test -z "${RELOCATING}" || OTHER_SECTIONS="/DISCARD/ : { *(.fixup) }" +OTHER_RELRO_SECTIONS=" + .got1 ${RELOCATING-0} : { *(.got1) } + .got2 ${RELOCATING-0} : { *(.got2) }" |