aboutsummaryrefslogtreecommitdiff
path: root/ld/i386coff.sc-sh
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>1992-10-19 16:53:41 +0000
committerIan Lance Taylor <ian@airs.com>1992-10-19 16:53:41 +0000
commite9b63852ca0c0ddd181a8d76de06329a7380deda (patch)
tree8f75a4d355a276d598dc0823b50174695e8897ca /ld/i386coff.sc-sh
parent4c7be680e939e84eca7d1e2c7e78de44855967f7 (diff)
downloadgdb-e9b63852ca0c0ddd181a8d76de06329a7380deda.zip
gdb-e9b63852ca0c0ddd181a8d76de06329a7380deda.tar.gz
gdb-e9b63852ca0c0ddd181a8d76de06329a7380deda.tar.bz2
Mon Oct 19 09:45:38 1992 Ian Lance Taylor (ian@cygnus.com)
* Support for i386-sysv. configure.in: check for i386-*-sysv* and i386-*-sco*. i386coff.sc-sh: rewrote to support SVR3 by default. ldctor.c (find_constructors): preserve stat_ptr. ldlang.c (wild_doit): initialize vma and size of new output section to corresponding input section. This is required for shared library support. (lang_size_sections): don't modify vma and size of sections which are never loaded (for shared libraries). ldwrite.c (copy_and_relocate): copy the contents of any section which has contents, not just sections which are loaded (for shared libraries).
Diffstat (limited to 'ld/i386coff.sc-sh')
-rw-r--r--ld/i386coff.sc-sh46
1 files changed, 18 insertions, 28 deletions
diff --git a/ld/i386coff.sc-sh b/ld/i386coff.sc-sh
index 485f3bb..d18fd24 100644
--- a/ld/i386coff.sc-sh
+++ b/ld/i386coff.sc-sh
@@ -1,39 +1,29 @@
-# This is totally made up, from the a29k stuff. If you know better,
-# tell us about it.
+# Linker script for 386 COFF. This works on SVR3.2 and SCO Unix 3.2.2.
+# .data2 handles SCO, which uses two data sections.
+# Ian Taylor <ian@cygnus.com>.
cat <<EOF
OUTPUT_FORMAT("${OUTPUT_FORMAT}")
${LIB_SEARCH_DIRS}
-MEMORY {
- text : ORIGIN = 0x1000000, LENGTH = 0x1000000
- talias : ORIGIN = 0x2000000, LENGTH = 0x1000000
- data : ORIGIN = 0x3000000, LENGTH = 0x1000000
- mstack : ORIGIN = 0x4000000, LENGTH = 0x1000000
- rstack : ORIGIN = 0x5000000, LENGTH = 0x1000000
-}
+ENTRY(_start)
+
SECTIONS
{
- .text : {
+ .text ${RELOCATING+ SIZEOF_HEADERS} : {
+ *(.init)
*(.text)
- ${RELOCATING+ _etext = .};
- *(.lit)
- *(.shdata)
- } ${RELOCATING+ > text}
- .shbss SIZEOF(.text) + ADDR(.text) : {
- *(.shbss)
- }
- .talias : { } ${RELOCATING+ > talias}
- .data : {
- *(.data)
- ${RELOCATING+ _edata = .};
- } ${RELOCATING+ > data}
- .bss SIZEOF(.data) + ADDR(.data) :
+ *(.fini)
+ ${RELOCATING+ etext = .};
+ }
+ .data ${RELOCATING+ 0x400000 + (. & 0xffc00fff)} : {
+ *(.data .data2)
+ ${RELOCATING+ edata = .};
+ }
+ .bss ${RELOCATING+ SIZEOF(.data) + ADDR(.data)} :
{
- *(.bss)
- *(COMMON)
- ${RELOCATING+ _end = ALIGN(0x8)};
+ *(.bss)
+ *(COMMON)
+ ${RELOCATING+ end = .};
}
- .mstack : { } ${RELOCATING+ > mstack}
- .rstack : { } ${RELOCATING+ > rstack}
}
EOF