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.
This commit is contained in:
parent
1f10ba14bc
commit
5518c738a4
@ -1,3 +1,11 @@
|
||||
2015-02-23 Yoshinori Sato <ysato@users.sourceforge.jp>
|
||||
|
||||
* config.bfd: Add h8300-*-linux.
|
||||
* configure.ac: Add h8300_elf32_linux_vec.
|
||||
* configure: Regenerate.
|
||||
* elf32-h8300.c: Likewise.
|
||||
* targets.c(_bfd_target_vector): Likewise.
|
||||
|
||||
2015-02-23 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
PR 17914
|
||||
|
@ -461,6 +461,10 @@ case "${targ}" in
|
||||
targ_underscore=yes
|
||||
;;
|
||||
|
||||
h8300*-*-linux*)
|
||||
targ_defvec=h8300_elf32_linux_vec
|
||||
;;
|
||||
|
||||
h8300*-*-*)
|
||||
targ_defvec=h8300_coff_vec
|
||||
targ_underscore=yes
|
||||
|
1
bfd/configure
vendored
1
bfd/configure
vendored
@ -15356,6 +15356,7 @@ do
|
||||
frv_elf32_fdpic_vec) tb="$tb elf32-frv.lo elf32.lo $elf" ;;
|
||||
h8300_coff_vec) tb="$tb coff-h8300.lo reloc16.lo $coffgen" ;;
|
||||
h8300_elf32_vec) tb="$tb elf32-h8300.lo elf32.lo $elf" ;;
|
||||
h8300_elf32_linux_vec) tb="$tb elf32-h8300.lo elf32.lo $elf" ;;
|
||||
h8500_coff_vec) tb="$tb coff-h8500.lo reloc16.lo $coffgen" ;;
|
||||
hppa_elf32_vec) tb="$tb elf32-hppa.lo elf32.lo $elf" ;;
|
||||
hppa_elf32_linux_vec) tb="$tb elf32-hppa.lo elf32.lo $elf" ;;
|
||||
|
@ -757,6 +757,7 @@ do
|
||||
frv_elf32_fdpic_vec) tb="$tb elf32-frv.lo elf32.lo $elf" ;;
|
||||
h8300_coff_vec) tb="$tb coff-h8300.lo reloc16.lo $coffgen" ;;
|
||||
h8300_elf32_vec) tb="$tb elf32-h8300.lo elf32.lo $elf" ;;
|
||||
h8300_elf32_linux_vec) tb="$tb elf32-h8300.lo elf32.lo $elf" ;;
|
||||
h8500_coff_vec) tb="$tb coff-h8500.lo reloc16.lo $coffgen" ;;
|
||||
hppa_elf32_vec) tb="$tb elf32-hppa.lo elf32.lo $elf" ;;
|
||||
hppa_elf32_linux_vec) tb="$tb elf32-hppa.lo elf32.lo $elf" ;;
|
||||
|
@ -1744,3 +1744,12 @@ elf32_h8_get_relocated_section_contents (bfd *output_bfd,
|
||||
#define elf_symbol_leading_char '_'
|
||||
|
||||
#include "elf32-target.h"
|
||||
|
||||
#undef TARGET_BIG_SYM
|
||||
#define TARGET_BIG_SYM h8300_elf32_linux_vec
|
||||
#undef TARGET_BIG_NAME
|
||||
#define TARGET_BIG_NAME "elf32-h8300-linux"
|
||||
#undef elf_symbol_leading_char
|
||||
#define elf32_bed elf32_h8300_linux_bed
|
||||
|
||||
#include "elf32-target.h"
|
||||
|
@ -631,6 +631,7 @@ extern const bfd_target frv_elf32_vec;
|
||||
extern const bfd_target frv_elf32_fdpic_vec;
|
||||
extern const bfd_target h8300_coff_vec;
|
||||
extern const bfd_target h8300_elf32_vec;
|
||||
extern const bfd_target h8300_elf32_linux_vec;
|
||||
extern const bfd_target h8500_coff_vec;
|
||||
extern const bfd_target hppa_elf32_vec;
|
||||
extern const bfd_target hppa_elf32_linux_vec;
|
||||
@ -1045,6 +1046,7 @@ static const bfd_target * const _bfd_target_vector[] =
|
||||
|
||||
&h8300_coff_vec,
|
||||
&h8300_elf32_vec,
|
||||
&h8300_elf32_linux_vec,
|
||||
&h8500_coff_vec,
|
||||
|
||||
&hppa_elf32_vec,
|
||||
|
@ -1,3 +1,15 @@
|
||||
2015-02-23 Yoshinori Sato <ysato@users.sourceforge.jp>
|
||||
|
||||
* 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.
|
||||
|
||||
2015-02-23 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
PR 17940
|
||||
|
@ -35,7 +35,11 @@
|
||||
|
||||
const char comment_chars[] = ";";
|
||||
const char line_comment_chars[] = "#";
|
||||
#ifdef TE_LINUX
|
||||
const char line_separator_chars[] = "!";
|
||||
#else
|
||||
const char line_separator_chars[] = "";
|
||||
#endif
|
||||
|
||||
static void sbranch (int);
|
||||
static void h8300hmode (int);
|
||||
@ -51,6 +55,8 @@ int Smode;
|
||||
int Nmode;
|
||||
int SXmode;
|
||||
|
||||
static int default_mach = bfd_mach_h8300;
|
||||
|
||||
#define PSIZE (Hmode && !Nmode ? L_32 : L_16)
|
||||
|
||||
static int bsize = L_8; /* Default branch displacement. */
|
||||
@ -238,7 +244,7 @@ md_begin (void)
|
||||
char prev_buffer[100];
|
||||
int idx = 0;
|
||||
|
||||
if (!bfd_set_arch_mach (stdoutput, bfd_arch_h8300, bfd_mach_h8300))
|
||||
if (!bfd_set_arch_mach (stdoutput, bfd_arch_h8300, default_mach))
|
||||
as_warn (_("could not set architecture and machine"));
|
||||
|
||||
opcode_hash_control = hash_new ();
|
||||
@ -2102,24 +2108,115 @@ md_atof (int type, char *litP, int *sizeP)
|
||||
}
|
||||
|
||||
#define OPTION_H_TICK_HEX (OPTION_MD_BASE)
|
||||
#define OPTION_MACH (OPTION_MD_BASE+1)
|
||||
|
||||
const char *md_shortopts = "";
|
||||
struct option md_longopts[] = {
|
||||
struct option md_longopts[] =
|
||||
{
|
||||
{ "h-tick-hex", no_argument, NULL, OPTION_H_TICK_HEX },
|
||||
{ "mach", required_argument, NULL, OPTION_MACH },
|
||||
{NULL, no_argument, NULL, 0}
|
||||
};
|
||||
|
||||
size_t md_longopts_size = sizeof (md_longopts);
|
||||
|
||||
struct mach_func
|
||||
{
|
||||
const char *name;
|
||||
void (*func) (void);
|
||||
};
|
||||
|
||||
static void
|
||||
mach_h8300h (void)
|
||||
{
|
||||
Hmode = 1;
|
||||
Smode = 0;
|
||||
Nmode = 0;
|
||||
SXmode = 0;
|
||||
default_mach = bfd_mach_h8300h;
|
||||
}
|
||||
|
||||
static void
|
||||
mach_h8300hn (void)
|
||||
{
|
||||
Hmode = 1;
|
||||
Smode = 0;
|
||||
Nmode = 1;
|
||||
SXmode = 0;
|
||||
default_mach = bfd_mach_h8300hn;
|
||||
}
|
||||
|
||||
static void
|
||||
mach_h8300s (void)
|
||||
{
|
||||
Hmode = 1;
|
||||
Smode = 1;
|
||||
Nmode = 0;
|
||||
SXmode = 0;
|
||||
default_mach = bfd_mach_h8300s;
|
||||
}
|
||||
|
||||
static void
|
||||
mach_h8300sn (void)
|
||||
{
|
||||
Hmode = 1;
|
||||
Smode = 1;
|
||||
Nmode = 1;
|
||||
SXmode = 0;
|
||||
default_mach = bfd_mach_h8300sn;
|
||||
}
|
||||
|
||||
static void
|
||||
mach_h8300sx (void)
|
||||
{
|
||||
Hmode = 1;
|
||||
Smode = 1;
|
||||
Nmode = 0;
|
||||
SXmode = 1;
|
||||
default_mach = bfd_mach_h8300sx;
|
||||
}
|
||||
|
||||
static void
|
||||
mach_h8300sxn (void)
|
||||
{
|
||||
Hmode = 1;
|
||||
Smode = 1;
|
||||
Nmode = 1;
|
||||
SXmode = 1;
|
||||
default_mach = bfd_mach_h8300sxn;
|
||||
}
|
||||
|
||||
const struct mach_func mach_table[] =
|
||||
{
|
||||
{"h8300h", mach_h8300h},
|
||||
{"h8300hn", mach_h8300hn},
|
||||
{"h8300s", mach_h8300s},
|
||||
{"h8300sn", mach_h8300sn},
|
||||
{"h8300sx", mach_h8300sx},
|
||||
{"h8300sxn", mach_h8300sxn}
|
||||
};
|
||||
|
||||
int
|
||||
md_parse_option (int c ATTRIBUTE_UNUSED, char *arg ATTRIBUTE_UNUSED)
|
||||
{
|
||||
unsigned int i;
|
||||
switch (c)
|
||||
{
|
||||
case OPTION_H_TICK_HEX:
|
||||
enable_h_tick_hex = 1;
|
||||
break;
|
||||
|
||||
case OPTION_MACH:
|
||||
for (i = 0; i < sizeof(mach_table) / sizeof(struct mach_func); i++)
|
||||
{
|
||||
if (strcasecmp (arg, mach_table[i].name) == 0)
|
||||
{
|
||||
mach_table[i].func();
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (i >= sizeof(mach_table) / sizeof(struct mach_func))
|
||||
as_bad (_("Invalid argument to --mach option: %s"), arg);
|
||||
break;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
@ -2127,8 +2224,14 @@ md_parse_option (int c ATTRIBUTE_UNUSED, char *arg ATTRIBUTE_UNUSED)
|
||||
}
|
||||
|
||||
void
|
||||
md_show_usage (FILE *stream ATTRIBUTE_UNUSED)
|
||||
md_show_usage (FILE *stream)
|
||||
{
|
||||
fprintf (stream, _(" H8300-specific assembler options:\n"));
|
||||
fprintf (stream, _("\
|
||||
-mach=<name> Set the H8300 machine type to one of:\n\
|
||||
h8300h, h8300hn, h8300s, h8300sn, h8300sx, h8300sxn\n"));
|
||||
fprintf (stream, _("\
|
||||
-h-tick-hex Support H'00 style hex constants\n"));
|
||||
}
|
||||
|
||||
void tc_aout_fix_to_chars (void);
|
||||
|
@ -27,7 +27,11 @@
|
||||
/* Fixup debug sections since we will never relax them. */
|
||||
#define TC_LINKRELAX_FIXUP(seg) (seg->flags & SEC_ALLOC)
|
||||
#ifdef OBJ_ELF
|
||||
#ifndef TE_LINUX
|
||||
#define TARGET_FORMAT "elf32-h8300"
|
||||
#else
|
||||
#define TARGET_FORMAT "elf32-h8300-linux"
|
||||
#endif
|
||||
#define LOCAL_LABEL_PREFIX '.'
|
||||
#define LOCAL_LABEL(NAME) (NAME[0] == '.' && NAME[1] == 'L')
|
||||
#define FAKE_LABEL_NAME ".L0\001"
|
||||
|
@ -206,6 +206,7 @@ case ${generic_target} in
|
||||
hppa-*-hiux*) fmt=som em=hppa ;;
|
||||
|
||||
h8300-*-elf | h8300-*-rtems*) fmt=elf ;;
|
||||
h8300-*-linux*) fmt=elf em=linux ;;
|
||||
|
||||
i370-*-elf* | i370-*-linux*) fmt=elf ;;
|
||||
|
||||
|
@ -29,6 +29,16 @@ machine-dependent option:
|
||||
@item -h-tick-hex
|
||||
Support H'00 style hex constants in addition to 0x00 style.
|
||||
|
||||
@item -mach=@var{name}
|
||||
Sets the H8300 machine variant. The following machine names
|
||||
are recognised:
|
||||
@code{h8300h},
|
||||
@code{h8300hn},
|
||||
@code{h8300s},
|
||||
@code{h8300sn},
|
||||
@code{h8300sx} and
|
||||
@code{h8300sxn}.
|
||||
|
||||
@end table
|
||||
@c man end
|
||||
|
||||
|
10
ld/ChangeLog
10
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
|
||||
|
@ -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}
|
||||
|
||||
|
@ -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}
|
||||
|
||||
|
@ -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"
|
||||
|
26
ld/emulparams/h8300elf_linux.sh
Normal file
26
ld/emulparams/h8300elf_linux.sh
Normal file
@ -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)
|
||||
}"
|
3
ld/emulparams/h8300helf_linux.sh
Normal file
3
ld/emulparams/h8300helf_linux.sh
Normal file
@ -0,0 +1,3 @@
|
||||
. ${srcdir}/emulparams/h8300elf_linux.sh
|
||||
ARCH="h8300:h8300h"
|
||||
STACK_ADDR=0x2fefc
|
3
ld/emulparams/h8300self_linux.sh
Normal file
3
ld/emulparams/h8300self_linux.sh
Normal file
@ -0,0 +1,3 @@
|
||||
. ${srcdir}/emulparams/h8300elf_linux.sh
|
||||
ARCH="h8300:h8300s"
|
||||
STACK_ADDR=0x2fefc
|
16
ld/emulparams/h8300sxelf_linux.sh
Normal file
16
ld/emulparams/h8300sxelf_linux.sh
Normal file
@ -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)
|
||||
}"
|
Loading…
Reference in New Issue
Block a user