PR 4437
[binutils/dougsmingw.git] / ld / scripttempl / tic80coff.sc
blobf28e90490969e51c79cb9f3ab8e59993f30b9971
1 # Linker script for TI TMS320C80 (tic80) COFF.
3 # Besides the shell variables set by the emulparams script, and the LD_FLAG
4 # variable, the genscripts.sh script will set the following variables for each
5 # time this script is run to generate one of the linker scripts for ldscripts:
7 # RELOCATING: Set to a non-empty string when the linker is going to be doing
8 # a final relocation.
10 # CONSTRUCTING: Set to a non-empty string when the linker is going to be
11 # building global constructor and destructor tables.
13 # DATA_ALIGNMENT: Set to an ALIGN expression when the output should be page
14 # aligned, or to "." when generating the -N script.
16 # CREATE_SHLIB: Set to a non-empty string when generating a script for
17 # the -shared linker arg.
19 test -z "$TEXT_START_ADDR" && TEXT_START_ADDR="0x80000 + SIZEOF_HEADERS"
20 test -z "$ENTRY" && ENTRY=__start
22 cat <<EOF
23 OUTPUT_FORMAT("${OUTPUT_FORMAT}")
24 ${LIB_SEARCH_DIRS}
26 ${RELOCATING+ENTRY (${ENTRY})}
28 SECTIONS
30   .text ${RELOCATING+ $TEXT_START_ADDR} : {
31     *(.init)
32     *(.fini)
33     *(.text)
34   }
35   .const ALIGN(4) : {
36     *(.const)
37   }
38   .ctors ALIGN(4) : {
39     ${CONSTRUCTING+ . = ALIGN(4);}
40     ${CONSTRUCTING+ ___CTOR_LIST__ = .;}
41     ${CONSTRUCTING+ LONG(-1)}
42     *(.ctors)
43     ${CONSTRUCTING+ ___CTOR_END__ = .;}
44     ${CONSTRUCTING+ LONG(0)}
45   }
46   .dtors ALIGN(4) : {
47     ${CONSTRUCTING+ ___DTOR_LIST__ = .;}
48     ${CONSTRUCTING+ LONG(-1)}
49     ${CONSTRUCTING+ *(.dtors)}
50     ${CONSTRUCTING+ ___DTOR_END__ = .;}
51     ${CONSTRUCTING+ LONG(0)}
52   }
53   ${RELOCATING+ etext  =  .;}
54   .data : {
55     *(.data)
56     ${RELOCATING+ __edata  =  .};
57   }
58   .bss : {                                      
59     ${RELOCATING+ __bss_start = .};
60     *(.bss)
61     *(COMMON)
62      ${RELOCATING+ _end = ALIGN(0x8)};
63      ${RELOCATING+ __end = ALIGN(0x8)};
64   }
65   .stab  0 ${RELOCATING+(NOLOAD)} : 
66   {
67     [ .stab ]
68   }
69   .stabstr  0 ${RELOCATING+(NOLOAD)} :
70   {
71     [ .stabstr ]
72   }
74 EOF