aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
Diffstat (limited to 'gas')
-rw-r--r--gas/Makefile.in92
-rw-r--r--gas/config/ho-sunos.h3
-rw-r--r--gas/config/obj-aout.h18
-rw-r--r--gas/config/obj-bout.c2
-rw-r--r--gas/config/obj-bout.h2
-rw-r--r--gas/config/obj-coff.c46
-rw-r--r--gas/config/obj-coff.h2
7 files changed, 84 insertions, 81 deletions
diff --git a/gas/Makefile.in b/gas/Makefile.in
index 217f642..7d91bec 100644
--- a/gas/Makefile.in
+++ b/gas/Makefile.in
@@ -27,7 +27,7 @@
# See below for how to change them for certain systems.
ALLOCA =
-CFLAGS = -g $(XCFLAGS) # -I$(srcdir)/../include
+CFLAGS = -g $(XCFLAGS) -I$(srcdir)/../include
INTERNAL_CFLAGS = $(CROSS)
OLDCC = cc
BISON = bison
@@ -81,10 +81,6 @@ mandir = $(prefix)/man/man$(manext)
# Additional system libraries to link with.
CLIB=
-# Change this to a null string if obstacks are installed in the
-# system library.
-OBSTACK=obstack.o
-
# Specify the rule for actually making gnulib.
GNULIB = gnulib.portable
@@ -177,7 +173,6 @@ REAL_HEADERS = \
$(srcdir)/tc.h \
$(srcdir)/obj.h \
$(srcdir)/read.h \
- $(srcdir)/reloc.h \
$(srcdir)/struc-symbol.h \
$(srcdir)/subsegs.h \
$(srcdir)/symbols.h \
@@ -242,11 +237,6 @@ ALL_CFLAGS = $(INTERNAL_CFLAGS) $(CFLAGS) $(HDEFINES) $(TDEFINES)
USE_ALLOCA= `if [ x"${CC}" = x"${OLDCC}" ] ; then echo ${ALLOCA}; else true; fi`
USE_HOST_ALLOCA= `if [ x"${CC}" = x"${OLDCC}" ] ; then echo ${HOST_PREFIX}${ALLOCA}; else true; fi`
-# Dependency on obstack, alloca, malloc or whatever library facilities
-# are not installed in the system libraries.
-# We don't use USE_ALLOCA because backquote expansion doesn't work in deps.
-LIBDEPS= $(OBSTACK) $(ALLOCA) $(MALLOC)
-
# Likewise, for use in the tools that must run on this machine
# even if we are cross-building GCC.
# We don't use USE_ALLOCA because backquote expansion doesn't work in deps.
@@ -254,7 +244,7 @@ HOST_LIBDEPS= $(HOST_PREFIX)$(OBSTACK) $(HOST_PREFIX)$(ALLOCA) $(HOST_PREFIX)$(M
# How to link with both our special library facilities
# and the system's installed libraries.
-LIBS = $(OBSTACK) $(USE_ALLOCA) $(MALLOC) $(CLIB)
+LIBS = $(CLIB) $(srcdir)/../libiberty`if [ -d $(srcdir)/libiberty.$(target) ] ; then echo .$(target) ; fi`$(subdir)/libiberty.a
# Likewise, for use in the tools that must run on this machine
# even if we are cross-building GCC.
@@ -305,104 +295,94 @@ compilations: ${OBJS}
# Compiling object files from source files.
-# Note that dependencies on obstack.h are not written
-# because that file is not part of GAS.
-
app.o : app.c as.h host.h targ-env.h obj-format.h \
- targ-cpu.h struc-symbol.h reloc.h \
+ targ-cpu.h struc-symbol.h \
write.h flonum.h bignum.h expr.h frags.h hash.h read.h symbols.h tc.h obj.h
as.o : as.c as.h host.h targ-env.h obj-format.h \
- targ-cpu.h struc-symbol.h reloc.h \
+ targ-cpu.h struc-symbol.h \
write.h flonum.h bignum.h expr.h frags.h hash.h read.h symbols.h tc.h obj.h
atof-generic.o : atof-generic.c as.h host.h targ-env.h obj-format.h \
- targ-cpu.h struc-symbol.h reloc.h \
+ targ-cpu.h struc-symbol.h \
write.h flonum.h bignum.h expr.h frags.h hash.h read.h symbols.h tc.h obj.h
bignum-copy.o : bignum-copy.c as.h host.h \
targ-env.h obj-format.h \
- targ-cpu.h struc-symbol.h reloc.h \
+ targ-cpu.h struc-symbol.h \
write.h flonum.h bignum.h expr.h frags.h hash.h read.h symbols.h tc.h obj.h
cond.o : cond.c as.h host.h targ-env.h obj-format.h \
- targ-cpu.h struc-symbol.h reloc.h \
+ targ-cpu.h struc-symbol.h \
write.h flonum.h bignum.h expr.h frags.h hash.h read.h symbols.h tc.h obj.h \
- obstack.h
+
debug.o : debug.c as.h host.h targ-env.h obj-format.h \
- targ-cpu.h struc-symbol.h reloc.h \
+ targ-cpu.h struc-symbol.h \
write.h flonum.h bignum.h expr.h frags.h hash.h read.h symbols.h tc.h obj.h \
subsegs.h
expr.o : expr.c as.h host.h targ-env.h obj-format.h \
- targ-cpu.h struc-symbol.h reloc.h \
+ targ-cpu.h struc-symbol.h \
write.h flonum.h bignum.h expr.h frags.h hash.h read.h symbols.h tc.h obj.h \
- obstack.h
+
flonum-const.o : flonum-const.c flonum.h bignum.h
flonum-copy.o : flonum-copy.c as.h host.h targ-env.h obj-format.h \
- targ-cpu.h struc-symbol.h reloc.h \
+ targ-cpu.h struc-symbol.h \
write.h flonum.h bignum.h expr.h frags.h hash.h read.h symbols.h tc.h obj.h
flonum-mult.o : flonum-mult.c flonum.h bignum.h
frags.o : frags.c as.h host.h targ-env.h obj-format.h \
- targ-cpu.h struc-symbol.h reloc.h \
+ targ-cpu.h struc-symbol.h \
write.h flonum.h bignum.h expr.h frags.h hash.h read.h symbols.h tc.h obj.h \
- subsegs.h obstack.h
+ subsegs.h
hash.o : hash.c as.h host.h targ-env.h obj-format.h \
- targ-cpu.h struc-symbol.h reloc.h \
+ targ-cpu.h struc-symbol.h \
write.h flonum.h bignum.h expr.h frags.h hash.h read.h symbols.h tc.h obj.h
hex-value.o : hex-value.c
input-file.o : input-file.c as.h host.h \
targ-env.h obj-format.h targ-cpu.h \
- struc-symbol.h reloc.h write.h flonum.h bignum.h expr.h \
+ struc-symbol.h write.h flonum.h bignum.h expr.h \
frags.h hash.h read.h symbols.h tc.h obj.h input-file.h
input-scrub.o : input-scrub.c /usr/include/errno.h /usr/include/sys/errno.h \
as.h host.h targ-env.h obj-format.h \
- targ-cpu.h struc-symbol.h reloc.h \
+ targ-cpu.h struc-symbol.h \
write.h flonum.h bignum.h expr.h frags.h hash.h read.h symbols.h tc.h obj.h \
input-file.h
messages.o : messages.c as.h host.h targ-env.h obj-format.h \
- targ-cpu.h struc-symbol.h reloc.h \
+ targ-cpu.h struc-symbol.h \
write.h flonum.h bignum.h expr.h frags.h hash.h read.h symbols.h tc.h obj.h
-obstack.o : obstack.c obstack.h
+obstack.o : obstack.c
output-file.o : output-file.c as.h host.h targ-env.h obj-format.h \
- targ-cpu.h struc-symbol.h reloc.h \
+ targ-cpu.h struc-symbol.h \
write.h flonum.h bignum.h expr.h frags.h hash.h read.h symbols.h tc.h obj.h \
output-file.h
read.o : read.c as.h host.h targ-env.h obj-format.h \
- targ-cpu.h struc-symbol.h reloc.h \
+ targ-cpu.h struc-symbol.h \
write.h flonum.h bignum.h expr.h frags.h hash.h read.h symbols.h tc.h obj.h \
- obstack.h
+
strstr.o : strstr.c
subsegs.o : subsegs.c as.h host.h targ-env.h obj-format.h \
- targ-cpu.h struc-symbol.h reloc.h \
+ targ-cpu.h struc-symbol.h \
write.h flonum.h bignum.h expr.h frags.h hash.h read.h symbols.h tc.h obj.h \
- subsegs.h obstack.h
+ subsegs.h
symbols.o : symbols.c as.h host.h targ-env.h obj-format.h \
- targ-cpu.h struc-symbol.h reloc.h \
+ targ-cpu.h struc-symbol.h \
write.h flonum.h bignum.h expr.h frags.h hash.h read.h symbols.h tc.h obj.h \
- obstack.h subsegs.h
+ subsegs.h
version.o : version.c
write.o : write.c as.h host.h targ-env.h obj-format.h \
- targ-cpu.h struc-symbol.h reloc.h \
+ targ-cpu.h struc-symbol.h \
write.h flonum.h bignum.h expr.h frags.h hash.h read.h symbols.h tc.h obj.h \
- subsegs.h obstack.h output-file.h
+ subsegs.h output-file.h
xmalloc.o : xmalloc.c
xrealloc.o : xrealloc.c
atof-targ.o : atof-targ.c as.h host.h targ-env.h obj-format.h \
- targ-cpu.h struc-symbol.h reloc.h \
+ targ-cpu.h struc-symbol.h \
write.h flonum.h bignum.h expr.h frags.h hash.h read.h \
symbols.h tc.h obj.h
obj-format.o : obj-format.c as.h host.h targ-env.h obj-format.h \
- targ-cpu.h struc-symbol.h reloc.h \
+ targ-cpu.h struc-symbol.h \
write.h flonum.h bignum.h expr.h frags.h hash.h read.h \
- symbols.h tc.h obj.h obstack.h
+ symbols.h tc.h obj.h
targ-cpu.o : targ-cpu.c targ-env.h obj-format.h \
- targ-cpu.h struc-symbol.h reloc.h \
+ targ-cpu.h struc-symbol.h \
write.h flonum.h bignum.h expr.h frags.h hash.h read.h \
- symbols.h tc.h obj.h obstack.h
-
-# Normally this target is not used; but it is used if you
-# define ALLOCA=alloca.o. In that case, you must get a suitable alloca.c
-# from the GNU Emacs distribution.
-# Note some machines won't allow $(CC) without -S on this source file.
-alloca.o: alloca.c
- $(CC) $(ALL_CFLAGS) $(CPPFLAGS) -S `echo $(srcdir)/alloca.c | sed 's,^\./,,'`
- as alloca.s -o alloca.o
+ symbols.h tc.h obj.h
+
# Compile the libraries to be used by gen*.
# If we are not cross-building, gen* use the same .o's that cc1 will use,
@@ -508,7 +488,7 @@ bootstrap: as force
$(MAKE) CC="$(CC)" CFLAGS="-O -Bstage1/ $(CFLAGS)" libdir=$(libdir) ALLOCA= as
$(MAKE) stage2
$(MAKE) CC="$(CC)" CFLAGS="-O -Bstage2/ $(CFLAGS)" libdir=$(libdir) ALLOCA= as
- for i in *.o; do cmp $$i stage2/$$i; done
+ $(MAKE) stage-last
bootstrap2: force
$(MAKE) CC="$(CC)" CFLAGS="-O -Bstage1/ $(CFLAGS)" libdir=$(libdir) ALLOCA= as
@@ -518,7 +498,7 @@ bootstrap2: force
bootstrap3: force
$(MAKE) CC="$(CC)" CFLAGS="-O -Bstage2/ $(CFLAGS)" libdir=$(libdir) ALLOCA= as
- $(MAKE) comparison
+ $(MAKE) stage-last
# Copy the object files from a particular stage into a subdirectory.
stage1: force
diff --git a/gas/config/ho-sunos.h b/gas/config/ho-sunos.h
index 13d5c3d..5d920f6 100644
--- a/gas/config/ho-sunos.h
+++ b/gas/config/ho-sunos.h
@@ -2,9 +2,10 @@
#ifndef __STDC__
#define NO_STDARG
-#include <memory.h>
#endif /* not __STDC__ */
+#include <memory.h>
+
#include <ctype.h>
#include <string.h>
diff --git a/gas/config/obj-aout.h b/gas/config/obj-aout.h
index 602d760..d2152db 100644
--- a/gas/config/obj-aout.h
+++ b/gas/config/obj-aout.h
@@ -30,6 +30,24 @@ to the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#include "a_out.h"
#endif
+struct reloc_info_generic
+{
+ unsigned long r_address;
+/*
+ * Using bit fields here is a bad idea because the order is not portable. :-(
+ */
+ unsigned int r_index;
+#define r_symbolnum r_index
+ unsigned r_extern : 1;
+ unsigned r_pcrel:1;
+ unsigned r_length:2; /* 0=>byte 1=>short 2=>long 3=>8byte */
+ unsigned r_bsr:1; /* NS32K */
+ unsigned r_disp:1; /* NS32k */
+ unsigned r_callj:1; /* i960 */
+ enum reloc_type r_type;
+ long r_addend;
+};
+
extern const short seg_N_TYPE[];
extern const segT N_TYPE_seg[];
diff --git a/gas/config/obj-bout.c b/gas/config/obj-bout.c
index 314edcc..846175f 100644
--- a/gas/config/obj-bout.c
+++ b/gas/config/obj-bout.c
@@ -113,7 +113,7 @@ char **where;
fixS *fixP; /* Fixup chain for this segment. */
relax_addressT segment_address_in_file;
{
- struct reloc_info_generic ri;
+ struct relocation_info ri;
register symbolS * symbolP;
/* If a machine dependent emitter is needed, call it instead. */
diff --git a/gas/config/obj-bout.h b/gas/config/obj-bout.h
index 5ba18f1..67e866a 100644
--- a/gas/config/obj-bout.h
+++ b/gas/config/obj-bout.h
@@ -205,7 +205,7 @@ struct relocation_info {
/* Accessors */
/* The value of the symbol */
-#define S_GET_VALUE(s) ((long) ((s)->sy_symbol.n_value))
+#define S_GET_VALUE(s) ((unsigned long) ((s)->sy_symbol.n_value))
/* The name of the symbol */
#define S_GET_NAME(s) ((s)->sy_symbol.n_un.n_name)
/* The pointer to the string table */
diff --git a/gas/config/obj-coff.c b/gas/config/obj-coff.c
index ef48334..707b2c8 100644
--- a/gas/config/obj-coff.c
+++ b/gas/config/obj-coff.c
@@ -129,18 +129,22 @@ const pseudo_typeS obj_pseudo_table[] = {
{ "val", s_ignore, 0 },
#endif /* ignore debug */
+ { "ident", s_ignore, 0 }, /* we don't yet handle this. */
+
+
/* stabs aka a.out aka b.out directives for debug symbols.
- Currently ignored silently. Except for .line which we
- guess at from context. */
+ Currently ignored silently. Except for .line at which
+ we guess from context. */
{ "desc", s_ignore, 0 }, /* def */
/* { "line", s_ignore, 0 }, */ /* source code line number */
{ "stabd", obj_coff_stab, 'd' }, /* stabs */
{ "stabn", obj_coff_stab, 'n' }, /* stabs */
{ "stabs", obj_coff_stab, 's' }, /* stabs */
+ /* stabs-in-coff (?) debug pseudos (ignored) */
+ { "optim", s_ignore, 0 }, /* For sun386i cc (?) */
/* other stuff */
{ "ABORT", s_abort, 0 },
- { "ident", s_ignore, 0 },
{ NULL} /* end sentinel */
}; /* obj_pseudo_table */
@@ -249,7 +253,7 @@ object_headers *headers;
{
tc_headers_hook(headers);
-#ifdef CROSS_ASSEMBLE
+#ifdef CROSS_COMPILE
/* Eventually swap bytes for cross compilation for file header */
md_number_to_chars(*where, headers->filehdr.f_magic, sizeof(headers->filehdr.f_magic));
*where += sizeof(headers->filehdr.f_magic);
@@ -286,14 +290,14 @@ object_headers *headers;
*where += sizeof(headers->aouthdr.data_start);
#endif /* OBJ_COFF_OMIT_OPTIONAL_HEADER */
-#else /* CROSS_ASSEMBLE */
+#else /* CROSS_COMPILE */
append(where, (char *) &headers->filehdr, sizeof(headers->filehdr));
#ifndef OBJ_COFF_OMIT_OPTIONAL_HEADER
append(where, (char *) &headers->aouthdr, sizeof(headers->aouthdr));
#endif /* OBJ_COFF_OMIT_OPTIONAL_HEADER */
-#endif /* CROSS_ASSEMBLE */
+#endif /* CROSS_COMPILE */
/* Output the section headers */
c_section_header_append(where, &text_section_header);
@@ -312,7 +316,7 @@ symbolS *symbolP;
char numaux = syment->n_numaux;
unsigned short type = S_GET_DATA_TYPE(symbolP);
-#ifdef CROSS_ASSEMBLE
+#ifdef CROSS_COMPILE
md_number_to_chars(*where, syment->n_value, sizeof(syment->n_value));
*where += sizeof(syment->n_value);
md_number_to_chars(*where, syment->n_scnum, sizeof(syment->n_scnum));
@@ -323,9 +327,9 @@ symbolS *symbolP;
*where += sizeof(syment->n_sclass);
md_number_to_chars(*where, syment->n_numaux, sizeof(syment->n_numaux));
*where += sizeof(syment->n_numaux);
-#else /* CROSS_ASSEMBLE */
+#else /* CROSS_COMPILE */
append(where, (char *) syment, sizeof(*syment));
-#endif /* CROSS_ASSEMBLE */
+#endif /* CROSS_COMPILE */
/* Should do the following : if (.file entry) MD(..)... else if (static entry) MD(..) */
if (numaux > OBJ_COFF_MAX_AUXENTRIES) {
@@ -333,7 +337,7 @@ symbolS *symbolP;
} /* too many auxents */
for (i = 0; i < numaux; ++i) {
-#ifdef CROSS_ASSEMBLE
+#ifdef CROSS_COMPILE
#if 0 /* This code has never been tested */
/* The most common case, x_sym entry. */
if ((SF_GET(symbolP) & (SF_FILE | SF_STATICS)) == 0) {
@@ -372,9 +376,9 @@ symbolS *symbolP;
*where += sizeof(auxP->x_scn.x_nlinno);
}
#endif /* 0 */
-#else /* CROSS_ASSEMBLE */
+#else /* CROSS_COMPILE */
append(where, (char *) &symbolP->sy_symbol.ost_auxent[i], sizeof(symbolP->sy_symbol.ost_auxent[i]));
-#endif /* CROSS_ASSEMBLE */
+#endif /* CROSS_COMPILE */
}; /* for each aux in use */
@@ -385,7 +389,7 @@ static void c_section_header_append(where, header)
char **where;
SCNHDR *header;
{
-#ifdef CROSS_ASSEMBLE
+#ifdef CROSS_COMPILE
md_number_to_chars(*where, header->s_paddr, sizeof(header->s_paddr));
*where += sizeof(header->s_paddr);
@@ -413,11 +417,11 @@ SCNHDR *header;
md_number_to_chars(*where, header->s_flags, sizeof(header->s_flags));
*where += sizeof(header->s_flags);
-#else /* CROSS_ASSEMBLE */
+#else /* CROSS_COMPILE */
append(where, (char *) header, sizeof(*header));
-#endif /* CROSS_ASSEMBLE */
+#endif /* CROSS_COMPILE */
return;
} /* c_section_header_append() */
@@ -650,15 +654,15 @@ char *file_start;
/* No matter which member of the union we process, they are
both long. */
-#ifdef CROSS_ASSEMBLE
+#ifdef CROSS_COMPILE
md_number_to_chars(*where, line_entry->l_addr.l_paddr, sizeof(line_entry->l_addr.l_paddr));
*where += sizeof(line_entry->l_addr.l_paddr);
md_number_to_chars(*where, line_entry->l_lnno, sizeof(line_entry->l_lnno));
*where += sizeof(line_entry->l_lnno);
-#else /* CROSS_ASSEMBLE */
+#else /* CROSS_COMPILE */
append(where, (char *) line_entry, LINESZ);
-#endif /* CROSS_ASSEMBLE */
+#endif /* CROSS_COMPILE */
} /* for each line number */
@@ -1538,13 +1542,13 @@ char **where;
{
symbolS *symbolP;
-#ifdef CROSS_ASSEMBLE
+#ifdef CROSS_COMPILE
/* Gotta do md_ byte-ordering stuff for string_byte_count first - KWK */
md_number_to_chars(*where, string_byte_count, sizeof(string_byte_count));
where += sizeof(string_byte_count);
-#else /* CROSS_ASSEMBLE */
+#else /* CROSS_COMPILE */
append(where, (char *) &string_byte_count, (unsigned long) sizeof(string_byte_count));
-#endif /* CROSS_ASSEMBLE */
+#endif /* CROSS_COMPILE */
for (symbolP = symbol_rootP; symbolP; symbolP = symbol_next(symbolP)) {
if (SF_GET_STRING(symbolP)) {
diff --git a/gas/config/obj-coff.h b/gas/config/obj-coff.h
index 6ed5c84..8ee3fe7 100644
--- a/gas/config/obj-coff.h
+++ b/gas/config/obj-coff.h
@@ -162,7 +162,7 @@ typedef struct {
/* The zeroes if symbol name is longer than 8 chars */
#define S_GET_ZEROES(s) ((s)->sy_symbol.ost_entry.n_zeroes)
/* The value of the symbol */
-#define S_GET_VALUE(s) ((s)->sy_symbol.ost_entry.n_value)
+#define S_GET_VALUE(s) ((unsigned) ((s)->sy_symbol.ost_entry.n_value))
/* The numeric value of the segment */
#define S_GET_SEGMENT(s) (N_TYPE_seg[(s)->sy_symbol.ost_entry.n_scnum+4])
/* The data type */