Commit | Line | Data |
---|---|---|
56244278 AP |
1 | ARCH="aarch64:ilp32" |
2 | MACHINE= | |
9a2ebffd | 3 | NOP=0x1f2003d5 |
56244278 AP |
4 | |
5 | SCRIPT_NAME=elf | |
6 | ELFSIZE=32 | |
7 | OUTPUT_FORMAT="elf32-littleaarch64" | |
8 | BIG_OUTPUT_FORMAT="elf32-bigaarch64" | |
9 | LITTLE_OUTPUT_FORMAT="elf32-littleaarch64" | |
10 | NO_REL_RELOCS=yes | |
11 | ||
075a2b89 | 12 | TEMPLATE_NAME=elf |
56244278 AP |
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=12 | |
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+)};" | |
56244278 AP |
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. | |
2bf2bf23 | 37 | PLT=".plt ${RELOCATING-0} : ALIGN(16) { *(.plt)${RELOCATING+${IREL_IN_PLT+ *(.iplt)}} }" |
56244278 AP |
38 | |
39 | # Linux modifies the default library search path to first include | |
40 | # a 32-bit specific directory. | |
41 | case "$target" in | |
42 | aarch64*-linux*) | |
43 | case "$EMULATION_NAME" in | |
7d0edd4b | 44 | aarch64linux*) LIBPATH_SUFFIX=ilp32 ;; |
56244278 AP |
45 | esac |
46 | ;; | |
47 | esac | |
7d0edd4b AP |
48 | |
49 | ELF_INTERPRETER_NAME=\"/lib/ld-linux-aarch64_ilp32.so.1\" |