merge from gcc
[binutils.git] / ld / scripttempl / alpha.sc
blob44a10c469cd2836a9751042e98523a5b05b56569
1 # Linker script for Alpha systems.
2 # Ian Lance Taylor <ian@cygnus.com>.
3 # These variables may be overridden by the emulation file.  The
4 # defaults are appropriate for an Alpha running OSF/1.
5 test -z "$ENTRY" && ENTRY=__start
6 test -z "$TEXT_START_ADDR" && TEXT_START_ADDR="0x120000000 + SIZEOF_HEADERS"
7 if test "x$LD_FLAG" = "xn" -o "x$LD_FLAG" = "xN"; then
8   DATA_ADDR=.
9 else
10   test -z "$DATA_ADDR" && DATA_ADDR=0x140000000
12 cat <<EOF
13 OUTPUT_FORMAT("${OUTPUT_FORMAT}")
14 ${LIB_SEARCH_DIRS}
16 ENTRY(${ENTRY})
18 SECTIONS
20   ${RELOCATING+. = ${TEXT_START_ADDR};}
21   .text : {
22     ${RELOCATING+ _ftext = . };
23     ${RELOCATING+ __istart = . };
24     ${RELOCATING+ *(.init) }
25     ${RELOCATING+ LONG (0x6bfa8001)}
26     ${RELOCATING+ eprol  =  .};
27     *(.text)
28     ${RELOCATING+ __fstart = . };
29     ${RELOCATING+ *(.fini)}
30     ${RELOCATING+ LONG (0x6bfa8001)}
31     ${RELOCATING+ _etext  =  .};
32   }
33   .rdata : {
34     *(.rdata)
35   }
36   .rconst : {
37     *(.rconst)
38   }
39   .pdata : {
40     ${RELOCATING+ _fpdata = .;}
41     *(.pdata)
42   }
43   ${RELOCATING+. = ${DATA_ADDR};}
44   .data : {
45     ${RELOCATING+ _fdata = .;}
46     *(.data)
47     ${CONSTRUCTING+CONSTRUCTORS}
48   }
49   .xdata : {
50     *(.xdata)
51   }
52   ${RELOCATING+ _gp = ALIGN (16) + 0x8000;}
53   .lit8 : {
54     *(.lit8)
55   }
56   .lita : {
57     *(.lita)
58   }
59   .sdata : {
60     *(.sdata)
61   }
62   ${RELOCATING+ _EDATA  =  .;}
63   ${RELOCATING+ _FBSS = .;}
64   .sbss : {
65     *(.sbss)
66     *(.scommon)
67   }
68   .bss : {
69     *(.bss)
70     *(COMMON)
71   }
72   ${RELOCATING+ _end = .;}
74 EOF