From 58ca8282c6cf1f965198a318586a9b8f0825cd2b Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Mon, 27 Aug 2001 10:45:55 +0000 Subject: [PATCH] * Makefile.am (ALL_EMULATIONS): Add eelf64ppc.o and eelf64lppc.o. (eelf64ppc.c, eelf64lppc.c): Add make targets. Run "make dep-am" * Makefile.in: Regenerate. * configure.tgt: Add powerpc64 support. Move pdp11, pjl, pj entries to correct alphabetical position. * emulparams/elf64ppc.sh: New. * emulparams/elf64lppc.sh: New. --- ld/ChangeLog | 12 ++++++++++++ ld/Makefile.am | 8 ++++++++ ld/Makefile.in | 8 ++++++++ ld/configure.tgt | 39 +++++++++++++++++++++++++++------------ ld/emulparams/elf64lppc.sh | 3 +++ ld/emulparams/elf64ppc.sh | 28 ++++++++++++++++++++++++++++ 6 files changed, 86 insertions(+), 12 deletions(-) create mode 100644 ld/emulparams/elf64lppc.sh create mode 100644 ld/emulparams/elf64ppc.sh diff --git a/ld/ChangeLog b/ld/ChangeLog index c59911efd..68a91a7bd 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,15 @@ +2001-08-27 Linus Nordberg + Alan Modra + + * Makefile.am (ALL_EMULATIONS): Add eelf64ppc.o and eelf64lppc.o. + (eelf64ppc.c, eelf64lppc.c): Add make targets. + Run "make dep-am" + * Makefile.in: Regenerate. + * configure.tgt: Add powerpc64 support. Move pdp11, pjl, pj + entries to correct alphabetical position. + * emulparams/elf64ppc.sh: New. + * emulparams/elf64lppc.sh: New. + 2001-08-27 Nick Clifton * ldmain.c (main): Declare BSIZE as static. diff --git a/ld/Makefile.am b/ld/Makefile.am index fb0bfa8d8..9b04701fa 100644 --- a/ld/Makefile.am +++ b/ld/Makefile.am @@ -159,6 +159,8 @@ ALL_EMULATIONS = \ eelf32ppc.o \ eelf32ppclinux.o \ eelf32ppcsim.o \ + eelf64ppc.o \ + eelf64lppc.o \ eelf_i386.o \ eelf_i386_be.o \ eelf_i386_chaos.o \ @@ -501,6 +503,12 @@ eelf32ppcsim.c: $(srcdir)/emulparams/elf32ppcsim.sh \ eelf32ppclinux.c: $(srcdir)/emulparams/elf32ppclinux.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32ppclinux "$(tdir_elf32ppclinux)" +eelf64ppc.c: $(srcdir)/emulparams/elf64ppc.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf64ppc "$(tdir_elf64ppc)" +eelf64lppc.c: $(srcdir)/emulparams/elf64lppc.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf64lppc "$(tdir_elf64lppc)" eelf32i370.c: $(srcdir)/emulparams/elf32i370.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elfi370.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32i370 "$(tdir_elf32i370)" diff --git a/ld/Makefile.in b/ld/Makefile.in index 6b50678e8..024725a48 100644 --- a/ld/Makefile.in +++ b/ld/Makefile.in @@ -267,6 +267,8 @@ ALL_EMULATIONS = \ eelf32ppc.o \ eelf32ppclinux.o \ eelf32ppcsim.o \ + eelf64ppc.o \ + eelf64lppc.o \ eelf_i386.o \ eelf_i386_be.o \ eelf_i386_chaos.o \ @@ -1215,6 +1217,12 @@ eelf32ppcsim.c: $(srcdir)/emulparams/elf32ppcsim.sh \ eelf32ppclinux.c: $(srcdir)/emulparams/elf32ppclinux.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32ppclinux "$(tdir_elf32ppclinux)" +eelf64ppc.c: $(srcdir)/emulparams/elf64ppc.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf64ppc "$(tdir_elf64ppc)" +eelf64lppc.c: $(srcdir)/emulparams/elf64lppc.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf64lppc "$(tdir_elf64lppc)" eelf32i370.c: $(srcdir)/emulparams/elf32i370.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elfi370.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32i370 "$(tdir_elf32i370)" diff --git a/ld/configure.tgt b/ld/configure.tgt index 6922618d4..aa37e400e 100644 --- a/ld/configure.tgt +++ b/ld/configure.tgt @@ -314,23 +314,38 @@ z8k-*-coff) targ_emul=z8002; targ_extra_emuls=z8001 ;; ns32k-pc532-mach* | ns32k-pc532-ux*) targ_emul=pc532macha ;; ns32k-pc532-netbsd* | ns32k-pc532-lites*) targ_emul=ns32knbsd ;; openrisc-*-*) targ_emul=elf32openrisc ;; +pdp11-*-*) targ_emul=pdp11 ;; +pjl*-*-*) targ_emul=pjlelf ; targ_extra_emuls="elf_i386" ;; +pj*-*-*) targ_emul=pjelf ;; powerpc-*-freebsd*) targ_emul=elf32ppc; targ_extra_emuls=elf32ppcsim; targ_extra_libpath=elf32ppc; tdir_elf32ppcsim=`echo ${targ_alias} | sed -e 's/ppc/ppcsim/'` ;; -powerpc-*-linux-gnu*) targ_emul=elf32ppclinux; - targ_extra_emuls="elf32ppc elf32ppcsim"; - targ_extra_libpath=elf32ppc ;; -pdp11-*-*) targ_emul=pdp11 ;; -pjl*-*-*) targ_emul=pjlelf ; targ_extra_emuls="elf_i386" ;; -pj*-*-*) targ_emul=pjelf ;; -powerpc-*-elf* | powerpc-*-eabi* | powerpc-*-sysv* \ - | powerpc-*-netbsd* | powerpc-*-vxworks*) - targ_emul=elf32ppc targ_extra_emuls="elf32ppclinux elf32ppcsim";; -powerpcle-*-elf* | powerpcle-*-eabi* | powerpcle-*-solaris* \ - | powerpcle-*-sysv* | powerpcle-*-vxworks*) - targ_emul=elf32lppc targ_extra_emuls="elf32ppcsim";; +powerpc*-*-linux*) + case "${targ}" in + *64*) targ_emul=elf64ppc + targ_extra_emuls="elf32ppclinux elf32ppc elf32ppcsim" ;; + *) targ_emul=elf32ppclinux + targ_extra_emuls="elf32ppc elf32ppcsim" + targ_extra_libpath=elf32ppc ;; + 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 elf32ppcsim" ;; + *) targ_emul=elf32lppc + targ_extra_emuls="elf32ppcsim" ;; + esac ;; +powerpc*-*-elf* | powerpc*-*-eabi* | powerpc*-*-sysv* \ + | powerpc*-*-netbsd* | powerpc*-*-vxworks*) + case "${targ}" in + *64*) targ_emul=elf64ppc + targ_extra_emuls="elf32ppc elf32ppclinux elf32ppcsim" ;; + *) targ_emul=elf32ppc + targ_extra_emuls="elf32ppclinux elf32ppcsim" ;; + esac ;; powerpcle-*-rtems*) targ_emul=elf32leppc ;; powerpc-*-rtems*) targ_emul=elf32ppc ;; powerpc-*-macos*) targ_emul=ppcmacos ;; diff --git a/ld/emulparams/elf64lppc.sh b/ld/emulparams/elf64lppc.sh new file mode 100644 index 000000000..1c474935e --- /dev/null +++ b/ld/emulparams/elf64lppc.sh @@ -0,0 +1,3 @@ +. ${srcdir}/emulparams/elf64ppc.sh +OUTPUT_FORMAT="elf64-powerpcle" +NOP=0x00000060 diff --git a/ld/emulparams/elf64ppc.sh b/ld/emulparams/elf64ppc.sh new file mode 100644 index 000000000..9384a1eec --- /dev/null +++ b/ld/emulparams/elf64ppc.sh @@ -0,0 +1,28 @@ +TEMPLATE_NAME=elf32 +ELFSIZE=64 +GENERATE_SHLIB_SCRIPT=yes +SCRIPT_NAME=elf +OUTPUT_FORMAT="elf64-powerpc" +TEXT_START_ADDR=0x10000000 +MAXPAGESIZE=0x40000 +ARCH=powerpc +MACHINE= +NOP=0x60000000 +EXECUTABLE_SYMBOLS='PROVIDE (__stack = 0); PROVIDE (___stack = 0);' +OTHER_BSS_END_SYMBOLS='__end = .;' +CTOR_START='PROVIDE (__CTOR_LIST__ = .); PROVIDE (___CTOR_LIST__ = .);' +CTOR_END='PROVIDE (__CTOR_END__ = .); PROVIDE (___CTOR_END__ = .);' +DTOR_START='PROVIDE (__DTOR_LIST__ = .); PROVIDE (___DTOR_LIST__ = .);' +DTOR_END='PROVIDE (__DTOR_END__ = .); PROVIDE (___DTOR_END__ = .);' +BSS_PLT= +OTHER_BSS_SYMBOLS=" + .tocbss ${RELOCATING-0}${RELOCATING+ALIGN(8)} : { *(.tocbss)}" +OTHER_PLT_RELOC_SECTIONS=" + .rela.tocbss ${RELOCATING-0} : { *(.rela.tocbss) }" +OTHER_GOT_SECTIONS=" + .toc ${RELOCATING-0}${RELOCATING+ALIGN(8)} : { *(.toc) }" +OTHER_GOT_RELOC_SECTIONS=" + .rela.toc ${RELOCATING-0} : { *(.rela.toc) }" +OTHER_READWRITE_SECTIONS=" + .toc1 ${RELOCATING-0}${RELOCATING+ALIGN(8)} : { *(.toc1) } + .opd ${RELOCATING-0}${RELOCATING+ALIGN(8)} : { *(.opd) }" -- 2.11.4.GIT