setvar ARCH = 'aarch64' setvar MACHINE = '' setvar NOP = '0' setvar SCRIPT_NAME = 'elf' setvar ELFSIZE = '64' setvar OUTPUT_FORMAT = ""elf64-littleaarch64"" setvar BIG_OUTPUT_FORMAT = ""elf64-bigaarch64"" setvar LITTLE_OUTPUT_FORMAT = ""elf64-littleaarch64"" setvar NO_REL_RELOCS = 'yes' setvar TEMPLATE_NAME = 'elf32' setvar EXTRA_EM_FILE = 'aarch64elf' setvar GENERATE_SHLIB_SCRIPT = 'yes' setvar GENERATE_PIE_SCRIPT = 'yes' setvar MAXPAGESIZE = ""CONSTANT (MAXPAGESIZE)"" setvar COMMONPAGESIZE = ""CONSTANT (COMMONPAGESIZE)"" setvar SEPARATE_GOTPLT = '24' setvar IREL_IN_PLT = '' setvar TEXT_START_ADDR = '0x400000' setvar DATA_START_SYMBOLS = ''PROVIDE (__data_start = .);''; # AArch64 does not support .s* sections. setvar NO_SMALL_DATA = 'yes' setvar OTHER_BSS_SYMBOLS = ''__bss_start__ = .;'' setvar OTHER_BSS_END_SYMBOLS = ''_bss_end__ = . ; __bss_end__ = . ;'' setvar OTHER_END_SYMBOLS = ''__end__ = . ;'' setvar OTHER_SECTIONS = ''.note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) }'' setvar ATTRS_SECTIONS = ''.ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) }'' # Ensure each PLT entry is aligned to a cache line. setvar PLT = "".plt ${RELOCATING-0} : ALIGN(16) { *(.plt)${IREL_IN_PLT+ *(.iplt)} }"" # Linux modifies the default library search path to first include # a 64-bit specific directory. case (target) { aarch64*-linux* { case (EMULATION_NAME) { aarch64linux* { setvar LIBPATH_SUFFIX = '64' } } } } setvar ELF_INTERPRETER_NAME = "'"'/lib/ld-linux-aarch64.so.1'"'"