aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ld/ChangeLog15
-rw-r--r--ld/configure.tgt13
-rw-r--r--ld/emulparams/.Sanitize1
-rw-r--r--ld/emulparams/elf64alpha.sh14
4 files changed, 41 insertions, 2 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 5b6b608..580f218 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,18 @@
+Fri Jun 21 13:05:51 1996 Richard Henderson <rth@tamu.edu>
+
+ * configure.tgt (alpha-*-linuxecoff*): New target.
+ (alpha-*-linux*): Use elf64alpha.
+ * emulparams/elf64alpha.sh: New file.
+ * emultempl/elf32.em: If ELFSIZE is not set, set it to 32. Use
+ ${ELFSIZE} rather than 32 when calling BFD routines.
+ (hold_rodata): New static variable.
+ (gld${EMULATION_NAME}_place_orphan): Use hold_rodata for a
+ readonly section that is not code.
+ (gld${EMULATION_NAME}_place_section): Set hold_rodata. Don't use
+ a .rel section unless its bfd_section field is not NULL.
+ * Makefile.in (ALL_EMULATIONS): Add eelf64alpha.o.
+ (eelf64alpha.c): New target.
+
Fri Jun 21 12:45:46 1996 Ian Lance Taylor <ian@cygnus.com>
* ldmisc.c (vfinfo): Correct handling of 0 in %W case.
diff --git a/ld/configure.tgt b/ld/configure.tgt
index ec2bc30..ec2e7a6 100644
--- a/ld/configure.tgt
+++ b/ld/configure.tgt
@@ -80,7 +80,11 @@ a29k-*-*) targ_emul=a29k ;;
arm-*-aout | armel-*-aout) targ_emul=armaoutl ;;
armeb-*-aout) targ_emul=armaoutb ;;
arm-*-coff) targ_emul=armcoff ;;
-h8300-*-hms) targ_emul=h8300; targ_extra_emuls=h8300h ;;
+h8300-*-hms) targ_emul=h8300; targ_extra_emuls="h8300h"
+#start-sanitize-h8s
+ targ_extra_emuls="h8300h h8300s"
+#end-sanitize-h8s
+ ;;
h8500-*-hms) targ_emul=h8500
targ_extra_emuls="h8500s h8500b h8500m h8500c"
;;
@@ -121,7 +125,12 @@ mips*vr4100el-*-elf*) targ_emul=elf32l4300 ;;
mips*vr4100-*-elf*) targ_emul=elf32b4300 ;;
mips*el-*-elf*) targ_emul=elf32lmip ;;
mips*-*-elf*) targ_emul=elf32bmip ;;
-alpha-*-linux*) targ_emul=alpha ;;
+alpha-*-linuxecoff*) targ_emul=alpha targ_extra_emuls=elf64alpha
+ tdir_elf64alpha=`echo ${targ_alias} | sed -e 's/ecoff//'`
+ ;;
+alpha-*-linux*) targ_emul=elf64alpha targ_extra_emuls=alpha
+ tdir_alpha=`echo ${targ_alias} | sed -e 's/linux/linuxecoff/'`
+ ;;
alpha-*-osf*) targ_emul=alpha ;;
alpha-*-netware*) targ_emul=alpha ;;
z8k-*-coff) targ_emul=z8002; targ_extra_emuls=z8001 ;;
diff --git a/ld/emulparams/.Sanitize b/ld/emulparams/.Sanitize
index d250a1f..4e7a590 100644
--- a/ld/emulparams/.Sanitize
+++ b/ld/emulparams/.Sanitize
@@ -58,6 +58,7 @@ elf32lppc.sh
elf32ppc.sh
elf32b4300.sh
elf32l4300.sh
+elf64alpha.sh
elf64_sparc.sh
elf_i386.sh
gld960.sh
diff --git a/ld/emulparams/elf64alpha.sh b/ld/emulparams/elf64alpha.sh
new file mode 100644
index 0000000..ca2d230
--- /dev/null
+++ b/ld/emulparams/elf64alpha.sh
@@ -0,0 +1,14 @@
+ENTRY=__start
+SCRIPT_NAME=elf
+ELFSIZE=64
+TEMPLATE_NAME=elf32
+OUTPUT_FORMAT="elf64-alpha"
+TEXT_START_ADDR="0x120000000"
+MAXPAGESIZE=0x100000
+NONPAGED_TEXT_START_ADDR="0x120000000"
+ARCH=alpha
+GENERATE_SHLIB_SCRIPT=yes
+DATA_PLT=
+NOP=0x47ff041f
+
+OTHER_READONLY_SECTIONS='.reginfo : { *(.reginfo) }'