133965Sjdp# Linker script for Alpha systems.
233965Sjdp# Ian Lance Taylor <ian@cygnus.com>.
333965Sjdp# These variables may be overridden by the emulation file.  The
433965Sjdp# defaults are appropriate for an Alpha running OSF/1.
533965Sjdptest -z "$ENTRY" && ENTRY=__start
633965Sjdptest -z "$TEXT_START_ADDR" && TEXT_START_ADDR="0x120000000 + SIZEOF_HEADERS"
733965Sjdpif test "x$LD_FLAG" = "xn" -o "x$LD_FLAG" = "xN"; then
833965Sjdp  DATA_ADDR=.
933965Sjdpelse
1033965Sjdp  test -z "$DATA_ADDR" && DATA_ADDR=0x140000000
1133965Sjdpfi
1233965Sjdpcat <<EOF
1333965SjdpOUTPUT_FORMAT("${OUTPUT_FORMAT}")
1433965Sjdp${LIB_SEARCH_DIRS}
1533965Sjdp
1633965SjdpENTRY(${ENTRY})
1733965Sjdp
1833965SjdpSECTIONS
1933965Sjdp{
2033965Sjdp  ${RELOCATING+. = ${TEXT_START_ADDR};}
2133965Sjdp  .text : {
2233965Sjdp    ${RELOCATING+ _ftext = . };
2333965Sjdp    ${RELOCATING+ __istart = . };
2433965Sjdp    ${RELOCATING+ *(.init) }
2533965Sjdp    ${RELOCATING+ LONG (0x6bfa8001)}
2633965Sjdp    ${RELOCATING+ eprol  =  .};
2733965Sjdp    *(.text)
2833965Sjdp    ${RELOCATING+ __fstart = . };
2933965Sjdp    ${RELOCATING+ *(.fini)}
3033965Sjdp    ${RELOCATING+ LONG (0x6bfa8001)}
3133965Sjdp    ${RELOCATING+ _etext  =  .};
3233965Sjdp  }
3333965Sjdp  .rdata : {
3433965Sjdp    *(.rdata)
3533965Sjdp  }
3633965Sjdp  .rconst : {
3733965Sjdp    *(.rconst)
3833965Sjdp  }
3933965Sjdp  .pdata : {
4033965Sjdp    ${RELOCATING+ _fpdata = .;}
4133965Sjdp    *(.pdata)
4233965Sjdp  }
4333965Sjdp  ${RELOCATING+. = ${DATA_ADDR};}
4433965Sjdp  .data : {
4533965Sjdp    ${RELOCATING+ _fdata = .;}
4633965Sjdp    *(.data)
4733965Sjdp    ${CONSTRUCTING+CONSTRUCTORS}
4833965Sjdp  }
4933965Sjdp  .xdata : {
5033965Sjdp    *(.xdata)
5133965Sjdp  }
5233965Sjdp  ${RELOCATING+ _gp = ALIGN (16) + 0x8000;}
5333965Sjdp  .lit8 : {
5433965Sjdp    *(.lit8)
5533965Sjdp  }
5633965Sjdp  .lita : {
5733965Sjdp    *(.lita)
5833965Sjdp  }
5933965Sjdp  .sdata : {
6033965Sjdp    *(.sdata)
6133965Sjdp  }
6233965Sjdp  ${RELOCATING+ _EDATA  =  .;}
6333965Sjdp  ${RELOCATING+ _FBSS = .;}
6433965Sjdp  .sbss : {
6533965Sjdp    *(.sbss)
6633965Sjdp    *(.scommon)
6733965Sjdp  }
6833965Sjdp  .bss : {
6933965Sjdp    *(.bss)
7033965Sjdp    *(COMMON)
7133965Sjdp  }
7233965Sjdp  ${RELOCATING+ _end = .;}
7333965Sjdp}
7433965SjdpEOF
75