Skip to content

Commit 74fd771

Browse files
author
Hubert Badocha
committed
!toolchain/ld: change arm emul
Previously we defined armelf_phoenix emulation that wasn't used. This patch fixes the configuration to use it. Additionally support in armelf_phoenix emulation for shared libs is added. JIRA: RTOS-911
1 parent 97fb495 commit 74fd771

1 file changed

Lines changed: 48 additions & 0 deletions

File tree

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
diff --git a/ld/configure.tgt b/ld/configure.tgt
2+
index f937f78b876..989b3753eb3 100644
3+
--- a/ld/configure.tgt
4+
+++ b/ld/configure.tgt
5+
@@ -198,7 +198,10 @@ arm-*-netbsd*) targ_emul=armelf_nbsd;
6+
;;
7+
arm-*-nto*) targ_emul=armnto
8+
;;
9+
-arm-*-phoenix*) targ_emul=armelf
10+
+arm-*-phoenix*)
11+
+ targ_emul=armelf_phoenix
12+
+ targ_extra_emuls="armelf"
13+
+ targ_extra_libpath=$targ_extra_emuls
14+
;;
15+
armeb-*-elf | armeb-*-eabi*)
16+
targ_emul=armelfb
17+
diff --git a/ld/emulparams/armelf_phoenix.sh b/ld/emulparams/armelf_phoenix.sh
18+
index 63c35a8290b..ceb1edc42e6 100644
19+
--- a/ld/emulparams/armelf_phoenix.sh
20+
+++ b/ld/emulparams/armelf_phoenix.sh
21+
@@ -1,24 +1,8 @@
22+
-ARCH=arm
23+
-SCRIPT_NAME=elf
24+
-OUTPUT_FORMAT="elf32-littlearm"
25+
-BIG_OUTPUT_FORMAT="elf32-bigarm"
26+
-LITTLE_OUTPUT_FORMAT="elf32-littlearm"
27+
+source_sh ${srcdir}/emulparams/armelf.sh
28+
MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
29+
COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
30+
-TEMPLATE_NAME=elf
31+
-EXTRA_EM_FILE=armelf
32+
-GENERATE_SHLIB_SCRIPT=yes
33+
-GENERATE_PIE_SCRIPT=yes
34+
-
35+
-DATA_START_SYMBOLS='PROVIDE (__data_start = .);';
36+
-OTHER_TEXT_SECTIONS='*(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx)'
37+
-OTHER_BSS_SYMBOLS="${CREATE_SHLIB+PROVIDE (}__bss_start__ = .${CREATE_SHLIB+)};"
38+
-OTHER_BSS_END_SYMBOLS="${CREATE_SHLIB+PROVIDE (}_bss_end__ = .${CREATE_SHLIB+)}; ${CREATE_SHLIB+PROVIDE (}__bss_end__ = .${CREATE_SHLIB+)};"
39+
-OTHER_END_SYMBOLS="${CREATE_SHLIB+PROVIDE (}__end__ = .${CREATE_SHLIB+)};"
40+
-OTHER_SECTIONS='.note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) }'
41+
-
42+
TEXT_START_ADDR=0x00001000
43+
TARGET2_TYPE=got-rel
44+
45+
-# ARM does not support .s* sections.
46+
-NO_SMALL_DATA=yes
47+
+unset STACK_ADDR
48+
+unset EMBEDDED

0 commit comments

Comments
 (0)