* Makefile.am (ALL_EMULATIONS): Add eelf64ppc.o and eelf64lppc.o.
authorAlan Modra <amodra@gmail.com>
Mon, 27 Aug 2001 10:45:55 +0000 (10:45 +0000)
committerAlan Modra <amodra@gmail.com>
Mon, 27 Aug 2001 10:45:55 +0000 (10:45 +0000)
(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
ld/Makefile.am
ld/Makefile.in
ld/configure.tgt
ld/emulparams/elf64lppc.sh [new file with mode: 0644]
ld/emulparams/elf64ppc.sh [new file with mode: 0644]

index c59911e..68a91a7 100644 (file)
@@ -1,3 +1,15 @@
+2001-08-27  Linus Nordberg  <linus@swox.com>
+           Alan Modra  <amodra@bigpond.net.au>
+
+       * 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  <nickc@cambridge.redhat.com>
 
        * ldmain.c (main): Declare BSIZE as static.
index fb0bfa8..9b04701 100644 (file)
@@ -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)"
index 6b50678..024725a 100644 (file)
@@ -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)"
index 6922618..aa37e40 100644 (file)
@@ -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 (file)
index 0000000..1c47493
--- /dev/null
@@ -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 (file)
index 0000000..9384a1e
--- /dev/null
@@ -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) }"