forked from Imagelibrary/binutils-gdb
Remove m68k-aout and m68k-coff support
include/ * aout/host.h: Remove m68k-aout and m68k-coff support. * aout/hp300hpux.h: Delete. * coff/apollo.h: Delete. * coff/aux-coff.h: Delete. * coff/m68k.h: Delete. bfd/ * Makefile.am: Remove m68k-aout and m68k-coff support. * aoutf1.h: Likewise. * aoutx.h: Likewise. * archive.c: Likewise. * bfd-in.h: Likewise. * bfd.c: Likewise. * coffcode.h: Likewise. * coffswap.h: Likewise. * config.bfd: Likewise. * configure.ac: Likewise. * configure.host: Likewise. * doc/bfd.texinfo: Likewise. * doc/bfdint.texi: Likewise. * freebsd.h: Likewise. * gen-aout.c: Likewise. * hpux-core.c: Likewise. * libaout.h: Likewise. * libbfd-in.h: Likewise. * pdp11.c: Likewise. * peicode.h: Likewise. * riscix.c: Likewise. * targets.c: Likewise. * aout0.c: Delete. * coff-apollo.c: Delete. * coff-aux.c: Delete. * coff-m68k.c: Delete. * coff-svm68k.c: Delete. * coff-u68k.c: Delete. * hosts/delta68.h: Delete. * hosts/hp300bsd.h: Delete. * hosts/m68kaux.h: Delete. * hosts/news.h: Delete. * hp300bsd.c: Delete. * hp300hpux.c: Delete. * liboasys.h: Delete. * m68k4knetbsd.c: Delete. * m68klinux.c: Delete. * m68knetbsd.c: Delete. * oasys.c: Delete. * versados.c: Delete. * Makefile.in: Regenerate. * bfd-in2.h: Regenerate. * configure: Regenerate. * libbfd.h: Regenerate. * po/SRC-POTFILES.in: Regenerate. binutils/ * testsuite/binutils-all/copy-2.d: Remove m68k-aout and m68k-coff support. * testsuite/binutils-all/copy-3.d: Likewise. * testsuite/binutils-all/objcopy.exp: Likewise. * testsuite/lib/binutils-common.exp: Likewise. gas/ * Makefile.am: Remove m68k-aout and m68k-coff support. * config/tc-m68k.c: Likewise. * config/tc-m68k.h: Likewise. * configure.ac: Likewise. * configure.tgt: Likewise. * testsuite/gas/all/weakref1u.d: Likewise. * testsuite/gas/m68k/all.exp: Likewise. * testsuite/gas/m68k/br-isaa.d: Likewise. * testsuite/gas/m68k/br-isab.d: Likewise. * testsuite/gas/m68k/br-isac.d: Likewise. * config/te-psos.h: Delete. * config/te-sun3.h: Delete. * testsuite/gas/m68k-coff/gas.exp: Delete. * testsuite/gas/m68k-coff/p2389.s: Delete. * testsuite/gas/m68k-coff/p2389a.s: Delete. * testsuite/gas/m68k-coff/p2430.s: Delete. * testsuite/gas/m68k-coff/p2430a.s: Delete. * testsuite/gas/m68k-coff/t1.s: Delete. * testsuite/gas/m68k/p3041.d: Delete. * testsuite/gas/m68k/p3041.s: Delete. * testsuite/gas/m68k/p3041data.d: Delete. * testsuite/gas/m68k/p3041data.s: Delete. * testsuite/gas/m68k/p3041pcrel.d: Delete. * testsuite/gas/m68k/p3041pcrel.s: Delete. * testsuite/gas/m68k/t2.d: Delete. * Makefile.in: Regenerate. * config.in: Regenerate. * configure: Regenerate. * po/POTFILES.in: Regenerate. ld/ * Makefile.am: Remove m68k-aout and m68k-coff support. * configure.tgt: Likewise. * emultempl/m68kelf.em: Likewise. * ld.texinfo: Likewise. * mri.c: Likewise. * emulparams/delta68.sh: Delete. * emulparams/hp300bsd.sh: Delete. * emulparams/hp3hpux.sh: Delete. * emulparams/m68k4knbsd.sh: Delete. * emulparams/m68kaout.sh: Delete. * emulparams/m68kaux.sh: Delete. * emulparams/m68kcoff.sh: Delete. * emulparams/m68klinux.sh: Delete. * emulparams/m68knbsd.sh: Delete. * emulparams/m68kpsos.sh: Delete. * emulparams/sun3.sh: Delete. * emultempl/m68kcoff.em: Delete. * scripttempl/delta68.sc: Delete. * scripttempl/m68kaux.sc: Delete. * scripttempl/m68kcoff.sc: Delete. * scripttempl/psos.sc: Delete. * testsuite/ld-versados/t1-1.ro: Delete. * testsuite/ld-versados/t1-2.ro: Delete. * testsuite/ld-versados/t1.ld: Delete. * testsuite/ld-versados/t1.ook: Delete. * testsuite/ld-versados/t2-1.ro: Delete. * testsuite/ld-versados/t2-2.ro: Delete. * testsuite/ld-versados/t2-3.ro: Delete. * testsuite/ld-versados/t2.ld: Delete. * testsuite/ld-versados/t2.ook: Delete. * testsuite/ld-versados/versados.exp: Delete. * Makefile.in: Regenerate. * po/BLD-POTFILES.in: Regenerate.
This commit is contained in:
@@ -27,18 +27,9 @@
|
||||
|
||||
#include "opcode/m68k.h"
|
||||
#include "m68k-parse.h"
|
||||
|
||||
#if defined (OBJ_ELF)
|
||||
#include "elf/m68k.h"
|
||||
#endif
|
||||
|
||||
#ifdef M68KCOFF
|
||||
#include "obj-coff.h"
|
||||
#endif
|
||||
|
||||
#ifdef OBJ_ELF
|
||||
static void m68k_elf_cons (int);
|
||||
#endif
|
||||
|
||||
/* This string holds the chars that always start a comment. If the
|
||||
pre-processor is disabled, these aren't very useful. The macro
|
||||
@@ -384,11 +375,9 @@ struct m68k_it
|
||||
significance of some values (in the branch instruction, for
|
||||
example). */
|
||||
int pcrel_fix;
|
||||
#ifdef OBJ_ELF
|
||||
/* Whether this expression needs special pic relocation, and if
|
||||
so, which. */
|
||||
enum pic_relocation pic_reloc;
|
||||
#endif
|
||||
}
|
||||
reloc[5]; /* Five is enough??? */
|
||||
};
|
||||
@@ -449,9 +438,7 @@ add_fix (int width, struct m68k_exp *exp, int pc_rel, int pc_fix)
|
||||
the_ins.reloc[the_ins.nrel].exp = exp->exp;
|
||||
the_ins.reloc[the_ins.nrel].wid = width;
|
||||
the_ins.reloc[the_ins.nrel].pcrel_fix = pc_fix;
|
||||
#ifdef OBJ_ELF
|
||||
the_ins.reloc[the_ins.nrel].pic_reloc = exp->pic_reloc;
|
||||
#endif
|
||||
the_ins.reloc[the_ins.nrel++].pcrel = pc_rel;
|
||||
}
|
||||
|
||||
@@ -894,13 +881,9 @@ const pseudo_typeS md_pseudo_table[] =
|
||||
{"even", s_even, 0},
|
||||
{"skip", s_space, 0},
|
||||
{"proc", s_proc, 0},
|
||||
#if defined (TE_SUN3) || defined (OBJ_ELF)
|
||||
{"align", s_align_bytes, 0},
|
||||
#endif
|
||||
#ifdef OBJ_ELF
|
||||
{"swbeg", s_ignore, 0},
|
||||
{"long", m68k_elf_cons, 4},
|
||||
#endif
|
||||
{"extend", float_cons, 'x'},
|
||||
{"ldouble", float_cons, 'x'},
|
||||
|
||||
@@ -967,15 +950,7 @@ const pseudo_typeS mote_pseudo_table[] =
|
||||
{"dsb", s_space, 1},
|
||||
|
||||
{"xdef", s_globl, 0},
|
||||
#ifdef OBJ_ELF
|
||||
{"align", s_align_bytes, 0},
|
||||
#else
|
||||
{"align", s_align_ptwo, 0},
|
||||
#endif
|
||||
#ifdef M68KCOFF
|
||||
{"sect", obj_coff_section, 0},
|
||||
{"section", obj_coff_section, 0},
|
||||
#endif
|
||||
{0, 0, 0}
|
||||
};
|
||||
|
||||
@@ -1000,7 +975,6 @@ static char alt_notend_table[256];
|
||||
|| (*s == ':' \
|
||||
&& alt_notend_table[(unsigned char) s[1]])))
|
||||
|
||||
#ifdef OBJ_ELF
|
||||
|
||||
/* Return zero if the reference to SYMBOL from within the same segment may
|
||||
be relaxed. */
|
||||
@@ -1226,16 +1200,6 @@ tc_m68k_fix_adjustable (fixS *fixP)
|
||||
}
|
||||
}
|
||||
|
||||
#else /* !OBJ_ELF */
|
||||
|
||||
#define get_reloc_code(SIZE,PCREL,OTHER) NO_RELOC
|
||||
|
||||
/* PR gas/3041 Weak symbols are not relaxable
|
||||
because they must be treated as extern. */
|
||||
#define relaxable_symbol(symbol) (!(S_IS_WEAK (symbol)))
|
||||
|
||||
#endif /* OBJ_ELF */
|
||||
|
||||
arelent *
|
||||
tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixp)
|
||||
{
|
||||
@@ -1338,39 +1302,6 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixp)
|
||||
reloc->sym_ptr_ptr = XNEW (asymbol *);
|
||||
*reloc->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy);
|
||||
reloc->address = fixp->fx_frag->fr_address + fixp->fx_where;
|
||||
#ifndef OBJ_ELF
|
||||
if (OUTPUT_FLAVOR == bfd_target_aout_flavour
|
||||
&& fixp->fx_addsy
|
||||
&& S_IS_WEAK (fixp->fx_addsy)
|
||||
&& ! bfd_is_und_section (S_GET_SEGMENT (fixp->fx_addsy)))
|
||||
{
|
||||
/* PR gas/3041 References to weak symbols must be treated as extern
|
||||
in order to be overridable by the linker, even if they are defined
|
||||
in the same object file. So the original addend must be written
|
||||
"as is" into the output section without further processing.
|
||||
The addend value must be hacked here in order to force
|
||||
bfd_install_relocation() to write the original value into the
|
||||
output section.
|
||||
1) MD_APPLY_SYM_VALUE() is set to 1 for m68k/a.out, so the symbol
|
||||
value has already been added to the addend in fixup_segment(). We
|
||||
have to remove it.
|
||||
2) bfd_install_relocation() will incorrectly treat this symbol as
|
||||
resolved, so it will write the symbol value plus its addend and
|
||||
section VMA. As a workaround we can tweak the addend value here in
|
||||
order to get the original value in the section after the call to
|
||||
bfd_install_relocation(). */
|
||||
reloc->addend = fixp->fx_addnumber
|
||||
/* Fix because of MD_APPLY_SYM_VALUE() */
|
||||
- S_GET_VALUE (fixp->fx_addsy)
|
||||
/* Fix for bfd_install_relocation() */
|
||||
- (S_GET_VALUE (fixp->fx_addsy)
|
||||
+ S_GET_SEGMENT (fixp->fx_addsy)->vma);
|
||||
}
|
||||
else if (fixp->fx_pcrel)
|
||||
reloc->addend = fixp->fx_addnumber;
|
||||
else
|
||||
reloc->addend = 0;
|
||||
#else
|
||||
if (!fixp->fx_pcrel)
|
||||
reloc->addend = fixp->fx_addnumber;
|
||||
else
|
||||
@@ -1378,7 +1309,6 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixp)
|
||||
+ fixp->fx_pcrel_adjust
|
||||
+ fixp->fx_addnumber
|
||||
+ md_pcrel_from (fixp));
|
||||
#endif
|
||||
|
||||
reloc->howto = bfd_reloc_type_lookup (stdoutput, code);
|
||||
gas_assert (reloc->howto != 0);
|
||||
@@ -2670,12 +2600,9 @@ m68k_ip (char *instring)
|
||||
if (opP->reg == PC)
|
||||
{
|
||||
if (opP->disp.size == SIZE_LONG
|
||||
#ifdef OBJ_ELF
|
||||
/* If the displacement needs pic
|
||||
relocation it cannot be relaxed. */
|
||||
|| opP->disp.pic_reloc != pic_none
|
||||
#endif
|
||||
)
|
||||
|| opP->disp.pic_reloc != pic_none)
|
||||
{
|
||||
addword (0x0170);
|
||||
add_fix ('l', &opP->disp, 1, 2);
|
||||
@@ -2840,12 +2767,9 @@ m68k_ip (char *instring)
|
||||
&& opP->reg == PC
|
||||
&& isvar (&opP->disp)
|
||||
&& subs (&opP->disp) == NULL
|
||||
#ifdef OBJ_ELF
|
||||
/* If the displacement needs pic
|
||||
relocation it cannot be relaxed. */
|
||||
&& opP->disp.pic_reloc == pic_none
|
||||
#endif
|
||||
)
|
||||
&& opP->disp.pic_reloc == pic_none)
|
||||
{
|
||||
/* The code in md_convert_frag_1 needs to be
|
||||
able to adjust nextword. Call frag_grow
|
||||
@@ -2989,11 +2913,9 @@ m68k_ip (char *instring)
|
||||
if (isvar (&opP->disp)
|
||||
&& !subs (&opP->disp)
|
||||
&& adds (&opP->disp)
|
||||
#ifdef OBJ_ELF
|
||||
/* If the displacement needs pic relocation it
|
||||
cannot be relaxed. */
|
||||
&& opP->disp.pic_reloc == pic_none
|
||||
#endif
|
||||
&& !flag_long_jumps
|
||||
&& !strchr ("~%&$?", s[0]))
|
||||
{
|
||||
@@ -3160,12 +3082,9 @@ m68k_ip (char *instring)
|
||||
|
||||
var_branch:
|
||||
if (subs (&opP->disp) /* We can't relax it. */
|
||||
#ifdef OBJ_ELF
|
||||
/* If the displacement needs pic relocation it cannot be
|
||||
relaxed. */
|
||||
|| opP->disp.pic_reloc != pic_none
|
||||
#endif
|
||||
|| 0)
|
||||
|| opP->disp.pic_reloc != pic_none)
|
||||
{
|
||||
if (!have_disp)
|
||||
as_warn (_("Can't use long branches on this architecture"));
|
||||
@@ -4394,10 +4313,8 @@ md_assemble (char *str)
|
||||
current_label = NULL;
|
||||
}
|
||||
|
||||
#ifdef OBJ_ELF
|
||||
/* Tie dwarf2 debug info to the address at the start of the insn. */
|
||||
dwarf2_emit_insn (0);
|
||||
#endif
|
||||
|
||||
if (the_ins.nfrag == 0)
|
||||
{
|
||||
@@ -4772,11 +4689,9 @@ md_begin (void)
|
||||
|
||||
init_regtable ();
|
||||
|
||||
#ifdef OBJ_ELF
|
||||
record_alignment (text_section, 2);
|
||||
record_alignment (data_section, 2);
|
||||
record_alignment (bss_section, 2);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -4795,9 +4710,7 @@ m68k_frob_label (symbolS *sym)
|
||||
labels = n;
|
||||
current_label = n;
|
||||
|
||||
#ifdef OBJ_ELF
|
||||
dwarf2_emit_label (sym);
|
||||
#endif
|
||||
}
|
||||
|
||||
/* This is called when a value that is not an instruction is emitted. */
|
||||
@@ -4907,7 +4820,6 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED)
|
||||
if (fixP->fx_addsy == NULL && fixP->fx_pcrel == 0)
|
||||
fixP->fx_done = 1;
|
||||
|
||||
#ifdef OBJ_ELF
|
||||
if (fixP->fx_addsy)
|
||||
{
|
||||
memset (buf, 0, fixP->fx_size);
|
||||
@@ -4944,15 +4856,6 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED)
|
||||
|
||||
return;
|
||||
}
|
||||
#elif defined(OBJ_AOUT)
|
||||
/* PR gas/3041 Do not fix frags referencing a weak symbol. */
|
||||
if (fixP->fx_addsy && S_IS_WEAK (fixP->fx_addsy))
|
||||
{
|
||||
memset (buf, 0, fixP->fx_size);
|
||||
fixP->fx_addnumber = val; /* Remember value for emit_reloc. */
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (fixP->fx_r_type == BFD_RELOC_VTABLE_INHERIT
|
||||
|| fixP->fx_r_type == BFD_RELOC_VTABLE_ENTRY)
|
||||
@@ -5405,36 +5308,6 @@ md_estimate_size_before_relax (fragS *fragP, segT segment)
|
||||
return md_relax_table[fragP->fr_subtype].rlx_length;
|
||||
}
|
||||
|
||||
#if defined(OBJ_AOUT)
|
||||
/* the bit-field entries in the relocation_info struct plays hell
|
||||
with the byte-order problems of cross-assembly. So as a hack,
|
||||
I added this mach. dependent ri twiddler. Ugly, but it gets
|
||||
you there. -KWK */
|
||||
/* on m68k: first 4 bytes are normal unsigned long, next three bytes
|
||||
are symbolnum, most sig. byte first. Last byte is broken up with
|
||||
bit 7 as pcrel, bits 6 & 5 as length, bit 4 as pcrel, and the lower
|
||||
nibble as nuthin. (on Sun 3 at least) */
|
||||
/* Translate the internal relocation information into target-specific
|
||||
format. */
|
||||
#ifdef comment
|
||||
void
|
||||
md_ri_to_chars (char *the_bytes, struct reloc_info_generic *ri)
|
||||
{
|
||||
/* This is easy. */
|
||||
md_number_to_chars (the_bytes, ri->r_address, 4);
|
||||
/* Now the fun stuff. */
|
||||
the_bytes[4] = (ri->r_symbolnum >> 16) & 0x0ff;
|
||||
the_bytes[5] = (ri->r_symbolnum >> 8) & 0x0ff;
|
||||
the_bytes[6] = ri->r_symbolnum & 0x0ff;
|
||||
the_bytes[7] = (((ri->r_pcrel << 7) & 0x80)
|
||||
| ((ri->r_length << 5) & 0x60)
|
||||
| ((ri->r_extern << 4) & 0x10));
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#endif /* OBJ_AOUT */
|
||||
|
||||
#ifndef WORKING_DOT_WORD
|
||||
int md_short_jump_size = 4;
|
||||
int md_long_jump_size = 6;
|
||||
@@ -7509,11 +7382,7 @@ m68k_set_extension (char const *name, int allow_m, int silent)
|
||||
Invocation line includes a switch not recognized by the base assembler.
|
||||
*/
|
||||
|
||||
#ifdef OBJ_ELF
|
||||
const char *md_shortopts = "lSA:m:kQ:V";
|
||||
#else
|
||||
const char *md_shortopts = "lSA:m:k";
|
||||
#endif
|
||||
|
||||
struct option md_longopts[] = {
|
||||
#define OPTION_PIC (OPTION_MD_BASE)
|
||||
@@ -7877,18 +7746,6 @@ md_undefined_symbol (char *name ATTRIBUTE_UNUSED)
|
||||
valueT
|
||||
md_section_align (segT segment ATTRIBUTE_UNUSED, valueT size)
|
||||
{
|
||||
#ifdef OBJ_AOUT
|
||||
/* For a.out, force the section size to be aligned. If we don't do
|
||||
this, BFD will align it for us, but it will not write out the
|
||||
final bytes of the section. This may be a bug in BFD, but it is
|
||||
easier to fix it here since that is how the other a.out targets
|
||||
work. */
|
||||
int align;
|
||||
|
||||
align = bfd_get_section_alignment (stdoutput, segment);
|
||||
size = ((size + (1 << align) - 1) & (-((valueT) 1 << align)));
|
||||
#endif
|
||||
|
||||
return size;
|
||||
}
|
||||
|
||||
@@ -7907,7 +7764,6 @@ md_pcrel_from (fixS *fixP)
|
||||
return fixP->fx_where + fixP->fx_frag->fr_address - adjust;
|
||||
}
|
||||
|
||||
#ifdef OBJ_ELF
|
||||
void
|
||||
m68k_elf_final_processing (void)
|
||||
{
|
||||
@@ -8095,7 +7951,6 @@ m68k_elf_cons (int nbytes /* 4=.long */)
|
||||
input_line_pointer--;
|
||||
demand_empty_rest_of_line ();
|
||||
}
|
||||
#endif
|
||||
|
||||
int
|
||||
tc_m68k_regname_to_dw2regnum (const char *regname)
|
||||
|
||||
Reference in New Issue
Block a user