From a2bea3245ecf4ff67f923c85adf57aa78423eb45 Mon Sep 17 00:00:00 2001 From: Kuba Sejdak Date: Mon, 23 May 2016 13:53:07 +0100 Subject: [PATCH] Add support for configuring for the ARM Phoenix target. bfd * config.bfd: Add entry for arm-phoenix. gas * configuse.tgt: Add entry for arm-phoenix. ld * Makefile.am: Add earmelf_phoenix.c. * Makefile.in: Regenerate. * configure.tgt: Add entry for arm-phoenix. * emulparams/armelf_phoenix.sh: New file. --- bfd/ChangeLog | 4 ++++ bfd/config.bfd | 4 ++++ gas/configure.tgt | 1 + ld/ChangeLog | 7 +++++++ ld/Makefile.am | 5 +++++ ld/Makefile.in | 6 ++++++ ld/configure.tgt | 1 + ld/emulparams/armelf_phoenix.sh | 24 ++++++++++++++++++++++++ 8 files changed, 52 insertions(+) create mode 100644 ld/emulparams/armelf_phoenix.sh diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 8d8c24c..8af8bda 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,7 @@ +2016-05-23 Kuba Sejdak + + * config.bfd: Add entry for arm-phoenix. + 2016-05-23 Thomas Preud'homme * elf32-arm.c (arm_dedicated_stub_section_padding): New function. diff --git a/bfd/config.bfd b/bfd/config.bfd index d0aa553..f7e9e22 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/ChangeLog b/ld/ChangeLog index 7f8d690..6509f33 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,10 @@ +2016-05-23 Kuba Sejdak + + * Makefile.am: Add earmelf_phoenix.c. + * Makefile.in: Regenerate. + * configure.tgt: Add entry for arm-phoenix. + * emulparams/armelf_phoenix.sh: New file. + 2016-05-23 Thomas Preud'homme * emultempl/armelf.em (arm_elf_before_allocation): Call diff --git a/ld/Makefile.am b/ld/Makefile.am index 1c03e7b..0598923 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/Makefile.in b/ld/Makefile.in index 37e9e2f..7c78198 100644 --- a/ld/Makefile.in +++ b/ld/Makefile.in @@ -547,6 +547,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 \ @@ -1183,6 +1184,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf_linux_eabi.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf_nacl.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf_nbsd.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf_phoenix.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf_vxworks.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelfb.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelfb_fbsd.Po@am__quote@ @@ -2364,6 +2366,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 d68e3a9..0b7637b 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