aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ld/ChangeLog7
-rw-r--r--ld/Makefile.in5
-rw-r--r--ld/config/.Sanitize1
-rw-r--r--ld/config/i386-go32.mt1
-rw-r--r--ld/emulparams/.Sanitize1
-rw-r--r--ld/emulparams/go32.sh9
-rw-r--r--ld/emulparams/i386go32.sh8
-rw-r--r--ld/scripttempl/.Sanitize1
-rw-r--r--ld/scripttempl/i386go32.sc45
9 files changed, 77 insertions, 1 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index c6b16c1..c6cfa0a 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,10 @@
+Wed Apr 27 10:48:03 1994 Steve Chamberlain (sac@cygnus.com)
+
+ * Makefile.in, configure.in: Support for go32 coff.
+ * config/i386-go32.mt: New file
+ * emulparams/i386go32.sh: New file
+ * scripttempl/i386go32.sc: New file
+
Tue Apr 26 17:20:03 1994 Stan Shebs (shebs@andros.cygnus.com)
* Makefile.in (em_m68klynx.c, em_i386lynx.c, em_sparclynx.c): Use
diff --git a/ld/Makefile.in b/ld/Makefile.in
index bb3246b..cadd420 100644
--- a/ld/Makefile.in
+++ b/ld/Makefile.in
@@ -179,7 +179,7 @@ ALL_EMULATIONS = em_lnk960.o em_sun3.o em_i386aout.o em_go32.o em_vsta.o \
em_h8500b.o em_h8500s.o em_h8500c.o em_h8500m.o \
em_hppaelf.o em_mipsidtl.o em_sh.o em_elf_i386.o em_alpha.o \
em_i386lynx.o em_m68klynx.o em_sparclynx.o em_coff_sparc.o \
- em_delta68.o em_elf32ppc.o \
+ em_delta68.o em_elf32ppc.o em_i386go32.o \
$(OTHER_EMULATIONS)
# This is now set by configure.in.
@@ -281,6 +281,9 @@ em_hppaelf.c: $(srcdir)/emulparams/hppaelf.sh \
em_i386aout.c: $(srcdir)/emulparams/i386aout.sh \
$(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS}
${GENSCRIPTS} i386aout
+em_i386go32.c: $(srcdir)/emulparams/i386go32.sh \
+ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/i386go32.sc ${GEN_DEPENDS}
+ ${GENSCRIPTS} i386go32
em_i386mach.c: $(srcdir)/emulparams/i386mach.sh \
$(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS}
${GENSCRIPTS} i386mach
diff --git a/ld/config/.Sanitize b/ld/config/.Sanitize
index fec3b45..1c91b62 100644
--- a/ld/config/.Sanitize
+++ b/ld/config/.Sanitize
@@ -45,6 +45,7 @@ i386-aout.mt
i386-bsd.mt
i386-coff.mt
i386-elf.mt
+i386-go32.mt
i386-linux.mt
i386-lynx.mt
i386-mach.mt
diff --git a/ld/config/i386-go32.mt b/ld/config/i386-go32.mt
new file mode 100644
index 0000000..55a8451
--- /dev/null
+++ b/ld/config/i386-go32.mt
@@ -0,0 +1 @@
+EMUL=i386go32
diff --git a/ld/emulparams/.Sanitize b/ld/emulparams/.Sanitize
index aef97ac..6d308fb 100644
--- a/ld/emulparams/.Sanitize
+++ b/ld/emulparams/.Sanitize
@@ -49,6 +49,7 @@ hppaelf.sh
i386aout.sh
i386bsd.sh
i386coff.sh
+i386go32.sh
i386linux.sh
i386lynx.sh
i386mach.sh
diff --git a/ld/emulparams/go32.sh b/ld/emulparams/go32.sh
index 5b8f7dc..abeb84e 100644
--- a/ld/emulparams/go32.sh
+++ b/ld/emulparams/go32.sh
@@ -6,3 +6,12 @@ SEGMENT_SIZE=0x400000
NONPAGED_TEXT_START_ADDR=0x0
ARCH=i386
+
+SCRIPT_NAME=coff
+OUTPUT_FORMAT="i386-coff"
+TEXT_START_ADDR=0x10a8
+PAGE_SIZE=0x1000
+SEGMENT_SIZE=0x1000
+NONPAGED_TEXT_START_ADDR=0x0
+ARCH=i386
+
diff --git a/ld/emulparams/i386go32.sh b/ld/emulparams/i386go32.sh
new file mode 100644
index 0000000..592e3c9
--- /dev/null
+++ b/ld/emulparams/i386go32.sh
@@ -0,0 +1,8 @@
+SCRIPT_NAME=i386go32
+OUTPUT_FORMAT="coff-i386"
+TEXT_START_ADDR=0x10a8
+PAGE_SIZE=0x1000
+SEGMENT_SIZE=0x1000
+NONPAGED_TEXT_START_ADDR=0x0
+ARCH=i386
+
diff --git a/ld/scripttempl/.Sanitize b/ld/scripttempl/.Sanitize
index d06ab82..10fe7ec 100644
--- a/ld/scripttempl/.Sanitize
+++ b/ld/scripttempl/.Sanitize
@@ -39,6 +39,7 @@ h8500m.sc
h8500s.sc
hppaelf.sc
i386coff.sc
+i386go32.sc
i960.sc
m68kcoff.sc
m68klynx.sc
diff --git a/ld/scripttempl/i386go32.sc b/ld/scripttempl/i386go32.sc
new file mode 100644
index 0000000..9d2ac67
--- /dev/null
+++ b/ld/scripttempl/i386go32.sc
@@ -0,0 +1,45 @@
+# Linker script for i386 go32 COFF.
+# stolen from ian
+test -z "$ENTRY" && ENTRY=_start
+# These are substituted in as variables in order to get '}' in a shell
+# conditional expansion.
+INIT='.init : { *(.init) }'
+FINI='.fini : { *(.fini) }'
+cat <<EOF
+OUTPUT_FORMAT("${OUTPUT_FORMAT}")
+${LIB_SEARCH_DIRS}
+
+ENTRY(${ENTRY})
+
+SECTIONS
+{
+ .text ${RELOCATING+ 0x10a8} : {
+ ${RELOCATING+ *(.init)}
+ *(.text)
+ ${RELOCATING+ *(.fini)}
+ ${RELOCATING+ etext = .};
+ }
+ .data ALIGN (0x1000) : {
+ *(.data .data2)
+ *(.ctor)
+ *(.dtor)
+ ${RELOCATING+ _edata = .};
+ }
+ .bss ${RELOCATING+ SIZEOF(.data) + ADDR(.data)} :
+ {
+ *(.bss)
+ *(COMMON)
+ ${RELOCATING+ end = .};
+ }
+ ${RELOCATING- ${INIT}}
+ ${RELOCATING- ${FINI}}
+ .stab . (NOLOAD) :
+ {
+ [ .stab ]
+ }
+ .stabstr . (NOLOAD) :
+ {
+ [ .stabstr ]
+ }
+}
+EOF