1# If you change this file, please also look at files which source this one:
2# armelf_vxworks.sh elf32ebmipvxworks.sh elf32elmipvxworks.sh
3# elf_i386_vxworks.sh elf32ppcvxworks.sh elf32_sparc_vxworks.sh
4# shelf_vxworks.sh
5
6# The Diab tools use a different init/fini convention.  Initialization code
7# is place in sections named ".init$NN".  These sections are then concatenated
8# into the .init section.  It is important that .init$00 be first and .init$99
9# be last. The other sections should be sorted, but the current linker script
10# parse does not seem to allow that with the SORT keyword in this context.
11INIT_START='_init = .;
12            KEEP (*(.init$00));
13            KEEP (*(.init$0[1-9]));
14            KEEP (*(.init$[1-8][0-9]));
15            KEEP (*(.init$9[0-8]));'
16INIT_END='KEEP (*(.init$99));'
17FINI_START='_fini = .;
18            KEEP (*(.fini$00));
19            KEEP (*(.fini$0[1-9]));
20            KEEP (*(.fini$[1-8][0-9]));
21            KEEP (*(.fini$9[0-8]));'
22FINI_END="KEEP (*(.fini\$99));
23          PROVIDE (${SYMPREFIX}_etext = .);"
24
25OTHER_READWRITE_SECTIONS=".tls_data ${RELOCATING-0} : {${RELOCATING+
26    __wrs_rtp_tls_data_start = .;
27    ___wrs_rtp_tls_data_start = .;}
28    *(.tls_data${RELOCATING+ .tls_data.*})
29  }${RELOCATING+
30  __wrs_rtp_tls_data_size = . - __wrs_rtp_tls_data_start;
31  ___wrs_rtp_tls_data_size = . - __wrs_rtp_tls_data_start;
32  __wrs_rtp_tls_data_align = ALIGNOF(.tls_data);
33  ___wrs_rtp_tls_data_align = ALIGNOF(.tls_data);}
34  .tls_vars ${RELOCATING-0} : {${RELOCATING+
35    __wrs_rtp_tls_vars_start = .;
36    ___wrs_rtp_tls_vars_start = .;}
37    *(.tls_vars${RELOCATING+ .tls_vars.*})
38  }${RELOCATING+
39  __wrs_rtp_tls_vars_size = SIZEOF(.tls_vars);
40  ___wrs_rtp_tls_vars_size = SIZEOF(.tls_vars);}"
41
42TEXT_START_ADDR="(DEFINED (__wrs_rtp_base) ? __wrs_rtp_base : 0)"
43ETEXT_NAME=etext_unrelocated
44OTHER_END_SYMBOLS="PROVIDE (${SYMPREFIX}_ehdr = ${TEXT_START_ADDR});"
45DATA_END_SYMBOLS=".edata : { PROVIDE (${SYMPREFIX}_edata = .); }"
46VXWORKS_BASE_EM_FILE=$EXTRA_EM_FILE
47EXTRA_EM_FILE=vxworks
48unset EMBEDDED
49