aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
authorJim Wilson <wilson@tuliptree.org>2000-04-21 20:22:24 +0000
committerJim Wilson <wilson@tuliptree.org>2000-04-21 20:22:24 +0000
commit800eeca487f145ccc5481a03bfff2b871a2fd361 (patch)
treecedc52859f0a66d17a78d5b7e772f8a6c3d3b693 /ld
parentc9637625e4ff16d9a9f3a203c5609cd5ada1eafa (diff)
downloadfsf-binutils-gdb-800eeca487f145ccc5481a03bfff2b871a2fd361.zip
fsf-binutils-gdb-800eeca487f145ccc5481a03bfff2b871a2fd361.tar.gz
fsf-binutils-gdb-800eeca487f145ccc5481a03bfff2b871a2fd361.tar.bz2
IA-64 ELF support.
Diffstat (limited to 'ld')
-rw-r--r--ld/ChangeLog9
-rw-r--r--ld/Makefile.am4
-rw-r--r--ld/Makefile.in5
-rw-r--r--ld/configure.tgt2
-rw-r--r--ld/emulparams/elf64_ia64.sh16
5 files changed, 35 insertions, 1 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index e46704a..45a174e 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,12 @@
+Fri Apr 21 13:20:53 2000 Richard Henderson <rth@cygnus.com>
+ David Mosberger <davidm@hpl.hp.com>
+
+ * Makefile.am (ALL_64_EMULATIONS): Add eelf64_ia64.o.
+ (eelf64_ia64.c): New rule.
+ * Makefile.in: Rebuild.
+ * configure.tgt (ia64-*-elf*, ia64-*-linux*): New targets.
+ * emulparams/elf64_ia64.sh: New file.
+
2000-04-21 Richard Henderson <rth@cygnus.com>
* scripttempl/elfd30v.sc: Place .gcc_except_table.
diff --git a/ld/Makefile.am b/ld/Makefile.am
index 45c703a..caa7966 100644
--- a/ld/Makefile.am
+++ b/ld/Makefile.am
@@ -226,6 +226,7 @@ ALL_EMULATIONS = \
ez8002.o
ALL_64_EMULATIONS = \
+ eelf64_ia64.o \
eelf64_sparc.o \
eelf64alpha.o \
eelf64bmip.o
@@ -449,6 +450,9 @@ eelf32i370.c: $(srcdir)/emulparams/elf32i370.sh \
eelf64alpha.c: $(srcdir)/emulparams/elf64alpha.sh \
$(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
${GENSCRIPTS} elf64alpha "$(tdir_elf64alpha)"
+eelf64_ia64.c: $(srcdir)/emulparams/elf64_ia64.sh \
+ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+ ${GENSCRIPTS} elf64_ia64 "$(tdir_elf64_ia64)"
eelf64_sparc.c: $(srcdir)/emulparams/elf64_sparc.sh \
$(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
${GENSCRIPTS} elf64_sparc "$(tdir_elf64_sparc)"
diff --git a/ld/Makefile.in b/ld/Makefile.in
index ab152f0..cd43781 100644
--- a/ld/Makefile.in
+++ b/ld/Makefile.in
@@ -175,7 +175,7 @@ LIBIBERTY = ../libiberty/libiberty.a
ALL_EMULATIONS = ea29k.o eaixppc.o eaixrs6.o ealpha.o earcelf.o earmelf.o earmelf_oabi.o earmelf_linux.o earmelf_linux26.o earmaoutb.o earmaoutl.o earmcoff.o earmnbsd.o earmpe.o earm_epoc_pe.o eavr1200.o eavr23xx.o eavr44x4.o eavr4433.o eavr85xx.o eavrmega603.o eavrmega103.o eavrmega161.o ecoff_sparc.o ed10velf.o ed30velf.o ed30v_e.o ed30v_o.o edelta68.o eebmon29k.o eelf32_sparc.o eelf32_i960.o eelf32b4300.o eelf32bmip.o eelf32ebmip.o eelf32elmip.o eelf32bmipn32.o eelf32i370.o eelf32l4300.o eelf32lmip.o eelf32lppc.o eelf32lppcsim.o eelf32ppc.o eelf32ppcsim.o eelf32ppclinux.o eelf_i386.o eelf_i386_be.o egld960.o egld960coff.o eelf32fr30.o eelf32mcore.o eh8300.o eh8300h.o eh8300s.o eh8500.o eh8500b.o eh8500c.o eh8500m.o eh8500s.o ehp300bsd.o ehp3hpux.o ei386aout.o ei386beos.o ei386bsd.o ei386coff.o ei386go32.o ei386linux.o ei386lynx.o ei386mach.o ei386moss.o ei386msdos.o ei386nbsd.o ei386nw.o ei386pe.o ei386pe_posix.o elnk960.o em68k4knbsd.o em68kaout.o em68kaux.o em68kcoff.o em68kelf.o em68klinux.o em68klynx.o em68knbsd.o em68kpsos.o em88kbcs.o emcorepe.o emipsbig.o emipsbsd.o emipsidt.o emipsidtl.o emipslit.o emipslnews.o emipspe.o enews.o epjelf.o epjlelf.o ens32knbsd.o epc532macha.o eppcmacos.o eppcnw.o eppcpe.o eriscix.o esa29200.o esh.o eshelf.o eshlelf.o eshl.o eshpe.o esparcaout.o esparclinux.o esparclynx.o esparcnbsd.o est2000.o esun3.o esun4.o etic30aout.o etic30coff.o etic80coff.o evanilla.o evax.o evsta.o ew65.o ez8001.o ez8002.o
-ALL_64_EMULATIONS = eelf64_sparc.o eelf64alpha.o eelf64bmip.o
+ALL_64_EMULATIONS = eelf64_ia64.o eelf64_sparc.o eelf64alpha.o eelf64bmip.o
ALL_EMUL_EXTRA_OFILES = pe-dll.o deffilep.o
@@ -981,6 +981,9 @@ eelf32i370.c: $(srcdir)/emulparams/elf32i370.sh \
eelf64alpha.c: $(srcdir)/emulparams/elf64alpha.sh \
$(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
${GENSCRIPTS} elf64alpha "$(tdir_elf64alpha)"
+eelf64_ia64.c: $(srcdir)/emulparams/elf64_ia64.sh \
+ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+ ${GENSCRIPTS} elf64_ia64 "$(tdir_elf64_ia64)"
eelf64_sparc.c: $(srcdir)/emulparams/elf64_sparc.sh \
$(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
${GENSCRIPTS} elf64_sparc "$(tdir_elf64_sparc)"
diff --git a/ld/configure.tgt b/ld/configure.tgt
index 0cf81bd..b267c16 100644
--- a/ld/configure.tgt
+++ b/ld/configure.tgt
@@ -79,6 +79,8 @@ i960-*-coff) targ_emul=gld960coff ;;
i960-intel-nindy) targ_emul=gld960 ;;
i960-*-rtems*) targ_emul=gld960coff ;;
i960-*-elf*) targ_emul=elf32_i960 ;;
+ia64-*-elf*) targ_emul=elf64_ia64 ;;
+ia64-*-linux*) targ_emul=elf64_ia64 ;;
m32r-*-*) targ_emul=m32relf ;;
m68*-sun-sunos[34]*) targ_emul=sun3 ;;
m68*-wrs-vxworks*) targ_emul=sun3 ;;
diff --git a/ld/emulparams/elf64_ia64.sh b/ld/emulparams/elf64_ia64.sh
new file mode 100644
index 0000000..b3d393d
--- /dev/null
+++ b/ld/emulparams/elf64_ia64.sh
@@ -0,0 +1,16 @@
+# See genscripts.sh and ../scripttempl/elf.sc for the meaning of these.
+SCRIPT_NAME=elf
+ELFSIZE=64
+TEMPLATE_NAME=elf32
+OUTPUT_FORMAT="elf64-ia64-little"
+ARCH=ia64
+MACHINE=
+MAXPAGESIZE=0x10000
+TEXT_START_ADDR="0x4000000000000000"
+DATA_ADDR="0x6000000000000000 + (. & (${MAXPAGESIZE} - 1))"
+GENERATE_SHLIB_SCRIPT=yes
+NOP=0x00300000010070000002000001000400 # a bundle full of nops
+OTHER_GOT_SYMBOLS='. = ALIGN (8); PROVIDE (__gp = . + 0x200000);'
+OTHER_GOT_SECTIONS='.IA_64.pltoff : { *(.IA_64.pltoff) }'
+OTHER_PLT_RELOC_SECTIONS='.rela.IA_64.pltoff : { *(.rela.IA_64.pltoff) }'
+OTHER_READONLY_SECTIONS='.opd : { *(.opd) }'