# If you change this file, please also look at files which source this one:
-# elf_i386_vxworks.sh elf32ppcvxworks.sh elf32ebmipvxworks.sh
+# armelf_vxworks.sh elf32ebmipvxworks.sh elf32elmipvxworks.sh
+# elf_i386_vxworks.sh elf32ppcvxworks.sh elf32_sparc_vxworks.sh
+# shelf_vxworks.sh
# The Diab tools use a different init/fini convention. Initialization code
# is place in sections named ".init$NN". These sections are then concatenated
KEEP (*(.fini$0[1-9]));
KEEP (*(.fini$[1-8][0-9]));
KEEP (*(.fini$9[0-8]));'
-FINI_END='KEEP (*(.fini$99));
- PROVIDE (_etext = .);'
+FINI_END="KEEP (*(.fini\$99));
+ PROVIDE (${SYMPREFIX}_etext = .);"
+OTHER_READWRITE_SECTIONS=".tls_data ${RELOCATING-0} : {${RELOCATING+
+ __wrs_rtp_tls_data_start = .;
+ ___wrs_rtp_tls_data_start = .;}
+ *(.tls_data${RELOCATING+ .tls_data.*})
+ }${RELOCATING+
+ __wrs_rtp_tls_data_size = . - __wrs_rtp_tls_data_start;
+ ___wrs_rtp_tls_data_size = . - __wrs_rtp_tls_data_start;
+ __wrs_rtp_tls_data_align = ALIGNOF(.tls_data);
+ ___wrs_rtp_tls_data_align = ALIGNOF(.tls_data);}
+ .tls_vars ${RELOCATING-0} : {${RELOCATING+
+ __wrs_rtp_tls_vars_start = .;
+ ___wrs_rtp_tls_vars_start = .;}
+ *(.tls_vars${RELOCATING+ .tls_vars.*})
+ }${RELOCATING+
+ __wrs_rtp_tls_vars_size = SIZEOF(.tls_vars);
+ ___wrs_rtp_tls_vars_size = SIZEOF(.tls_vars);}"
+
+TEXT_START_ADDR="(DEFINED (__wrs_rtp_base) ? __wrs_rtp_base : 0)"
ETEXT_NAME=etext_unrelocated
-OTHER_END_SYMBOLS="PROVIDE (_ehdr = ${TEXT_START_ADDR});"
-DATA_END_SYMBOLS=".edata : { PROVIDE (_edata = .); }"
+OTHER_END_SYMBOLS="PROVIDE (${SYMPREFIX}_ehdr = ${TEXT_START_ADDR});"
+DATA_END_SYMBOLS=".edata : { PROVIDE (${SYMPREFIX}_edata = .); }"
+VXWORKS_BASE_EM_FILE=$EXTRA_EM_FILE
+EXTRA_EM_FILE=vxworks
+unset EMBEDDED