From 48494700d58ee0dc781d288191679072cbaf9d16 Mon Sep 17 00:00:00 2001 From: Anthony Green Date: Sun, 27 Jul 2014 08:51:20 -0400 Subject: [PATCH] Add moxiebox target --- bfd/ChangeLog | 4 ++++ bfd/config.bfd | 4 ++++ gas/ChangeLog | 8 ++++++++ gas/config/tc-moxie.c | 5 ++--- gas/config/tc-moxie.h | 6 +++--- gas/configure.tgt | 5 +++-- ld/ChangeLog | 8 ++++++++ ld/Makefile.am | 4 ++++ ld/Makefile.in | 5 +++++ ld/configure.tgt | 2 ++ ld/emulparams/moxiebox.sh | 9 +++++++++ 11 files changed, 52 insertions(+), 8 deletions(-) create mode 100644 ld/emulparams/moxiebox.sh diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 1eb47c91d1..f18776175c 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,7 @@ +2014-07-27 Anthony Green + + * config.bfd: Add moxie-*-moxiebox*. + 2014-07-21 Joel Sherrill Add or reactivate or1k-*-rtems* diff --git a/bfd/config.bfd b/bfd/config.bfd index e082f1d5a0..1950ca01c5 100644 --- a/bfd/config.bfd +++ b/bfd/config.bfd @@ -446,6 +446,10 @@ case "${targ}" in targ_selvecs=moxie_elf32_le_vec ;; + moxie-*-moxiebox*) + targ_defvec=moxie_elf32_le_vec + ;; + h8300*-*-rtemscoff*) targ_defvec=h8300_coff_vec targ_underscore=yes diff --git a/gas/ChangeLog b/gas/ChangeLog index 1861e37a01..d094926f6b 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,11 @@ +2014-07-27 Anthony Green + + * configure.tgt (generic_target): Add moxie-*-moxiebox* + * config/tc-moxie.c: Remove moxie_target_format. + (md_begin): Set default target_big_endian. + * config/tc-moxie.h: Only set TARGET_BYTES_BIG_ENDIAN if unset. + (TARGET_FORMAT): Set based on target_big_endian. + 2014-07-26 Alan Modra * config/bfin-parse.y: Don't include obstack.h. diff --git a/gas/config/tc-moxie.c b/gas/config/tc-moxie.c index 430a1449eb..02a59b7c70 100644 --- a/gas/config/tc-moxie.c +++ b/gas/config/tc-moxie.c @@ -46,7 +46,6 @@ static valueT md_chars_to_number (char * buf, int n); /* Byte order. */ extern int target_big_endian; -const char *moxie_target_format = DEFAULT_TARGET_FORMAT; void md_operand (expressionS *op __attribute__((unused))) @@ -75,6 +74,8 @@ md_begin (void) for (count = 0, opcode = moxie_form3_opc_info; count++ < 10; opcode++) hash_insert (opcode_hash_control, opcode->name, (char *) opcode); + target_big_endian = TARGET_BYTES_BIG_ENDIAN; + bfd_set_arch_mach (stdoutput, TARGET_ARCH, 0); } @@ -617,11 +618,9 @@ md_parse_option (int c ATTRIBUTE_UNUSED, char *arg ATTRIBUTE_UNUSED) { case OPTION_EB: target_big_endian = 1; - moxie_target_format = "elf32-bigmoxie"; break; case OPTION_EL: target_big_endian = 0; - moxie_target_format = "elf32-littlemoxie"; break; default: return 0; diff --git a/gas/config/tc-moxie.h b/gas/config/tc-moxie.h index d5a24cd551..ed4f273adb 100644 --- a/gas/config/tc-moxie.h +++ b/gas/config/tc-moxie.h @@ -19,13 +19,13 @@ Foundation, 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #define TC_MOXIE 1 +#ifndef TARGET_BYTES_BIG_ENDIAN #define TARGET_BYTES_BIG_ENDIAN 1 +#endif #define WORKING_DOT_WORD /* This macro is the BFD architecture to pass to `bfd_set_arch_mach'. */ -const char *moxie_target_format; -#define DEFAULT_TARGET_FORMAT "elf32-bigmoxie" -#define TARGET_FORMAT moxie_target_format +#define TARGET_FORMAT (target_big_endian ? "elf32-bigmoxie" : "elf32-littlemoxie") #define TARGET_ARCH bfd_arch_moxie diff --git a/gas/configure.tgt b/gas/configure.tgt index 7ef0c06e93..877f34d3e8 100644 --- a/gas/configure.tgt +++ b/gas/configure.tgt @@ -339,9 +339,10 @@ case ${generic_target} in mn10300-*-linux*) fmt=elf em=linux ;; mn10300-*-*) fmt=elf ;; - moxie-*-uclinux) fmt=elf em=linux;; + moxie-*-uclinux) fmt=elf em=linux ;; + moxie-*-moxiebox*) fmt=elf endian=little ;; moxie-*-*) fmt=elf ;; - + mt-*-elf) fmt=elf bfd_gas=yes ;; msp430-*-*) fmt=elf ;; diff --git a/ld/ChangeLog b/ld/ChangeLog index 9354e640eb..e6ed34c9f8 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,11 @@ +2014-07-27 Anthony Green + + * Makefile.am (ALL_EMULATION_SOURCES): Add moxiebox support. + (emoxiebox.c): Build. + * configure.tgt (targ_extra_ofiles): Add moxie-*-moxiebox*. + * emulparams/moxiebox.sh (TEXT_START_ADDR): New file. + * Makefile.in: Rebuilt. + 2014-07-17 Stefan Kristiansson * emulparams/elf32or1k_linux.sh (TEXT_START_ADDR): Increase from diff --git a/ld/Makefile.am b/ld/Makefile.am index 8e8ae202c8..9575f1f423 100644 --- a/ld/Makefile.am +++ b/ld/Makefile.am @@ -247,6 +247,7 @@ ALL_EMULATION_SOURCES = \ eelf32microblazeel.c \ eelf32microblaze.c \ eelf32moxie.c \ + emoxiebox.c \ eelf32mt.c \ eelf32or1k.c \ eelf32or1k_linux.c \ @@ -1160,6 +1161,9 @@ eelf32mipswindiss.c: $(srcdir)/emulparams/elf32mipswindiss.sh $(ELF_DEPS) \ eelf32moxie.c: $(srcdir)/emulparams/elf32moxie.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} +emoxiebox.c: $(srcdir)/emulparams/moxiebox.sh \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + eelf32mt.c: $(srcdir)/emulparams/elf32mt.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} diff --git a/ld/Makefile.in b/ld/Makefile.in index 971dc5f828..f89eaf96ad 100644 --- a/ld/Makefile.in +++ b/ld/Makefile.in @@ -555,6 +555,7 @@ ALL_EMULATION_SOURCES = \ eelf32microblazeel.c \ eelf32microblaze.c \ eelf32moxie.c \ + emoxiebox.c \ eelf32mt.c \ eelf32or1k.c \ eelf32or1k_linux.c \ @@ -1173,6 +1174,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32microblazeel.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32mipswindiss.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32moxie.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/emoxiebox.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32mt.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32or1k.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32or1k_linux.Po@am__quote@ @@ -2600,6 +2602,9 @@ eelf32mipswindiss.c: $(srcdir)/emulparams/elf32mipswindiss.sh $(ELF_DEPS) \ eelf32moxie.c: $(srcdir)/emulparams/elf32moxie.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} +emoxiebox.c: $(srcdir)/emulparams/moxiebox.sh \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + eelf32mt.c: $(srcdir)/emulparams/elf32mt.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} diff --git a/ld/configure.tgt b/ld/configure.tgt index e74e9be079..33fb378a2f 100644 --- a/ld/configure.tgt +++ b/ld/configure.tgt @@ -188,6 +188,8 @@ fr30-*-*) targ_emul=elf32fr30 frv-*-*linux*) targ_emul=elf32frvfd ;; frv-*-*) targ_emul=elf32frv ; targ_extra_emuls="elf32frvfd" ;; +moxie-*-moxiebox*) targ_emul=moxiebox + ;; moxie-*-*) targ_emul=elf32moxie ;; h8300-*-hms* | h8300-*-coff* | h8300-*-rtemscoff*) diff --git a/ld/emulparams/moxiebox.sh b/ld/emulparams/moxiebox.sh new file mode 100644 index 0000000000..99b530a9ab --- /dev/null +++ b/ld/emulparams/moxiebox.sh @@ -0,0 +1,9 @@ +SCRIPT_NAME=elf +TEMPLATE_NAME=generic +EXTRA_EM_FILE=genelf +OUTPUT_FORMAT="elf32-littlemoxie" +TEXT_START_ADDR=0x1000 +MAXPAGESIZE="CONSTANT (MAXPAGESIZE)" +ARCH=moxie +EMBEDDED=yes +STACK_ADDR=0x400000 -- 2.34.1