aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
authorYoshinori Sato <ysato@users.sourceforge.jp>2015-02-23 17:04:53 +0000
committerNick Clifton <nickc@redhat.com>2015-02-23 17:04:53 +0000
commit5518c738a47f0282d6fcc6768e1cde598e9538e0 (patch)
tree050864a60a9e3980b1041bdcc967cbc847c545cd /ld
parent1f10ba14bc8c53120432ccc7b2ba5605b4cee80e (diff)
downloadfsf-binutils-gdb-5518c738a47f0282d6fcc6768e1cde598e9538e0.zip
fsf-binutils-gdb-5518c738a47f0282d6fcc6768e1cde598e9538e0.tar.gz
fsf-binutils-gdb-5518c738a47f0282d6fcc6768e1cde598e9538e0.tar.bz2
Add support for the h8300-linux target.
ld * Makefile.am: (ALL_EMULATION_SOURCES): Add new emulations. * Makefile.in: Regenerate. * configure.tgt: Add h8300-*-linux * emulparams/h8300elf_linux.sh: Add new emulation. * emulparams/h8300helf_linux.sh: Likewise. * emulparams/h8300self_linux.sh: Likewise. * emulparams/h8300sxelf_linux.sh: Likewise. bfd * config.bfd: Add h8300-*-linux. * configure.ac: Add h8300_elf32_linux_vec. * configure: Regenerate. * elf32-h8300.c: Likewise. * targets.c(_bfd_target_vector): Likewise. gas * config/tc-h8300.c (line_separater_chars): Add a version for h8300-linux that includes a separator. (default_mach): New variable. (md_main): Use it. (md_longopts): Add '--march' option. (md_parse_option): Parse the new option. * config/tc-h8300.h (TARGET_FORMAT): Add elf32-h8300-linux. * configure.tgt: Add h8300-*-linux * doc/c-h8300.texi: Document --march.
Diffstat (limited to 'ld')
-rw-r--r--ld/ChangeLog10
-rw-r--r--ld/Makefile.am23
-rw-r--r--ld/Makefile.in24
-rw-r--r--ld/configure.tgt3
-rw-r--r--ld/emulparams/h8300elf_linux.sh26
-rw-r--r--ld/emulparams/h8300helf_linux.sh3
-rw-r--r--ld/emulparams/h8300self_linux.sh3
-rw-r--r--ld/emulparams/h8300sxelf_linux.sh16
8 files changed, 107 insertions, 1 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 30f965e..d952670 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,13 @@
+2015-01-21 Yoshinori Sato <ysato@users.sourceforge.jp>
+
+ * Makefile.am: (ALL_EMULATION_SOURCES): Add new emulations.
+ * Makefile.in: Regenerate.
+ * configure.tgt: Add h8300-*-linux
+ * emulparams/h8300elf_linux.sh: Add new emulation.
+ * emulparams/h8300helf_linux.sh: Likewise.
+ * emulparams/h8300self_linux.sh: Likewise.
+ * emulparams/h8300sxelf_linux.sh: Likewise.
+
2015-02-23 Nick Clifton <nickc@redhat.com>
* lexsup.c (parse_args): Produce a more reasonable error message
diff --git a/ld/Makefile.am b/ld/Makefile.am
index 75a481b..11de1c4 100644
--- a/ld/Makefile.am
+++ b/ld/Makefile.am
@@ -286,16 +286,20 @@ ALL_EMULATION_SOURCES = \
eh8300elf.c \
eh8300h.c \
eh8300helf.c \
+ eh8300elf_linux.c \
eh8300hn.c \
eh8300hnelf.c \
+ eh8300helf_linux.c \
eh8300s.c \
eh8300self.c \
+ eh8300self_linux.c \
eh8300sn.c \
eh8300snelf.c \
eh8300sx.c \
eh8300sxelf.c \
eh8300sxn.c \
eh8300sxnelf.c \
+ eh8300sxelf_linux.c \
eh8500.c \
eh8500b.c \
eh8500c.c \
@@ -1305,6 +1309,10 @@ eh8300.c: $(srcdir)/emulparams/h8300.sh \
eh8300elf.c: $(srcdir)/emulparams/h8300elf.sh \
$(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+eh8300elf_linux.c: $(srcdir)/emulparams/h8300elf_linux.sh \
+ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+ ${GENSCRIPTS} h8300elf_linux "$(tdir_h8300elf)"
+
eh8300h.c: $(srcdir)/emulparams/h8300h.sh \
$(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/h8300h.sc ${GEN_DEPENDS}
@@ -1312,6 +1320,11 @@ eh8300helf.c: $(srcdir)/emulparams/h8300helf.sh \
$(srcdir)/emulparams/h8300elf.sh \
$(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+eh8300helf_linux.c: $(srcdir)/emulparams/h8300helf_linux.sh \
+ $(srcdir)/emulparams/h8300elf_linux.sh \
+ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+ ${GENSCRIPTS} h8300helf_linux "$(tdir_h8300helf)"
+
eh8300hn.c: $(srcdir)/emulparams/h8300hn.sh \
$(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/h8300hn.sc ${GEN_DEPENDS}
@@ -1326,6 +1339,11 @@ eh8300self.c: $(srcdir)/emulparams/h8300self.sh \
$(srcdir)/emulparams/h8300elf.sh \
$(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+eh8300self_linux.c: $(srcdir)/emulparams/h8300self_linux.sh \
+ $(srcdir)/emulparams/h8300elf.sh \
+ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+ ${GENSCRIPTS} h8300self_linux "$(tdir_h8300self)"
+
eh8300sn.c: $(srcdir)/emulparams/h8300sn.sh \
$(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/h8300sn.sc ${GEN_DEPENDS}
@@ -1340,6 +1358,11 @@ eh8300sxelf.c: $(srcdir)/emulparams/h8300sxelf.sh \
$(srcdir)/emulparams/h8300elf.sh \
$(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+eh8300sxelf_linux.c: $(srcdir)/emulparams/h8300sxelf_linux.sh \
+ $(srcdir)/emulparams/h8300elf.sh \
+ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+ ${GENSCRIPTS} h8300sxelf_linux "$(tdir_h8300sxelf)"
+
eh8300sxn.c: $(srcdir)/emulparams/h8300sxn.sh \
$(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/h8300sxn.sc ${GEN_DEPENDS}
diff --git a/ld/Makefile.in b/ld/Makefile.in
index 6c54fda..9b803d7 100644
--- a/ld/Makefile.in
+++ b/ld/Makefile.in
@@ -611,16 +611,20 @@ ALL_EMULATION_SOURCES = \
egld960coff.c \
eh8300.c \
eh8300elf.c \
+ eh8300elf_linux.c \
eh8300h.c \
eh8300helf.c \
+ eh8300helf_linux.c \
eh8300hn.c \
eh8300hnelf.c \
eh8300s.c \
eh8300self.c \
+ eh8300self_linux.c \
eh8300sn.c \
eh8300snelf.c \
eh8300sx.c \
eh8300sxelf.c \
+ eh8300sxelf_linux.c \
eh8300sxn.c \
eh8300sxnelf.c \
eh8500.c \
@@ -1273,16 +1277,20 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/egld960coff.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eh8300.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eh8300elf.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eh8300elf_linux.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eh8300h.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eh8300helf.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eh8300helf_linux.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eh8300hn.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eh8300hnelf.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eh8300s.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eh8300self.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eh8300self_linux.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eh8300sn.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eh8300snelf.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eh8300sx.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eh8300sxelf.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eh8300sxelf_linux.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eh8300sxn.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eh8300sxnelf.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eh8500.Po@am__quote@
@@ -2792,7 +2800,9 @@ eh8300.c: $(srcdir)/emulparams/h8300.sh \
eh8300elf.c: $(srcdir)/emulparams/h8300elf.sh \
$(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
-
+eh8300elf_linux.c: $(srcdir)/emulparams/h8300elf_linux.sh \
+ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+ ${GENSCRIPTS} h8300elf_linux "$(tdir_h8300elf)"
eh8300h.c: $(srcdir)/emulparams/h8300h.sh \
$(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/h8300h.sc ${GEN_DEPENDS}
@@ -2800,6 +2810,10 @@ eh8300helf.c: $(srcdir)/emulparams/h8300helf.sh \
$(srcdir)/emulparams/h8300elf.sh \
$(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+eh8300helf_linux.c: $(srcdir)/emulparams/h8300helf_linux.sh \
+ $(srcdir)/emulparams/h8300elf_linux.sh \
+ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+ ${GENSCRIPTS} h8300helf_linux "$(tdir_h8300helf)"
eh8300hn.c: $(srcdir)/emulparams/h8300hn.sh \
$(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/h8300hn.sc ${GEN_DEPENDS}
@@ -2814,6 +2828,10 @@ eh8300self.c: $(srcdir)/emulparams/h8300self.sh \
$(srcdir)/emulparams/h8300elf.sh \
$(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+eh8300self_linux.c: $(srcdir)/emulparams/h8300self_linux.sh \
+ $(srcdir)/emulparams/h8300elf.sh \
+ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+ ${GENSCRIPTS} h8300self_linux "$(tdir_h8300self)"
eh8300sn.c: $(srcdir)/emulparams/h8300sn.sh \
$(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/h8300sn.sc ${GEN_DEPENDS}
@@ -2828,6 +2846,10 @@ eh8300sxelf.c: $(srcdir)/emulparams/h8300sxelf.sh \
$(srcdir)/emulparams/h8300elf.sh \
$(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+eh8300sxelf_linux.c: $(srcdir)/emulparams/h8300sxelf_linux.sh \
+ $(srcdir)/emulparams/h8300elf.sh \
+ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+ ${GENSCRIPTS} h8300sxelf_linux "$(tdir_h8300sxelf)"
eh8300sxn.c: $(srcdir)/emulparams/h8300sxn.sh \
$(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/h8300sxn.sc ${GEN_DEPENDS}
diff --git a/ld/configure.tgt b/ld/configure.tgt
index f16c845..a46fbca 100644
--- a/ld/configure.tgt
+++ b/ld/configure.tgt
@@ -198,6 +198,9 @@ h8300-*-hms* | h8300-*-coff* | h8300-*-rtemscoff*)
h8300-*-elf* | h8300-*-rtems*)
targ_emul=h8300elf;
targ_extra_emuls="h8300helf h8300self h8300hnelf h8300snelf h8300sxelf h8300sxnelf" ;;
+h8300-*-linux*)
+ targ_emul=h8300elf_linux;
+ targ_extra_emuls="h8300helf_linux h8300self_linux h8300sxelf_linux" ;;
h8500-*-hms* | h8500-*-coff* | h8500-*-rtems*)
targ_emul=h8500
targ_extra_emuls="h8500s h8500b h8500m h8500c"
diff --git a/ld/emulparams/h8300elf_linux.sh b/ld/emulparams/h8300elf_linux.sh
new file mode 100644
index 0000000..97050dd
--- /dev/null
+++ b/ld/emulparams/h8300elf_linux.sh
@@ -0,0 +1,26 @@
+# If you change this file, please also look at files which source this one:
+# h8300helf.sh h8300self.sh
+
+SCRIPT_NAME=elf
+OUTPUT_FORMAT="elf32-h8300-linux"
+NO_REL_RELOCS=yes
+TEXT_START_ADDR=0x100
+MAXPAGESIZE=2
+TARGET_PAGE_SIZE=128
+ARCH=h8300
+TEMPLATE_NAME=elf32
+EMBEDDED=yes
+STACK_ADDR=0xfefc
+TINY_READONLY_SECTION=".tinyrodata :
+ {
+ *(.tinyrodata)
+ } =0"
+TINY_DATA_SECTION=".tinydata ${RELOCATING+0xff8000} :
+ {
+ *(.tinydata)
+ ${RELOCATING+ _tinydata = .; }
+ }"
+TINY_BSS_SECTION=".tinybss : ${RELOCATING+AT (_tinydata)}
+ {
+ *(.tinybss)
+ }"
diff --git a/ld/emulparams/h8300helf_linux.sh b/ld/emulparams/h8300helf_linux.sh
new file mode 100644
index 0000000..c66ff94
--- /dev/null
+++ b/ld/emulparams/h8300helf_linux.sh
@@ -0,0 +1,3 @@
+. ${srcdir}/emulparams/h8300elf_linux.sh
+ARCH="h8300:h8300h"
+STACK_ADDR=0x2fefc
diff --git a/ld/emulparams/h8300self_linux.sh b/ld/emulparams/h8300self_linux.sh
new file mode 100644
index 0000000..76f3ed7
--- /dev/null
+++ b/ld/emulparams/h8300self_linux.sh
@@ -0,0 +1,3 @@
+. ${srcdir}/emulparams/h8300elf_linux.sh
+ARCH="h8300:h8300s"
+STACK_ADDR=0x2fefc
diff --git a/ld/emulparams/h8300sxelf_linux.sh b/ld/emulparams/h8300sxelf_linux.sh
new file mode 100644
index 0000000..b06dc2e
--- /dev/null
+++ b/ld/emulparams/h8300sxelf_linux.sh
@@ -0,0 +1,16 @@
+. ${srcdir}/emulparams/h8300elf_linux.sh
+ARCH="h8300:h8300sx"
+STACK_ADDR=0x2fefc
+TINY_READONLY_SECTION=".tinyrodata :
+ {
+ *(.tinyrodata)
+ } =0"
+TINY_DATA_SECTION=".tinydata 0xff8000 :
+ {
+ *(.tinydata)
+ ${RELOCATING+ _tinydata = .; }
+ }"
+TINY_BSS_SECTION=".tinybss : AT (_tinydata)
+ {
+ *(.tinybss)
+ }"