diff options
-rw-r--r-- | ld/ChangeLog | 13 | ||||
-rw-r--r-- | ld/scripttempl/tic80coff.sc | 67 |
2 files changed, 80 insertions, 0 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index 6d54a95..82b4f3e 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,16 @@ +start-sanitize-tic80 +Fri May 2 15:54:28 1997 Mike Meissner <meissner@cygnus.com> + + * scripttempl/tic80coff.sc (.text): Add a leading underscore to + __{D,C}TOR_{LIST,END}__ definations. Rearrange the order of items + in the .text section. + +end-sanitize-tic80 +Wed Apr 30 12:23:21 1997 Manfred Hollstein <manfred@s-direktnet.de> + + * scripttempl/m88kbcs.sc (__.initp.end, _etext): Added whitespace + around assignment of current location pointer. + Thu Apr 17 13:07:18 1997 Ian Lance Taylor <ian@cygnus.com> * ldctor.c (ldctor_build_sets): Make sure the set is aligned diff --git a/ld/scripttempl/tic80coff.sc b/ld/scripttempl/tic80coff.sc new file mode 100644 index 0000000..0d52aaa --- /dev/null +++ b/ld/scripttempl/tic80coff.sc @@ -0,0 +1,67 @@ +# Linker script for TI TMS320C80 (tic80) COFF. +# +# Besides the shell variables set by the emulparams script, and the LD_FLAG +# variable, the genscripts.sh script will set the following variables for each +# time this script is run to generate one of the linker scripts for ldscripts: +# +# RELOCATING: Set to a non-empty string when the linker is going to be doing +# a final relocation. +# +# CONSTRUCTING: Set to a non-empty string when the linker is going to be +# building global constructor and destructor tables. +# +# DATA_ALIGNMENT: Set to an ALIGN expression when the output should be page +# aligned, or to "." when generating the -N script. +# +# CREATE_SHLIB: Set to a non-empty string when generating a script for +# the -shared linker arg. + +test -z "$TEXT_START_ADDR" && TEXT_START_ADDR="0x80000 + SIZEOF_HEADERS" +test -z "$ENTRY" && ENTRY=__start + +cat <<EOF +OUTPUT_FORMAT("${OUTPUT_FORMAT}") +${LIB_SEARCH_DIRS} + +ENTRY(${ENTRY}) + +SECTIONS +{ + .text ${RELOCATING+ $TEXT_START_ADDR} : { + *(.init) + *(.fini) + *(.text) + ${CONSTRUCTING+ . = ALIGN(4);} + ${CONSTRUCTING+ ___CTOR_LIST__ = .;} + ${CONSTRUCTING+ LONG((___CTOR_END__ - ___CTOR_LIST__) / 4 - 2)} + ${CONSTRUCTING+ *(.ctors)} + ${CONSTRUCTING+ LONG(0)} + ${CONSTRUCTING+ ___CTOR_END__ = .;} + ${CONSTRUCTING+ ___DTOR_LIST__ = .;} + ${CONSTRUCTING+ LONG((___DTOR_END__ - ___DTOR_LIST__) / 4 - 2)} + ${CONSTRUCTING+ *(.dtors)} + ${CONSTRUCTING+ LONG(0)} + ${CONSTRUCTING+ ___DTOR_END__ = .;} + ${RELOCATING+ etext = .;} + } + .data : { + *(.data) + ${RELOCATING+ __edata = .}; + } + .bss : { + ${RELOCATING+ __bss_start = .}; + *(.bss) + *(COMMON) + ${RELOCATING+ _end = ALIGN(0x8)}; + ${RELOCATING+ __end = ALIGN(0x8)}; + } + .stab 0 ${RELOCATING+(NOLOAD)} : + { + [ .stab ] + } + .stabstr 0 ${RELOCATING+(NOLOAD)} : + { + [ .stabstr ] + } +} +EOF |