@R changes to work with gcc-6.2.0

This commit is contained in:
bebbo 2016-11-28 22:19:06 +01:00
parent ce410ad89a
commit 590f1f95a2
14 changed files with 446 additions and 235 deletions

View File

@ -204,7 +204,7 @@ USUAL_MAKEINFO = `if [ -f $$r/texinfo/makeinfo/makeinfo ] ; \
# sub-makes. It lets flags be given on the command line while still
# using the makeinfo from the object tree.
# (Default to avoid splitting info files.)
MAKEINFOFLAGS = --no-split
MAKEINFOFLAGS = --no-split --force
EXPECT = `if [ -f $$r/expect/expect ] ; \
then echo $$r/expect/expect ; \

View File

@ -207,7 +207,7 @@ USUAL_MAKEINFO = `if [ -f $$r/texinfo/makeinfo/makeinfo ] ; \
# sub-makes. It lets flags be given on the command line while still
# using the makeinfo from the object tree.
# (Default to avoid splitting info files.)
MAKEINFOFLAGS = --no-split
MAKEINFOFLAGS = --no-split --force
EXPECT = `if [ -f $$r/expect/expect ] ; \
then echo $$r/expect/expect ; \

View File

@ -351,6 +351,8 @@ do_scrub_chars (get, tostart, tolen)
char *fromend;
int fromlen;
register int ch, ch2 = 0;
/* Character that started the string we're working on. */
static char quotechar;
/*State 0: beginning of normal line
1: After first whitespace on line (flush more white)
@ -536,11 +538,8 @@ do_scrub_chars (get, tostart, tolen)
for (s = from; s < fromend; s++)
{
ch = *s;
/* This condition must be changed if the type of any
other character can be LEX_IS_STRINGQUOTE. */
if (ch == '\\'
|| ch == '"'
|| ch == '\''
|| ch == quotechar
|| ch == '\n')
break;
}
@ -558,12 +557,12 @@ do_scrub_chars (get, tostart, tolen)
ch = GET ();
if (ch == EOF)
{
as_warn (_("end of file in string; inserted '\"'"));
as_warn (_("end of file in string; '%c' inserted"), quotechar);
state = old_state;
UNGET ('\n');
PUT ('"');
PUT (quotechar);
}
else if (lex[ch] == LEX_IS_STRINGQUOTE)
else if (ch == quotechar)
{
state = old_state;
PUT (ch);
@ -603,8 +602,8 @@ do_scrub_chars (get, tostart, tolen)
continue;
case EOF:
as_warn (_("end of file in string; '\"' inserted"));
PUT ('"');
as_warn (_("end of file in string; '%c' inserted"), quotechar);
PUT (quotechar);
continue;
case '"':
@ -638,10 +637,9 @@ do_scrub_chars (get, tostart, tolen)
case 7:
ch = GET ();
quotechar = ch;
state = 5;
old_state = 8;
if (ch == EOF)
goto fromeof;
PUT (ch);
continue;
@ -952,6 +950,7 @@ do_scrub_chars (get, tostart, tolen)
break;
case LEX_IS_STRINGQUOTE:
quotechar = ch;
if (state == 10)
{
/* Preserve the whitespace in foo "bar". */
@ -1279,6 +1278,8 @@ do_scrub_chars (get, tostart, tolen)
case 1: *to++ = *from++;
}
}
if (to >= toend)
goto tofull;
ch = GET ();
}
}
@ -1297,7 +1298,7 @@ do_scrub_chars (get, tostart, tolen)
}
else if (state == 9)
{
if (lex[ch] != LEX_IS_SYMBOL_COMPONENT)
if (!IS_SYMBOL_COMPONENT (ch))
state = 3;
}
else if (state == 10)

View File

@ -1,212 +1,277 @@
/* AmigaOS object file format
Copyright (C) 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
This file is part of GAS, the GNU Assembler.
GAS is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2,
or (at your option) any later version.
GAS is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
the GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GAS; see the file COPYING. If not, write to the Free
Software Foundation, 59 Temple Place - Suite 330, Boston, MA
02111-1307, USA. */
#include "as.h"
enum {
N_UNDF=0,
/*N_ABS=2,*/
/*N_TEXT=4,*/
/*N_DATA=6,*/
/*N_BSS=8,*/
N_INDR=0xa,
/*N_COMM=0x12,*/
N_SETA=0x14,
N_SETT=0x16,
N_SETD=0x18,
N_SETB=0x1a,
/*N_SETV=0x1c,*/
N_WARNING=0x1e,
/*N_FN=0x1f*/
N_EXT=1,
N_TYPE=0x1e,
/*N_STAB=0xe0,*/
};
static void obj_amiga_line PARAMS ((int));
static void obj_amiga_weak PARAMS ((int));
const pseudo_typeS obj_pseudo_table[] =
{
{"line", obj_amiga_line, 0}, /* source code line number */
{"weak", obj_amiga_weak, 0}, /* mark symbol as weak. */
/* other stuff */
{"ABORT", s_abort, 0},
{NULL, NULL, 0} /* end sentinel */
};
#ifdef BFD_ASSEMBLER
void
obj_amiga_frob_symbol (sym, punt)
symbolS *sym;
int *punt ATTRIBUTE_UNUSED;
{
sec_ptr sec = S_GET_SEGMENT (sym);
unsigned int type = amiga_symbol (symbol_get_bfdsym (sym))->type;
/* Only frob simple symbols this way right now. */
if (! (type & ~ (N_TYPE | N_EXT)))
{
if (type == (N_UNDF | N_EXT)
&& sec == &bfd_abs_section)
{
sec = bfd_und_section_ptr;
S_SET_SEGMENT (sym, sec);
}
if ((type & N_TYPE) != N_INDR
&& (type & N_TYPE) != N_SETA
&& (type & N_TYPE) != N_SETT
&& (type & N_TYPE) != N_SETD
&& (type & N_TYPE) != N_SETB
&& type != N_WARNING
&& (sec == &bfd_abs_section
|| sec == &bfd_und_section))
return;
if (symbol_get_bfdsym (sym)->flags & BSF_EXPORT)
type |= N_EXT;
switch (type & N_TYPE)
{
case N_SETA:
case N_SETT:
case N_SETD:
case N_SETB:
/* Set the debugging flag for constructor symbols so that
BFD leaves them alone. */
symbol_get_bfdsym (sym)->flags |= BSF_DEBUGGING;
/* You can't put a common symbol in a set. The way a set
element works is that the symbol has a definition and a
name, and the linker adds the definition to the set of
that name. That does not work for a common symbol,
because the linker can't tell which common symbol the
user means. FIXME: Using as_bad here may be
inappropriate, since the user may want to force a
particular type without regard to the semantics of sets;
on the other hand, we certainly don't want anybody to be
mislead into thinking that their code will work. */
if (S_IS_COMMON (sym))
as_bad (_("Attempt to put a common symbol into set %s"),
S_GET_NAME (sym));
/* Similarly, you can't put an undefined symbol in a set. */
else if (! S_IS_DEFINED (sym))
as_bad (_("Attempt to put an undefined symbol into set %s"),
S_GET_NAME (sym));
break;
case N_INDR:
/* Put indirect symbols in the indirect section. */
S_SET_SEGMENT (sym, bfd_ind_section_ptr);
symbol_get_bfdsym (sym)->flags |= BSF_INDIRECT;
if (type & N_EXT)
{
symbol_get_bfdsym (sym)->flags |= BSF_EXPORT;
symbol_get_bfdsym (sym)->flags &=~ BSF_LOCAL;
}
break;
case N_WARNING:
/* Mark warning symbols. */
symbol_get_bfdsym (sym)->flags |= BSF_WARNING;
break;
}
}
else
{
symbol_get_bfdsym (sym)->flags |= BSF_DEBUGGING;
}
amiga_symbol (symbol_get_bfdsym (sym))->type = type;
/* Double check weak symbols. */
if (S_IS_WEAK (sym))
{
if (S_IS_COMMON (sym))
as_bad (_("Symbol `%s' can not be both weak and common"),
S_GET_NAME (sym));
}
}
void
obj_amiga_frob_file_before_fix ()
{
/* Relocation processing may require knowing the VMAs of the sections.
Since writing to a section will cause the BFD back end to compute the
VMAs, fake it out here.... */
bfd_byte b = 0;
bfd_boolean x = TRUE;
if (bfd_section_size (stdoutput, text_section) != 0)
{
x = bfd_set_section_contents (stdoutput, text_section, &b, (file_ptr) 0,
(bfd_size_type) 1);
}
else if (bfd_section_size (stdoutput, data_section) != 0)
{
x = bfd_set_section_contents (stdoutput, data_section, &b, (file_ptr) 0,
(bfd_size_type) 1);
}
assert (x);
}
#endif /* BFD_ASSEMBLER */
static void
obj_amiga_line (ignore)
int ignore ATTRIBUTE_UNUSED;
{
/* Assume delimiter is part of expression.
BSD4.2 as fails with delightful bug, so we
are not being incompatible here. */
new_logical_line ((char *) NULL, (int) (get_absolute_expression ()));
demand_empty_rest_of_line ();
} /* obj_amiga_line() */
/* Handle .weak. This is a GNU extension. */
static void
obj_amiga_weak (ignore)
int ignore ATTRIBUTE_UNUSED;
{
char *name;
int c;
symbolS *symbolP;
do
{
name = input_line_pointer;
c = get_symbol_end ();
symbolP = symbol_find_or_make (name);
*input_line_pointer = c;
SKIP_WHITESPACE ();
S_SET_WEAK (symbolP);
if (c == ',')
{
input_line_pointer++;
SKIP_WHITESPACE ();
if (*input_line_pointer == '\n')
c = '\n';
}
}
while (c == ',');
demand_empty_rest_of_line ();
}
/* AmigaOS object file format
Copyright (C) 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
This file is part of GAS, the GNU Assembler.
GAS is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2,
or (at your option) any later version.
GAS is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
the GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GAS; see the file COPYING. If not, write to the Free
Software Foundation, 59 Temple Place - Suite 330, Boston, MA
02111-1307, USA. */
#include "as.h"
enum {
N_UNDF=0,
/*N_ABS=2,*/
/*N_TEXT=4,*/
/*N_DATA=6,*/
/*N_BSS=8,*/
N_INDR=0xa,
/*N_COMM=0x12,*/
N_SETA=0x14,
N_SETT=0x16,
N_SETD=0x18,
N_SETB=0x1a,
/*N_SETV=0x1c,*/
N_WARNING=0x1e,
/*N_FN=0x1f*/
N_EXT=1,
N_TYPE=0x1e,
/*N_STAB=0xe0,*/
};
static void obj_amiga_line PARAMS ((int));
static void obj_amiga_weak PARAMS ((int));
static void obj_amiga_section PARAMS((int));
static char * obj_amiga_section_name PARAMS ((void));
const pseudo_typeS obj_pseudo_table[] =
{
{"line", obj_amiga_line, 0}, /* source code line number */
{"weak", obj_amiga_weak, 0}, /* mark symbol as weak. */
{"2byte", cons, 2},
{"4byte", cons, 4},
{"8byte", cons, 8},
{"hidden", s_ignore, 0},
{"local", s_ignore, 0},
{"section", obj_amiga_section, 0},
{"section.s", obj_amiga_section, 0},
{"sect", obj_amiga_section, 0},
{"sect.s", obj_amiga_section, 0},
{"swbeg", s_ignore, 0},
/* other stuff */
{"ABORT", s_abort, 0},
{NULL, NULL, 0} /* end sentinel */
};
#ifdef BFD_ASSEMBLER
void
obj_amiga_frob_symbol (sym, punt)
symbolS *sym;
int *punt ATTRIBUTE_UNUSED;
{
sec_ptr sec = S_GET_SEGMENT (sym);
unsigned int type = amiga_symbol (symbol_get_bfdsym (sym))->type;
/* Only frob simple symbols this way right now. */
if (! (type & ~ (N_TYPE | N_EXT)))
{
if (type == (N_UNDF | N_EXT)
&& sec == &bfd_abs_section)
{
sec = bfd_und_section_ptr;
S_SET_SEGMENT (sym, sec);
}
if ((type & N_TYPE) != N_INDR
&& (type & N_TYPE) != N_SETA
&& (type & N_TYPE) != N_SETT
&& (type & N_TYPE) != N_SETD
&& (type & N_TYPE) != N_SETB
&& type != N_WARNING
&& (sec == &bfd_abs_section
|| sec == &bfd_und_section))
return;
if (symbol_get_bfdsym (sym)->flags & BSF_EXPORT)
type |= N_EXT;
switch (type & N_TYPE)
{
case N_SETA:
case N_SETT:
case N_SETD:
case N_SETB:
/* Set the debugging flag for constructor symbols so that
BFD leaves them alone. */
symbol_get_bfdsym (sym)->flags |= BSF_DEBUGGING;
/* You can't put a common symbol in a set. The way a set
element works is that the symbol has a definition and a
name, and the linker adds the definition to the set of
that name. That does not work for a common symbol,
because the linker can't tell which common symbol the
user means. FIXME: Using as_bad here may be
inappropriate, since the user may want to force a
particular type without regard to the semantics of sets;
on the other hand, we certainly don't want anybody to be
mislead into thinking that their code will work. */
if (S_IS_COMMON (sym))
as_bad (_("Attempt to put a common symbol into set %s"),
S_GET_NAME (sym));
/* Similarly, you can't put an undefined symbol in a set. */
else if (! S_IS_DEFINED (sym))
as_bad (_("Attempt to put an undefined symbol into set %s"),
S_GET_NAME (sym));
break;
case N_INDR:
/* Put indirect symbols in the indirect section. */
S_SET_SEGMENT (sym, bfd_ind_section_ptr);
symbol_get_bfdsym (sym)->flags |= BSF_INDIRECT;
if (type & N_EXT)
{
symbol_get_bfdsym (sym)->flags |= BSF_EXPORT;
symbol_get_bfdsym (sym)->flags &=~ BSF_LOCAL;
}
break;
case N_WARNING:
/* Mark warning symbols. */
symbol_get_bfdsym (sym)->flags |= BSF_WARNING;
break;
}
}
else
{
symbol_get_bfdsym (sym)->flags |= BSF_DEBUGGING;
}
amiga_symbol (symbol_get_bfdsym (sym))->type = type;
/* Double check weak symbols. */
if (S_IS_WEAK (sym))
{
if (S_IS_COMMON (sym))
as_bad (_("Symbol `%s' can not be both weak and common"),
S_GET_NAME (sym));
}
}
void
obj_amiga_frob_file_before_fix ()
{
/* Relocation processing may require knowing the VMAs of the sections.
Since writing to a section will cause the BFD back end to compute the
VMAs, fake it out here.... */
bfd_byte b = 0;
bfd_boolean x = TRUE;
if (bfd_section_size (stdoutput, text_section) != 0)
{
x = bfd_set_section_contents (stdoutput, text_section, &b, (file_ptr) 0,
(bfd_size_type) 1);
}
else if (bfd_section_size (stdoutput, data_section) != 0)
{
x = bfd_set_section_contents (stdoutput, data_section, &b, (file_ptr) 0,
(bfd_size_type) 1);
}
assert (x);
}
#endif /* BFD_ASSEMBLER */
/* Get name of section. */
static char *
obj_amiga_section_name ()
{
char *name;
SKIP_WHITESPACE ();
if (*input_line_pointer == '"')
{
int dummy;
name = demand_copy_C_string (&dummy);
if (name == NULL)
{
ignore_rest_of_line ();
return NULL;
}
}
else
{
char *end = input_line_pointer;
while (0 == strchr ("\n\t,; ", *end))
end++;
if (end == input_line_pointer)
{
as_warn (_("missing name"));
ignore_rest_of_line ();
return NULL;
}
name = xmalloc (end - input_line_pointer + 1);
memcpy (name, input_line_pointer, end - input_line_pointer);
name[end - input_line_pointer] = '\0';
input_line_pointer = end;
}
SKIP_WHITESPACE ();
return name;
}
static void obj_amiga_section(int push) {
char const * name = obj_amiga_section_name();
if (name == NULL)
return;
if (0 == strcmp(".rodata", name))
s_text();
else
s_data();
}
static void
obj_amiga_line (ignore)
int ignore ATTRIBUTE_UNUSED;
{
/* Assume delimiter is part of expression.
BSD4.2 as fails with delightful bug, so we
are not being incompatible here. */
new_logical_line ((char *) NULL, (int) (get_absolute_expression ()));
demand_empty_rest_of_line ();
} /* obj_amiga_line() */
/* Handle .weak. This is a GNU extension. */
static void
obj_amiga_weak (ignore)
int ignore ATTRIBUTE_UNUSED;
{
char *name;
int c;
symbolS *symbolP;
do
{
name = input_line_pointer;
c = get_symbol_end ();
symbolP = symbol_find_or_make (name);
*input_line_pointer = c;
SKIP_WHITESPACE ();
S_SET_WEAK (symbolP);
if (c == ',')
{
input_line_pointer++;
SKIP_WHITESPACE ();
if (*input_line_pointer == '\n')
c = '\n';
}
}
while (c == ',');
demand_empty_rest_of_line ();
}

View File

@ -75,6 +75,8 @@ const segT N_TYPE_seg[N_TYPE + 2] =
static void obj_aout_line PARAMS ((int));
static void obj_aout_weak PARAMS ((int));
static void obj_aout_type PARAMS ((int));
static void obj_section PARAMS((int));
static char * obj_section_name PARAMS ((void));
const pseudo_typeS aout_pseudo_table[] =
{
@ -100,6 +102,17 @@ const pseudo_typeS aout_pseudo_table[] =
{"optim", s_ignore, 0}, /* For sun386i cc (?) */
{"2byte", cons, 2},
{"4byte", cons, 4},
{"8byte", cons, 8},
{"hidden", s_ignore, 0},
{"local", s_ignore, 0},
{"section", obj_section, 0},
{"section.s", obj_section, 0},
{"sect", obj_section, 0},
{"sect.s", obj_section, 0},
{"swbeg", s_ignore, 0},
/* other stuff */
{"ABORT", s_abort, 0},
@ -229,6 +242,59 @@ obj_aout_frob_file_before_fix ()
#else /* ! BFD_ASSEMBLER */
/* Get name of section. */
static char *
obj_section_name ()
{
char *name;
SKIP_WHITESPACE ();
if (*input_line_pointer == '"')
{
int dummy;
name = demand_copy_C_string (&dummy);
if (name == NULL)
{
ignore_rest_of_line ();
return NULL;
}
}
else
{
char *end = input_line_pointer;
while (0 == strchr ("\n\t,; ", *end))
end++;
if (end == input_line_pointer)
{
as_warn (_("missing name"));
ignore_rest_of_line ();
return NULL;
}
name = xmalloc (end - input_line_pointer + 1);
memcpy (name, input_line_pointer, end - input_line_pointer);
name[end - input_line_pointer] = '\0';
input_line_pointer = end;
}
SKIP_WHITESPACE ();
return name;
}
static void obj_section(int push) {
char const * name = obj_section_name();
if (name == NULL)
return;
if (0 == strcmp(".rodata", name))
s_text(push);
else
s_data(push);
}
/* Relocation. */
/*

View File

@ -132,6 +132,10 @@ int elf_s_get_other PARAMS ((symbolS *));
(elf_symbol (symbol_get_bfdsym (S))->internal_elf_sym.st_other = (V))
#endif
#ifndef S_GET_TYPE
#define S_GET_TYPE(S) (0)
#endif
extern asection *gdb_section;
#ifndef obj_frob_file

View File

@ -237,6 +237,10 @@ static segT get_known_segmented_expression PARAMS ((expressionS * expP));
static void pobegin PARAMS ((void));
static int get_line_sb PARAMS ((sb *));
static void generate_file_debug PARAMS ((void));
void ignore_rest_of_line (void);
static void ignore_rest_of_line2 (int);
void
read_begin ()
@ -1425,7 +1429,8 @@ s_comm (ignore)
#endif /* not OBJ_VMS */
know (symbolP->sy_frag == &zero_address_frag);
demand_empty_rest_of_line ();
ignore_rest_of_line2 (0);
// demand_empty_rest_of_line ();
if (flag_mri)
mri_comment_end (stop, stopc);
@ -3167,15 +3172,21 @@ demand_empty_rest_of_line ()
void
ignore_rest_of_line ()
{
ignore_rest_of_line2(1);
}
void
ignore_rest_of_line2 (int out)
{
/* For suspect lines: gives warning. */
if (!is_end_of_line[(unsigned char) *input_line_pointer])
{
if (ISPRINT (*input_line_pointer))
as_warn (_("rest of line ignored; first ignored character is `%c'"),
if (out) as_warn (_("rest of line ignored; first ignored character is `%c'"),
*input_line_pointer);
else
as_warn (_("rest of line ignored; first ignored character valued 0x%x"),
if (out) as_warn (_("rest of line ignored; first ignored character valued 0x%x"),
*input_line_pointer);
while (input_line_pointer < buffer_limit
@ -3355,7 +3366,7 @@ parse_repeat_cons PARAMS ((expressionS *exp, unsigned int nbytes));
static void
cons_worker (nbytes, rva)
register int nbytes; /* 1=.byte, 2=.word, 4=.long. */
register int nbytes; /* 1=.byte, 2=.word, 4=.long, 8=.8bytes. */
int rva;
{
int c;

View File

@ -192,7 +192,7 @@ TODO acinclude.m4 aclocal.m4 configure configure.in gconfig.in
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = gtar
TAR = tar
GZIP_ENV = --best
SOURCES = $(gprof_SOURCES)
OBJECTS = $(gprof_OBJECTS)

55
include/opcode/cgen-bitset.h Executable file
View File

@ -0,0 +1,55 @@
/* Header file the type CGEN_BITSET.
Copyright 2002, 2005 Free Software Foundation, Inc.
This file is part of GDB, the GNU debugger, and the GNU Binutils.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#ifndef CGEN_BITSET_H
#define CGEN_BITSET_H
#ifdef __cplusplus
extern "C" {
#endif
/* A bitmask represented as a string.
Each member of the set is represented as a bit
in the string. Bytes are indexed from left to right in the string and
bits from most significant to least within each byte.
For example, the bit representing member number 6 is (set->bits[0] & 0x02).
*/
typedef struct cgen_bitset
{
unsigned length;
char *bits;
} CGEN_BITSET;
extern CGEN_BITSET *cgen_bitset_create PARAMS ((unsigned));
extern void cgen_bitset_init PARAMS ((CGEN_BITSET *, unsigned));
extern void cgen_bitset_clear PARAMS ((CGEN_BITSET *));
extern void cgen_bitset_add PARAMS ((CGEN_BITSET *, unsigned));
extern void cgen_bitset_set PARAMS ((CGEN_BITSET *, unsigned));
extern int cgen_bitset_compare PARAMS ((CGEN_BITSET *, CGEN_BITSET *));
extern void cgen_bitset_union PARAMS ((CGEN_BITSET *, CGEN_BITSET *, CGEN_BITSET *));
extern int cgen_bitset_intersect_p PARAMS ((CGEN_BITSET *, CGEN_BITSET *));
extern int cgen_bitset_contains PARAMS ((CGEN_BITSET *, unsigned));
extern CGEN_BITSET *cgen_bitset_copy PARAMS ((CGEN_BITSET *));
#ifdef __cplusplus
} // extern "C"
#endif
#endif

View File

@ -341,7 +341,7 @@ sh64-*-elf*)
m68k-sony-*) targ_emul=news ;;
m68k-hp-bsd*) targ_emul=hp300bsd ;;
m68*-motorola-sysv*) targ_emul=delta68 ;;
m68*-*-amigaos*) targ_emul=amiga ; targ_extra_emuls=amiga_bss;;
m68*-amigaos* | m68*-*-amigaos*) targ_emul=amiga ; targ_extra_emuls=amiga_bss;;
m68*-*-aout) targ_emul=m68kaout ;;
m68*-*-coff) targ_emul=m68kcoff ;;
m68*-*-elf) targ_emul=m68kelf ;;

View File

@ -4,3 +4,4 @@ TEXT_START_ADDR=0x0
SEGMENT_SIZE=0x0
TEMPLATE_NAME=amiga
ARCH=m68k
EMULATION_NAME=amiga

View File

@ -4,3 +4,4 @@ TEXT_START_ADDR=0x0
SEGMENT_SIZE=0x0
TEMPLATE_NAME=amiga
ARCH=m68k
EMULATION_NAME=amiga_bss

View File

@ -1038,10 +1038,9 @@ aix4* | aix5*)
;;
amigaos*)
library_names_spec='$libname.library $libname.a'
library_names_spec='$libname.ixlibrary $libname.a'
# Create ${libname}_ixlibrary.a entries in /sys/libs.
#FIXME: finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done'
finish_eval='/bin/true';
finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done'
;;
beos*)

View File

@ -5424,3 +5424,11 @@ aa9faff15fc4bc65940d62236b7f1de8 opcodes/z8k-opc.h
671f95a4f3f078b483390601bc8a729d symlink-tree
869b0770320db2cd18093b1a9ffafef8 texinfo/texinfo.tex
7588c5103af27cc93537977f059f52dc ylwrap
148fad0cc1f763de146e8b24585ecc7c cgen/cpu/fr30.cpu
9c5d5fa5b445b9355b85077bd49a5f97 cgen/cpu/fr30.opc
75592d87915e75debae73108ddc302b2 cgen/cpu/ip2k.cpu
8d5edda5f98445600dee230f555a2456 cgen/cpu/ip2k.opc
867a60d05d64405fdb1ef21000caeedc cgen/cpu/openrisc.cpu
945e53326e14b969cd64bb0cb5a37c30 cgen/cpu/openrisc.opc
660d36f7635ce300de54206767f36c5b cgen/cpu/xstormy16.cpu
ce470f63afdfaaaffd13956b0d3b51db cgen/cpu/xstormy16.opc