This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
[PATCH] Add support for Phoenix-RTOS on ARM.
- From: Jakub Sejdak <jakub dot sejdak at phoesys dot com>
- To: binutils at sourceware dot org
- Cc: gdb-patches at sourceware dot org, Kuba Sejdak <jakub dot sejdak at phoesys dot com>
- Date: Thu, 12 May 2016 11:17:38 +0200
- Subject: [PATCH] Add support for Phoenix-RTOS on ARM.
- Authentication-results: sourceware.org; auth=none
From: Kuba Sejdak <jakub.sejdak@phoesys.com>
---
bfd/config.bfd | 4 ++++
gas/configure.tgt | 1 +
ld/Makefile.am | 5 +++++
ld/configure.tgt | 1 +
ld/emulparams/armelf_phoenix.sh | 24 ++++++++++++++++++++++++
5 files changed, 35 insertions(+)
create mode 100644 ld/emulparams/armelf_phoenix.sh
diff --git a/bfd/config.bfd b/bfd/config.bfd
index 7c4eece..4e53304 100644
--- a/bfd/config.bfd
+++ b/bfd/config.bfd
@@ -349,6 +349,10 @@ case "${targ}" in
targ_selvecs=arm_coff_be_vec
targ_underscore=yes
;;
+ arm-*-phoenix*)
+ targ_defvec=arm_elf32_le_vec
+ targ_selvecs=arm_elf32_be_vec
+ ;;
arm-*-rtems*)
targ_defvec=arm_elf32_le_vec
targ_selvecs=arm_elf32_be_vec
diff --git a/gas/configure.tgt b/gas/configure.tgt
index 75470e4..4e0d4aa 100644
--- a/gas/configure.tgt
+++ b/gas/configure.tgt
@@ -135,6 +135,7 @@ case ${generic_target} in
arm-*-aout) fmt=aout ;;
arm-*-coff) fmt=coff ;;
+ arm-*-phoenix*) fmt=elf ;;
arm-*-rtems*) fmt=elf ;;
arm-*-elf) fmt=elf ;;
arm-*-eabi*) fmt=elf em=armeabi ;;
diff --git a/ld/Makefile.am b/ld/Makefile.am
index bf50e70..9d740d4 100644
--- a/ld/Makefile.am
+++ b/ld/Makefile.am
@@ -179,6 +179,7 @@ ALL_EMULATION_SOURCES = \
earmelf_linux_eabi.c \
earmelf_nacl.c \
earmelf_nbsd.c \
+ earmelf_phoenix.c \
earmelf_vxworks.c \
earmelfb.c \
earmelfb_fbsd.c \
@@ -777,6 +778,10 @@ earmelf_nbsd.c: $(srcdir)/emulparams/armelf_nbsd.sh \
$(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
$(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+earmelf_phoenix.c: $(srcdir)/emulparams/armelf_phoenix.sh \
+ $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
+ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+
earmelf_vxworks.c: $(srcdir)/emulparams/armelf_vxworks.sh \
$(srcdir)/emulparams/vxworks.sh $(srcdir)/emulparams/armelf.sh \
$(ELF_DEPS) $(srcdir)/emultempl/vxworks.em \
diff --git a/ld/configure.tgt b/ld/configure.tgt
index 1f6db42..88c97cb 100644
--- a/ld/configure.tgt
+++ b/ld/configure.tgt
@@ -103,6 +103,7 @@ arm-*-netbsd*) targ_emul=armnbsd;
targ_extra_emuls="armelf armelf_nbsd armelfb_nbsd" ;;
arm-*-nto*) targ_emul=armnto ;;
arm-*-openbsd*) targ_emul=armnbsd ;;
+arm-*-phoenix*) targ_emul=armelf ;;
arm-*-rtems*) targ_emul=armelf ;;
armeb-*-elf | armeb-*-eabi*)
targ_emul=armelfb ;;
diff --git a/ld/emulparams/armelf_phoenix.sh b/ld/emulparams/armelf_phoenix.sh
new file mode 100644
index 0000000..d78edaf
--- /dev/null
+++ b/ld/emulparams/armelf_phoenix.sh
@@ -0,0 +1,24 @@
+ARCH=arm
+SCRIPT_NAME=elf
+OUTPUT_FORMAT="elf32-littlearm"
+BIG_OUTPUT_FORMAT="elf32-bigarm"
+LITTLE_OUTPUT_FORMAT="elf32-littlearm"
+MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
+COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
+TEMPLATE_NAME=elf32
+EXTRA_EM_FILE=armelf
+GENERATE_SHLIB_SCRIPT=yes
+GENERATE_PIE_SCRIPT=yes
+
+DATA_START_SYMBOLS='PROVIDE (__data_start = .);';
+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)) }'
+
+TEXT_START_ADDR=0x00001000
+TARGET2_TYPE=got-rel
+
+# ARM does not support .s* sections.
+NO_SMALL_DATA=yes
--
2.7.4