setvar SCRIPT_NAME = 'elf' setvar TEMPLATE_NAME = 'elf32' setvar OUTPUT_FORMAT = ""elf32-tic6x-le"" setvar BIG_OUTPUT_FORMAT = ""elf32-tic6x-be"" setvar EXTRA_EM_FILE = 'tic6xdsbt' setvar GENERATE_SHLIB_SCRIPT = 'yes' # This address is an arbitrary value expected to be suitable for # semihosting simulator use, but not on hardware where it is expected # to be overridden. case{ *-elf { setvar TEXT_START_ADDR = '0x8000' } *-uclinux { setvar TEXT_START_ADDR = '0x0' setvar GOT = "" .got ${RELOCATING-0} : { *(.dsbt) *(.got.plt) *(.igot.plt) *(.got) *(.igot) }"" } } setvar MAXPAGESIZE = ""CONSTANT (MAXPAGESIZE)"" setvar ARCH = 'tic6x' setvar EXECUTABLE_SYMBOLS = ""EXTERN (__c6xabi_DSBT_BASE);"" setvar OTHER_GOT_SYMBOLS = ""PROVIDE_HIDDEN (__c6xabi_DSBT_BASE = .);"" # ".bss" is near (small) BSS, ".far" is far (normal) BSS, ".const" is # far read-only data, ".rodata" is near read-only data. ".neardata" # is near (small) data, ".fardata" is (along with .data) far data. setvar RODATA_NAME = ""const"" setvar SDATA_NAME = ""neardata"" setvar SBSS_NAME = ""bss"" setvar BSS_NAME = ""far"" setvar OTHER_READONLY_SECTIONS = "" .c6xabi.extab ${RELOCATING-0} : { *(.c6xabi.extab${RELOCATING+* .gnu.linkonce.c6xabiextab.*}) } ${RELOCATING+ PROVIDE_HIDDEN (__exidx_start = .); } .c6xabi.exidx ${RELOCATING-0} : { *(.c6xabi.exidx${RELOCATING+* .gnu.linkonce.c6xabiexidx.*}) } ${RELOCATING+ PROVIDE_HIDDEN (__exidx_end = .); }"" setvar OTHER_SDATA_SECTIONS = "".rodata ${RELOCATING-0} : { *(.rodata${RELOCATING+ .rodata.*}) }"" setvar OTHER_READONLY_RELOC_SECTIONS = "" .rel.rodata ${RELOCATING-0} : { *(.rel.rodata${RELOCATING+ .rel.rodata.*}) } .rela.rodata ${RELOCATING-0} : { *(.rela.rodata${RELOCATING+ .rela.rodata.*}) }"" setvar OTHER_READWRITE_SECTIONS = "".fardata ${RELOCATING-0} : { *(.fardata${RELOCATING+ .fardata.*}) }"" setvar OTHER_READWRITE_RELOC_SECTIONS = "" .rel.fardata ${RELOCATING-0} : { *(.rel.fardata${RELOCATING+ .rel.fardata.*}) } .rela.fardata ${RELOCATING-0} : { *(.rela.fardata${RELOCATING+ .rela.fardata.*}) }"" # For relocating operation, skip OTHER_BSS_SECTIONS, or will cause multiple definition. if test ${RELOCATING-0} { setvar OTHER_BSS_SECTIONS = """"; } else { case{ *-elf { setvar OTHER_BSS_SECTIONS = "" .heap : { . = ALIGN(4); _HEAP_START = .; . += 0x2000000; _HEAP_MAX = .; } .stack : { . += 0x100000; _STACK_START = .; }"" } } } setvar ATTRS_SECTIONS = ''.c6xabi.attributes 0 : { KEEP (*(.c6xabi.attributes)) KEEP (*(.gnu.attributes)) }''