aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2001-08-27 10:45:55 +0000
committerAlan Modra <amodra@gmail.com>2001-08-27 10:45:55 +0000
commit5c67d4bb595ec330107c1768dda0470459ccfc04 (patch)
tree88c94e7c773d9a5650850483011d033ba038089c /ld
parent0baf16f23c580c5b0ee2c93289a0fc27fe6c240f (diff)
downloadfsf-binutils-gdb-5c67d4bb595ec330107c1768dda0470459ccfc04.zip
fsf-binutils-gdb-5c67d4bb595ec330107c1768dda0470459ccfc04.tar.gz
fsf-binutils-gdb-5c67d4bb595ec330107c1768dda0470459ccfc04.tar.bz2
* 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.
Diffstat (limited to 'ld')
-rw-r--r--ld/ChangeLog12
-rw-r--r--ld/Makefile.am8
-rw-r--r--ld/Makefile.in8
-rw-r--r--ld/configure.tgt39
-rw-r--r--ld/emulparams/elf64lppc.sh3
-rw-r--r--ld/emulparams/elf64ppc.sh28
6 files changed, 86 insertions, 12 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index c59911e..68a91a7 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -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.
diff --git a/ld/Makefile.am b/ld/Makefile.am
index fb0bfa8..9b04701 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 6b50678..024725a 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 6922618..aa37e40 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 0000000..1c47493
--- /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 0000000..9384a1e
--- /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) }"