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. 11 INIT_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]));' 16 INIT_END='KEEP (*(.init$99));' 17 FINI_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]));' 22 FINI_END="KEEP (*(.fini\$99)); 23 PROVIDE (${SYMPREFIX}_etext = .);" 24 25 OTHER_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 42 TEXT_START_ADDR="(DEFINED (__wrs_rtp_base) ? __wrs_rtp_base : 0)" 43 ETEXT_NAME=etext_unrelocated 44 OTHER_END_SYMBOLS="PROVIDE (${SYMPREFIX}_ehdr = ${TEXT_START_ADDR});" 45 DATA_END_SYMBOLS=".edata : { PROVIDE (${SYMPREFIX}_edata = .); }" 46 VXWORKS_BASE_EM_FILE=$EXTRA_EM_FILE 47 EXTRA_EM_FILE=vxworks 48 unset EMBEDDED 49