summaryrefslogtreecommitdiff
path: root/ld/emulparams/armelf.sh
diff options
context:
space:
mode:
Diffstat (limited to 'ld/emulparams/armelf.sh')
-rw-r--r--ld/emulparams/armelf.sh35
1 files changed, 35 insertions, 0 deletions
diff --git a/ld/emulparams/armelf.sh b/ld/emulparams/armelf.sh
new file mode 100644
index 0000000..672b208
--- /dev/null
+++ b/ld/emulparams/armelf.sh
@@ -0,0 +1,35 @@
+MACHINE=
+SCRIPT_NAME=elf
+OUTPUT_FORMAT="elf32-littlearm"
+BIG_OUTPUT_FORMAT="elf32-bigarm"
+LITTLE_OUTPUT_FORMAT="elf32-littlearm"
+TEXT_START_ADDR=0x8000
+TEMPLATE_NAME=elf32
+EXTRA_EM_FILE=armelf
+OTHER_TEXT_SECTIONS='*(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx)'
+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)) }'
+OTHER_READONLY_SECTIONS="
+ .ARM.extab ${RELOCATING-0} : { *(.ARM.extab${RELOCATING+* .gnu.linkonce.armextab.*}) }
+ ${RELOCATING+ PROVIDE_HIDDEN (__exidx_start = .); }
+ .ARM.exidx ${RELOCATING-0} : { *(.ARM.exidx${RELOCATING+* .gnu.linkonce.armexidx.*}) }
+ ${RELOCATING+ PROVIDE_HIDDEN (__exidx_end = .); }"
+
+DATA_START_SYMBOLS='__data_start = . ;';
+
+GENERATE_SHLIB_SCRIPT=yes
+
+ARCH=arm
+MACHINE=
+MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
+ENTRY=_start
+EMBEDDED=yes
+
+# This sets the stack to the top of the simulator memory (2^19 bytes).
+STACK_ADDR=0x80000
+
+# ARM does not support .s* sections.
+NO_SMALL_DATA=yes