Commit | Line | Data |
---|---|---|
a06ea964 NC |
1 | ARCH=aarch64 |
2 | MACHINE= | |
9a2ebffd | 3 | NOP=0x1f2003d5 |
a06ea964 NC |
4 | |
5 | SCRIPT_NAME=elf | |
4390599b | 6 | ELFSIZE=64 |
a06ea964 NC |
7 | OUTPUT_FORMAT="elf64-littleaarch64" |
8 | BIG_OUTPUT_FORMAT="elf64-bigaarch64" | |
9 | LITTLE_OUTPUT_FORMAT="elf64-littleaarch64" | |
10 | NO_REL_RELOCS=yes | |
11 | ||
12 | TEMPLATE_NAME=elf32 | |
13 | EXTRA_EM_FILE=aarch64elf | |
14 | ||
15 | GENERATE_SHLIB_SCRIPT=yes | |
16 | GENERATE_PIE_SCRIPT=yes | |
17 | ||
18 | MAXPAGESIZE="CONSTANT (MAXPAGESIZE)" | |
19 | COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)" | |
20 | SEPARATE_GOTPLT=24 | |
21 | IREL_IN_PLT= | |
22 | ||
23 | TEXT_START_ADDR=0x400000 | |
24 | ||
25 | DATA_START_SYMBOLS='PROVIDE (__data_start = .);'; | |
26 | ||
27 | # AArch64 does not support .s* sections. | |
28 | NO_SMALL_DATA=yes | |
29 | ||
fd161d86 AM |
30 | OTHER_BSS_SYMBOLS="${CREATE_SHLIB+PROVIDE (}__bss_start__ = .${CREATE_SHLIB+)};" |
31 | OTHER_BSS_END_SYMBOLS="${CREATE_SHLIB+PROVIDE (}_bss_end__ = .${CREATE_SHLIB+)}; ${CREATE_SHLIB+PROVIDE (}__bss_end__ = .${CREATE_SHLIB+)};" | |
32 | OTHER_END_SYMBOLS="${CREATE_SHLIB+PROVIDE (}__end__ = .${CREATE_SHLIB+)};" | |
a06ea964 NC |
33 | |
34 | OTHER_SECTIONS='.note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) }' | |
35 | ATTRS_SECTIONS='.ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) }' | |
36 | # Ensure each PLT entry is aligned to a cache line. | |
37 | PLT=".plt ${RELOCATING-0} : ALIGN(16) { *(.plt)${IREL_IN_PLT+ *(.iplt)} }" | |
6f2ef5f5 JJ |
38 | |
39 | # Linux modifies the default library search path to first include | |
40 | # a 64-bit specific directory. | |
41 | case "$target" in | |
42 | aarch64*-linux*) | |
43 | case "$EMULATION_NAME" in | |
44 | aarch64linux*) LIBPATH_SUFFIX=64 ;; | |
45 | esac | |
46 | ;; | |
47 | esac | |
30feb358 MS |
48 | |
49 | ELF_INTERPRETER_NAME=\"/lib/ld-linux-aarch64.so.1\" |