diff options
-rw-r--r-- | ld/ChangeLog | 7 | ||||
-rw-r--r-- | ld/Makefile.in | 5 | ||||
-rw-r--r-- | ld/config/.Sanitize | 1 | ||||
-rw-r--r-- | ld/config/i386-go32.mt | 1 | ||||
-rw-r--r-- | ld/emulparams/.Sanitize | 1 | ||||
-rw-r--r-- | ld/emulparams/go32.sh | 9 | ||||
-rw-r--r-- | ld/emulparams/i386go32.sh | 8 | ||||
-rw-r--r-- | ld/scripttempl/.Sanitize | 1 | ||||
-rw-r--r-- | ld/scripttempl/i386go32.sc | 45 |
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 |