summaryrefslogtreecommitdiff
path: root/ld/emulparams/aarch64elf32.sh
diff options
context:
space:
mode:
authorYufeng Zhang <yufeng.zhang@arm.com>2013-06-26 10:59:17 +0000
committerYufeng Zhang <yufeng.zhang@arm.com>2013-06-26 10:59:17 +0000
commit0609b76739f5b259b1fed33d05289d15c586a3a2 (patch)
tree82a21a8cb712725cfb9e30cf5eb106771b7e9e6a /ld/emulparams/aarch64elf32.sh
parent70f0bc67ba98bcb4cb416806d6cbb4f318ead54d (diff)
downloadbinutils-gdb-0609b76739f5b259b1fed33d05289d15c586a3a2.tar.gz
[AArch64, ILP32] Really add ld/emulparams/aarch64elf32.sh that was missed
from the previous commit ld/ * emulparams/aarch64elf32.sh: New file.
Diffstat (limited to 'ld/emulparams/aarch64elf32.sh')
-rw-r--r--ld/emulparams/aarch64elf32.sh36
1 files changed, 36 insertions, 0 deletions
diff --git a/ld/emulparams/aarch64elf32.sh b/ld/emulparams/aarch64elf32.sh
new file mode 100644
index 00000000000..5fe08e247f6
--- /dev/null
+++ b/ld/emulparams/aarch64elf32.sh
@@ -0,0 +1,36 @@
+ARCH="aarch64:ilp32"
+MACHINE=
+NOP=0
+
+SCRIPT_NAME=elf
+ELFSIZE=32
+OUTPUT_FORMAT="elf32-littleaarch64"
+BIG_OUTPUT_FORMAT="elf32-bigaarch64"
+LITTLE_OUTPUT_FORMAT="elf32-littleaarch64"
+NO_REL_RELOCS=yes
+
+TEMPLATE_NAME=elf32
+EXTRA_EM_FILE=aarch64elf
+
+GENERATE_SHLIB_SCRIPT=yes
+MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
+
+ENTRY=_start
+EMBEDDED=yes
+SEPARATE_GOTPLT=24
+TEXT_START_ADDR=0x00400000
+
+DATA_START_SYMBOLS='__data_start = . ;';
+
+# AArch64 does not support .s* sections.
+NO_SMALL_DATA=yes
+
+OTHER_BSS_SYMBOLS='__bss_start__ = .;'
+OTHER_BSS_END_SYMBOLS='_bss_end__ = . ; __bss_end__ = . ;'
+OTHER_END_SYMBOLS='__end__ = . ;'
+
+OTHER_SECTIONS='.note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) }'
+ATTRS_SECTIONS='.ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) }'
+
+# This sets the stack to the top of the simulator memory (2^19 bytes).
+STACK_ADDR=0x80000