From b11fb93989a2d454f91f5856140404aef9e2a7fb Mon Sep 17 00:00:00 2001 From: Ken Raeburn Date: Sun, 28 Aug 1994 07:59:06 +0000 Subject: [PATCH] Conversion to autoconf: * acconfig.h, aclocal.m4: New files. * configure.in: Rewritten (except for some target-specific code) for autoconf. * conf.in, configure: New files, generated from the above. * Makefile.in: Changed magic sequence indicating insertion of makefile fragments. (VPATH, srcdir, CC, LIBS, OBJS dependencies): Use @-substitutions from configure. (LINKED_HEADERS): Deleted a.out.gnu.h, a.out.h, and host.h. (config.status, configure): Rewrite rules. (config-stamp): Depend on conf. Skip variables that configure is now substituting itself. (*.o dependencies): Deleted host.h. (distclean, realclean): Don't delete host.h. * as.c: Don't include stdio.h, string.h, sys/types.h. Include signal.h after as.h. * as.h: Include alloca-conf.h first. Include ctype.h, string.h, strings.h, stdlib.h, unistd.h, sys/types.h, fopen-bin.h, fopen-same.h, as suggested by autoconf test results. [BROKEN_ASSERT]: Don't include assert.h. (strdup): Declare. (volatile, const): Define if not __STDC__ and not already defined. (malloc, realloc) [NEED_MALLOC_DECLARATION]: Declare. (free) [NEED_FREE_DECLARATION]: Declare. * gasp.c: Include config.h, stdlib.h (if HAVE_STDLIB_H). Don't include host.h. (malloc) [NEED_MALLOC_DECLARATION]: Declare. * messages.c: Include as.h first. Include errno.h only if HAVE_ERRNO_H. If HAVE_VARARGS_H and not __STDC__, undefine HAVE_STDARG_H. Set NO_STDARG and NO_VARARGS as appropriate. * doc/Makefile.in (srcdir, INSTALL, INSTALL_PROGRAM, INSTALL_DATA): Use autoconf @-substitutions. --- gas/ChangeLog | 34 + gas/Makefile.in | 100 +-- gas/acconfig.h | 43 + gas/aclocal.m4 | 69 ++ gas/as.c | 10 +- gas/as.h | 95 ++- gas/conf.in | 97 +++ gas/configure | 1963 ++++++++++++++++++++++++++++++++++++++++++++++ gas/configure.in | 340 ++++---- gas/gasp.c | 10 +- 10 files changed, 2526 insertions(+), 235 deletions(-) create mode 100644 gas/acconfig.h create mode 100644 gas/aclocal.m4 create mode 100644 gas/conf.in create mode 100755 gas/configure diff --git a/gas/ChangeLog b/gas/ChangeLog index b382dd50d9..58b01d413a 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,5 +1,39 @@ Sat Aug 27 20:26:12 1994 Ken Raeburn (raeburn@kr-laptop.cygnus.com) + Conversion to autoconf: + * acconfig.h, aclocal.m4: New files. + * configure.in: Rewritten (except for some target-specific code) + for autoconf. + * conf.in, configure: New files, generated from the above. + * Makefile.in: Changed magic sequence indicating insertion of + makefile fragments. + (VPATH, srcdir, CC, LIBS, OBJS dependencies): Use @-substitutions + from configure. + (LINKED_HEADERS): Deleted a.out.gnu.h, a.out.h, and host.h. + (config.status, configure): Rewrite rules. + (config-stamp): Depend on conf. Skip variables that configure is + now substituting itself. + (*.o dependencies): Deleted host.h. + (distclean, realclean): Don't delete host.h. + * as.c: Don't include stdio.h, string.h, sys/types.h. Include + signal.h after as.h. + * as.h: Include alloca-conf.h first. Include ctype.h, string.h, + strings.h, stdlib.h, unistd.h, sys/types.h, fopen-bin.h, + fopen-same.h, as suggested by autoconf test results. + [BROKEN_ASSERT]: Don't include assert.h. + (strdup): Declare. + (volatile, const): Define if not __STDC__ and not already defined. + (malloc, realloc) [NEED_MALLOC_DECLARATION]: Declare. + (free) [NEED_FREE_DECLARATION]: Declare. + * gasp.c: Include config.h, stdlib.h (if HAVE_STDLIB_H). Don't + include host.h. + (malloc) [NEED_MALLOC_DECLARATION]: Declare. + * messages.c: Include as.h first. Include errno.h only if + HAVE_ERRNO_H. If HAVE_VARARGS_H and not __STDC__, undefine + HAVE_STDARG_H. Set NO_STDARG and NO_VARARGS as appropriate. + * doc/Makefile.in (srcdir, INSTALL, INSTALL_PROGRAM, + INSTALL_DATA): Use autoconf @-substitutions. + * input-file.c: Don't include assert.h here, 'cause as.h already includes it. diff --git a/gas/Makefile.in b/gas/Makefile.in index 332e9d812a..1b85f2b751 100644 --- a/gas/Makefile.in +++ b/gas/Makefile.in @@ -24,7 +24,8 @@ # Variables that exist for you to override. # See below for how to change them for certain systems. -srcdir = . +VPATH = @srcdir@ +srcdir = @srcdir@ srcroot = $(srcdir)/.. prefix = /usr/local @@ -66,6 +67,7 @@ BISON = bison MAKEINFO = makeinfo TEXI2DVI = texi2dvi RANLIB = ranlib +CC = @CC@ CFLAGS = -g MAKEOVERRIDES= @@ -189,9 +191,6 @@ REAL_HEADERS = \ $(srcdir)/ecoff.h LINKED_HEADERS = \ - a.out.gnu.h \ - a.out.h \ - host.h \ targ-env.h \ targ-cpu.h \ obj-format.h \ @@ -199,7 +198,7 @@ LINKED_HEADERS = \ HEADERS = $(LINKED_HEADERS) $(REAL_HEADERS) -#### host, target, and site specific Makefile frags come in here. +# @target_frag@ OBJS = \ targ-cpu.o \ @@ -262,8 +261,7 @@ ALL_CFLAGS = $(INTERNAL_CFLAGS) $(CROSS) $(CFLAGS) $(HDEFINES) $(TDEFINES) # How to link with both our special library facilities # and the system's installed libraries. -LIBS = $(OPCODES_LIB) $(BFDLIB) $(LOCAL_LOADLIBES) \ - ../libiberty/libiberty.a +LIBS = @OPCODES_LIB@ @BFDLIB@ $(LOCAL_LOADLIBES) ../libiberty/libiberty.a # Specify the directories to be searched for header files. # Both . and srcdir are used, in that order, @@ -283,11 +281,13 @@ SUBDIR_INCLUDES = -I.. -I$(srcdir) -I$(srcdir)/config # Files to be copied away after each stage in building. STAGESTUFF = *.o as.new gasp.new -$(OBJS): $(ALL_OBJ_DEPS) +$(OBJS): @ALL_OBJ_DEPS@ as.new: $(OBJS) $(LIBS) $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o as.new $(OBJS) $(LIBS) $(LOADLIBES) +$(OBJS): config.h + gasp.new: gasp.o $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o gasp.new gasp.o $(LIBS) $(LOADLIBES) @@ -298,122 +298,126 @@ check: @(here=`pwd` ; export here ; \ cd testsuite ; $(MAKE) $(FLAGS_TO_PASS) $(CHECKFLAGS) check) -config.status: - @echo You must configure gas. Look at the INSTALL file for details. - @false +config.status: configure + if [ -r config.status ]; then \ + sh $(srcdir)/config.status --recheck ; \ + else \ + echo You must configure gas. Look at the INSTALL file for details. ; \ + exit 1 ; \ + fi + +configure: configure.in aclocal.m4 acconfig.h + (cd ${srcdir} && \ + autoheader configure.in > conf-in.h && \ + ../move-if-change conf-in.h conf.in) + (cd ${srcdir} && autoconf ) config.h: config-stamp ; @true -config-stamp: Makefile +config-stamp: Makefile conf -rm -f config.new config-stamp - echo '#ifndef TARGET_CPU' > config.new - echo '#define TARGET_CPU "$(target_cpu)"' >> config.new - echo '#define TARGET_ALIAS "$(target_alias)"' >> config.new - echo '#define TARGET_CANONICAL "$(target_canonical)"' >> config.new - echo '#define GAS_VERSION "$(VERSION)"' >> config.new - if [ "$(defs)" != "" ]; then \ - for d in $(defs) ; do \ - echo "#define $$d" >> config.new ; \ - done ; \ - else true; fi - echo '#endif /* TARGET_CPU */' >> config.new + echo '#ifndef GAS_VERSION' > config.new + echo '#define GAS_VERSION "$(VERSION)"' >> config.new + echo '' >> config.new + cat conf >> config.new + echo '#endif /* GAS_VERSION */' >> config.new $(srcdir)/../move-if-change config.new config.h touch config-stamp # Compiling object files from source files. gasp.o : gasp.c -app.o : app.c as.h host.h targ-env.h obj-format.h \ +app.o : app.c as.h targ-env.h obj-format.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 output-file.h \ +as.o : as.c as.h targ-env.h obj-format.h output-file.h \ targ-cpu.h struc-symbol.h \ write.h flonum.h bignum.h expr.h frags.h hash.h read.h symbols.h subsegs.h \ tc.h obj.h config.h -atof-generic.o : atof-generic.c as.h host.h targ-env.h obj-format.h \ +atof-generic.o : atof-generic.c as.h targ-env.h obj-format.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 \ +bignum-copy.o : bignum-copy.c as.h \ targ-env.h obj-format.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 \ +cond.o : cond.c as.h targ-env.h obj-format.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 -debug.o : debug.c as.h host.h targ-env.h obj-format.h \ +debug.o : debug.c as.h targ-env.h obj-format.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 \ +expr.o : expr.c as.h targ-env.h obj-format.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-konst.o : flonum-konst.c flonum.h bignum.h -flonum-copy.o : flonum-copy.c as.h host.h targ-env.h obj-format.h \ +flonum-copy.o : flonum-copy.c as.h targ-env.h obj-format.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 \ +frags.o : frags.c as.h targ-env.h obj-format.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 -hash.o : hash.c as.h host.h targ-env.h obj-format.h \ +hash.o : hash.c as.h targ-env.h obj-format.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 \ +input-file.o : input-file.c as.h \ targ-env.h obj-format.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 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 \ + as.h targ-env.h obj-format.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 -listing.o : listing.c as.h host.h targ-env.h flonum.h bignum.h \ +listing.o : listing.c as.h targ-env.h flonum.h bignum.h \ listing.h obj-format.h targ-cpu.h struc-symbol.h write.h expr.h \ frags.h hash.h read.h symbols.h tc.h obj.h input-file.h subsegs.h -literal.o : literal.c subsegs.h as.h host.h targ-env.h obj-format.h \ +literal.o : literal.c subsegs.h as.h targ-env.h obj-format.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 -messages.o : messages.c as.h host.h targ-env.h obj-format.h \ +messages.o : messages.c as.h targ-env.h obj-format.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.o : output-file.c as.h host.h targ-env.h obj-format.h \ +output-file.o : output-file.c as.h targ-env.h obj-format.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 \ +read.o : read.c as.h targ-env.h obj-format.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.o : subsegs.c as.h host.h targ-env.h obj-format.h \ +subsegs.o : subsegs.c as.h targ-env.h obj-format.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 -symbols.o : symbols.c as.h host.h targ-env.h obj-format.h \ +symbols.o : symbols.c as.h targ-env.h obj-format.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 -write.o : write.c as.h host.h targ-env.h obj-format.h \ +write.o : write.c as.h targ-env.h obj-format.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 output-file.h -ecoff.o : ecoff.c as.h host.h targ-env.h obj-format.h \ +ecoff.o : ecoff.c as.h targ-env.h obj-format.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 \ ecoff.h $(srcdir)/../include/coff/internal.h \ $(srcdir)/../include/coff/sym.h $(srcdir)/../include/coff/ecoff.h \ $(srcdir)/../include/coff/symconst.h $(srcdir)/../include/aout/stab_gnu.h -stabs.o : stabs.c as.h host.h targ-env.h obj-format.h \ +stabs.o : stabs.c as.h targ-env.h obj-format.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 $(srcdir)/../include/aout/stab_gnu.h xmalloc.o : xmalloc.c -atof-targ.o : atof-targ.c as.h host.h targ-env.h obj-format.h \ +atof-targ.o : atof-targ.c as.h targ-env.h obj-format.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 \ +obj-format.o : obj-format.c as.h targ-env.h obj-format.h \ targ-cpu.h struc-symbol.h \ write.h flonum.h bignum.h expr.h frags.h hash.h read.h \ subsegs.h symbols.h tc.h obj.h @@ -444,7 +448,7 @@ distclean realclean: clean-here @if [ -d testsuite ] ; then \ cd testsuite ; $(MAKE) $(FLAGS_TO_PASS) $@ ; \ else true; fi - -rm -f config.status Makefile host.h targ-env.h targ-cpu.h \ + -rm -f config.status Makefile targ-env.h targ-cpu.h \ targ-cpu.c obj-format.h obj-format.c atof-targ.c TAGS \ config-stamp config.h diff --git a/gas/acconfig.h b/gas/acconfig.h new file mode 100644 index 0000000000..51ed5c8024 --- /dev/null +++ b/gas/acconfig.h @@ -0,0 +1,43 @@ +/* Should gas use high-level BFD interfaces? */ +#undef BFD_ASSEMBLER + +/* Some assert/preprocessor combinations are incapable of handling + certain kinds of constructs in the argument of assert. For example, + quoted strings (if requoting isn't done right) or newlines. */ +#undef BROKEN_ASSERT + +/* If we aren't doing cross-assembling, some operations can be optimized, + since byte orders and value sizes don't need to be adjusted. */ +#undef CROSS_COMPILE + +/* Some IBM compilers can't handle some of the (rather basic) constructs + used in the 68k support code. */ +#undef IBM_COMPILER_SUX + +/* Some gas code wants to know these parameters. */ +#undef TARGET_ALIAS +#undef TARGET_CPU +#undef TARGET_CANONICAL +#undef TARGET_OS +#undef TARGET_VENDOR + +/* Some operating systems, for example DOS, require the use of "wb" mode when + opening a binary file for writing. If only "w" is used, the file will not + be correct. However, some other systems reject such a mode. This indicates + which ../include/fopen-*.h header file we want to include, so that we can + get macros that'll do the right thing for this system. */ +#undef WANT_FOPEN_BIN + +/* Sometimes the system header files don't declare malloc and realloc. */ +#undef NEED_MALLOC_DECLARATION + +/* Sometimes the system header files don't declare free. */ +#undef NEED_FREE_DECLARATION + +/* Sometimes errno.h doesn't declare errno itself. */ +#undef NEED_ERRNO_DECLARATION + +#undef MANY_SEGMENTS + +/* Needed only for sparc configuration */ +#undef sparcv9 diff --git a/gas/aclocal.m4 b/gas/aclocal.m4 new file mode 100644 index 0000000000..7d614bd53f --- /dev/null +++ b/gas/aclocal.m4 @@ -0,0 +1,69 @@ +dnl +dnl The autoconf 1.107 version of this doesn't substitute variables +dnl in the names of the links or their targets. This is a problem... +dnl +undefine([AC_OUTPUT_LINKS])dnl +define(AC_OUTPUT_LINKS, +[EOF + +cat >> ${CONFIG_STATUS} <> ${CONFIG_STATUS} <<\EOF +while test -n "${ac_files}"; do + set ${ac_links}; ac_link=[$]1; shift; ac_links=[$]* + set ${ac_files}; ac_file=[$]1; shift; ac_files=[$]* + + echo "linking ${ac_link} to ${srcdir}/${ac_file}" + + if test ! -r ${srcdir}/${ac_file}; then + AC_MSG_ERROR(${srcdir}/${ac_file}: File not found) + fi + rm -f ${ac_link} + # Make a symlink if possible; otherwise try a hard link. + if ln -s ${srcdir}/${ac_file} ${ac_link} 2>/dev/null || + ln ${srcdir}/${ac_file} ${ac_link}; then : + else + AC_MSG_ERROR(can not link ${ac_link} to ${srcdir}/${ac_file}) + fi +done +])dnl +dnl +dnl This ugly hack is needed because the Cygnus configure script won't +dnl tell us what CC is going to be, and "cc" isn't always right. (The +dnl top-level Makefile will always override anything we choose here, so +dnl the usual gcc/cc selection is useless.) +dnl +dnl It knows where it is in the tree; don't try using it elsewhere. +dnl +undefine([AC_PROG_CC])dnl +define(AC_PROG_CC, +[AC_BEFORE([$0], [AC_PROG_CPP])dnl +AC_PROVIDE([$0])dnl +dnl +dnl The ugly bit... +dnl +AC_MSG_CHECKING([for CC]) +dnl Don't bother with cache. +test -z "$CC" && CC=`egrep '^CC *=' ../Makefile | tail -1 | sed 's/^CC *= *//'` +test -z "$CC" && CC=cc +AC_MSG_RESULT(setting CC to $CC) +AC_SUBST(CC) +dnl +dnl +# Find out if we are using GNU C, under whatever name. +cat > conftest.c < conftest.out 2>&1 +if egrep yes conftest.out >/dev/null 2>&1; then + GCC=yes +else + GCC= +fi +rm -f conftest* +])dnl diff --git a/gas/as.c b/gas/as.c index 1694fd59c1..53613e98fc 100644 --- a/gas/as.c +++ b/gas/as.c @@ -35,20 +35,14 @@ #include "ansidecl.h" #include "libiberty.h" -#include -#include - -#ifdef _POSIX_SOURCE -#include /* For pid_t in signal.h */ -#endif -#include - #define COMMON #include "as.h" #include "subsegs.h" #include "output-file.h" +#include + #ifndef SIGTY #ifdef __STDC__ #define SIGTY void diff --git a/gas/as.h b/gas/as.h index c34de04830..2ece3781e6 100644 --- a/gas/as.h +++ b/gas/as.h @@ -37,11 +37,38 @@ /* These #defines are for parameters of entire assembler. */ -/* These #includes are for type definitions etc. */ +/* For some systems, this is required to be first. */ +#include "../libiberty/alloca-conf.h" +/* Now, tend to the rest of the configuration. */ #include "config.h" +/* System include files first... */ #include +#include +#ifdef HAVE_STRING_H +#include +#else +#include +#endif +#ifdef HAVE_STDLIB_H +#include +#endif +#ifdef HAVE_UNISTD_H +#include +#endif +#ifdef HAVE_SYS_TYPES_H +/* for size_t, pid_t */ +#include +#endif + +/* Some systems do declare this, but this seems to be the universal + declaration, though the parameter type varies. (It ought to use + `const' but many systems prototype it without.) Include it here + for systems that don't declare it. If conflicts arise, just add + another autoconf test... */ +extern char *strdup (/* const char * */); + #include /* The first getopt value for machine-independent long options. 150 isn't special; it's just an arbitrary non-ASCII char value. */ @@ -53,14 +80,55 @@ #ifdef DEBUG #undef NDEBUG #endif +/* Handle lossage with assert.h. */ +#ifndef BROKEN_ASSERT #include +#else /* BROKEN_ASSERT */ +#ifndef NDEBUG +#define assert(p) ((p) ? 0 : (abort(), 0)) +#else +#define assert(p) ((p), 0) +#endif +#endif /* BROKEN_ASSERT */ + +/* Now GNU header files... */ #include #ifdef BFD_ASSEMBLER #include #endif -#include "host.h" -#include "flonum.h" + +#ifdef WANT_FOPEN_BIN +#include "fopen-bin.h" +#else +#include "fopen-same.h" +#endif + +/* This doesn't get taken care of by ansidecl.h. */ +#if !defined (__STDC__) && !defined (volatile) +#define volatile +#endif + +/* This doesn't get taken care of anywhere. */ +#if !defined (__GNUC__) && !defined (inline) +#define inline +#endif + +/* Other stuff from config.h. */ +#ifdef NEED_MALLOC_DECLARATION +extern PTR malloc (); +extern PTR realloc (); +#endif +#ifdef NEED_FREE_DECLARATION +extern void free (); +#endif + +#ifdef BFD_ASSEMBLER +/* This one doesn't get declared, but we're using it anyways. This + should be fixed -- either it's part of the external interface or + it's not. */ +extern PTR bfd_alloc_by_size_t PARAMS ((bfd *abfd, size_t sz)); +#endif /* Make Saber happier on obstack.h. */ #ifdef SABER @@ -92,8 +160,12 @@ #endif #ifndef FOPEN_WB +#ifdef GO32 +#include "fopen-bin.h" +#else #include "fopen-same.h" #endif +#endif #define obstack_chunk_alloc xmalloc #define obstack_chunk_free xfree @@ -111,6 +183,7 @@ system, just delete it. */ extern char *strstr (); +#include "flonum.h" /* These are assembler-wide concepts */ @@ -142,15 +215,6 @@ typedef addressT valueT; #else #define know(p) /* know() checks are no-op.ed */ #endif - -#if defined (BROKEN_ASSERT) && !defined (NDEBUG) -/* Used on machines where the "assert" macro is buggy. (For example, on the - RS/6000, Reiser-cpp substitution is done to put the condition into a - string, so if the condition contains a string, parse errors result.) If - the condition fails, just drop core file. */ -#undef assert -#define assert(p) ((p) ? 0 : (abort (), 0)) -#endif /* input_scrub.c */ @@ -224,8 +288,8 @@ extern int section_alignment[]; extern segT reg_section, expr_section; /* Shouldn't these be eliminated someday? */ extern segT text_section, data_section, bss_section; -#define absolute_section (&bfd_abs_section) -#define undefined_section (&bfd_und_section) +#define absolute_section bfd_abs_section_ptr +#define undefined_section bfd_und_section_ptr #else #define reg_section SEG_REGISTER #define expr_section SEG_EXPR @@ -463,10 +527,11 @@ struct symbol; valueT add_to_literal_pool PARAMS ((struct symbol *, valueT, segT, int)); #endif +#include "expr.h" /* Before targ-*.h */ + /* this one starts the chain of target dependant headers */ #include "targ-env.h" -#include "expr.h" #include "struc-symbol.h" #include "write.h" #include "frags.h" diff --git a/gas/conf.in b/gas/conf.in new file mode 100644 index 0000000000..2782619661 --- /dev/null +++ b/gas/conf.in @@ -0,0 +1,97 @@ +/* conf.in. Generated automatically from configure.in by autoheader. */ + +/* Define if using alloca.c. */ +#undef C_ALLOCA + +/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems. + This function is required for alloca.c support on those systems. */ +#undef CRAY_STACKSEG_END + +/* Define if you have and it should be used (not on Ultrix). */ +#undef HAVE_ALLOCA_H + +/* Define as __inline if that's what the C compiler calls it. */ +#undef inline + +/* If using the C implementation of alloca, define if you know the + direction of stack growth for your system; otherwise it will be + automatically deduced at run-time. + STACK_DIRECTION > 0 => grows toward higher addresses + STACK_DIRECTION < 0 => grows toward lower addresses + STACK_DIRECTION = 0 => direction of growth unknown + */ +#undef STACK_DIRECTION + +/* Define if you have the ANSI C header files. */ +#undef STDC_HEADERS + +/* Should gas use high-level BFD interfaces? */ +#undef BFD_ASSEMBLER + +/* Some assert/preprocessor combinations are incapable of handling + certain kinds of constructs in the argument of assert. For example, + quoted strings (if requoting isn't done right) or newlines. */ +#undef BROKEN_ASSERT + +/* If we aren't doing cross-assembling, some operations can be optimized, + since byte orders and value sizes don't need to be adjusted. */ +#undef CROSS_COMPILE + +/* Some IBM compilers can't handle some of the (rather basic) constructs + used in the 68k support code. */ +#undef IBM_COMPILER_SUX + +/* Some gas code wants to know these parameters. */ +#undef TARGET_ALIAS +#undef TARGET_CPU +#undef TARGET_CANONICAL +#undef TARGET_OS +#undef TARGET_VENDOR + +/* Some operating systems, for example DOS, require the use of "wb" mode when + opening a binary file for writing. If only "w" is used, the file will not + be correct. However, some other systems reject such a mode. This indicates + which ../include/fopen-*.h header file we want to include, so that we can + get macros that'll do the right thing for this system. */ +#undef WANT_FOPEN_BIN + +/* Sometimes the system header files don't declare malloc and realloc. */ +#undef NEED_MALLOC_DECLARATION + +/* Sometimes the system header files don't declare free. */ +#undef NEED_FREE_DECLARATION + +/* Sometimes errno.h doesn't declare errno itself. */ +#undef NEED_ERRNO_DECLARATION + +#undef MANY_SEGMENTS + +/* Needed only for sparc configuration */ +#undef sparcv9 + +/* Define if you have the header file. */ +#undef HAVE_ERRNO_H + +/* Define if you have the header file. */ +#undef HAVE_MEMORY_H + +/* Define if you have the header file. */ +#undef HAVE_STDARG_H + +/* Define if you have the header file. */ +#undef HAVE_STDLIB_H + +/* Define if you have the header file. */ +#undef HAVE_STRING_H + +/* Define if you have the header file. */ +#undef HAVE_STRINGS_H + +/* Define if you have the header file. */ +#undef HAVE_SYS_TYPES_H + +/* Define if you have the header file. */ +#undef HAVE_UNISTD_H + +/* Define if you have the header file. */ +#undef HAVE_VARARGS_H diff --git a/gas/configure b/gas/configure new file mode 100755 index 0000000000..5231cfb5c7 --- /dev/null +++ b/gas/configure @@ -0,0 +1,1963 @@ +#!/bin/sh +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 1.107 +# Copyright (C) 1991, 1992, 1993, 1994 Free Software Foundation, Inc. +# +# This configure script 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. +# +# This script 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., 675 Mass Ave, Cambridge, MA 02139, USA. + +ac_help= +ac_help="${ac_help} + bfd-assembler use BFD back end for writing object files" +# Save the original args to write them into config.status later. +configure_args="$@" + +# Omit some internal, obsolete, or unimplemented options to make the +# list less imposing. +ac_usage="Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --version print the version of autoconf that created configure +Directories: + --exec-prefix=PREFIX install host dependent files in PREFIX [/usr/local] + --prefix=PREFIX install host independent files in PREFIX [/usr/local] + --srcdir=DIR find the sources in DIR [configure dir or ..] +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +--enable and --with options recognized:$ac_help" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +norecursion= +prefix=NONE +program_prefix= +program_suffix= +program_transform_name= +silent= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE + +# Initialize some other variables. +subdirs= + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept (but ignore some of) the important Cygnus configure + # options, so we can diagnose typos. + + case "$ac_option" in + + -build | --build | --buil | --bui | --bu | --b) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=* | --b=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + cat << EOF +$ac_usage +EOF + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -norecursion | --norecursion | --norecursio | --norecursi \ + | --norecurs | --norecur | --norecu | --norec | --nore | --nor) + norecursion=yes ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 1.107" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core $ac_clean_files; exit 1' 1 2 15 +trap 'rm -fr confdefs* $ac_clean_files' 0 + +# File descriptor usage: +# 0 unused; standard input +# 1 file creation +# 2 errors and warnings +# 3 unused; some systems may open it to /dev/tty +# 4 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 4>/dev/null +else + exec 4>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Save the original args if we used an alternate arg parser. +ac_configure_temp="${configure_args-$@}" +# Strip out --no-create and --norecursion so they do not pile up. +# Also quote any args containing spaces. +configure_args= +for ac_arg in $ac_configure_temp; do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -norecursion | --norecursion | --norecursio | --norecursi \ + | --norecurs | --norecur | --norecu | --norec | --nore | --nor) ;; + *[" "]*) configure_args="$configure_args '$ac_arg'" ;; + *) configure_args="$configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set LANG and LC_ALL to C if already set. +# These must not be set unconditionally because not all systems understand +# e.g. LANG=C (notably SCO). +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LANG+set}" = set; then LANG=C; export LANG; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=as.h + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: can not find sources in ${ac_confdir} or .." 1>&2; exit 1; } + else + { echo "configure: can not find sources in ${srcdir}" 1>&2; exit 1; } + fi +fi + +# Prefer explicitly selected file to automatically selected ones. +if test ! -r "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE=$prefix/lib/config.site + else + CONFIG_SITE=/usr/local/lib/config.site + fi + # System dependent files override system independent ones. + if test "x$exec_prefix" != xNONE && test "x$exec_prefix" != "x$prefix"; then + CONFIG_SITE="$CONFIG_SITE $exec_prefix/lib/config.site" + fi +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='${CPP} $CPPFLAGS' +ac_compile='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS conftest.${ac_ext} -o conftest $LIBS 1>&5 2>&5' + + +# Check whether --enable-bfd-assembler or --disable-bfd-assembler was given. +enableval="$enable_bfd_assembler" +if test -n "$enableval"; then + case "${enableval}" in + yes) need_bfd=yes bfd_gas=yes ;; + no) ;; + *) { echo "configure: bad value ${enableval} given for bfd-assembler option" 1>&2; exit 1; } ;; +esac +fi + +# Generate a header file -- gets more post-processing by Makefile later. + + +ac_aux_dir= +for ac_dir in `cd $srcdir;pwd`/.. ${srcdir}/`cd $srcdir;pwd`/..; do + if test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir; break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: can not find install.sh in `cd $srcdir;pwd`/.. ${srcdir}/`cd $srcdir;pwd`/.." 1>&2; exit 1; } +fi +ac_config_guess=${ac_aux_dir}/config.guess +ac_config_sub=${ac_aux_dir}/config.sub +ac_configure=${ac_aux_dir}/configure # This should be Cygnus configure. +ac_install_sh="${ac_aux_dir}/install.sh -c" + +# Do some error checking and defaulting for the host and target type. +# The inputs are: +# configure --host=HOST --target=TARGET --build=BUILD NONOPT +# +# The rules are: +# 1. You are not allowed to specify --host, --target, and nonopt at the +# same time. +# 2. Host defaults to nonopt. +# 3. If nonopt is not specified, then host defaults to the current host, +# as determined by config.guess. +# 4. Target defaults to nonopt. +# 5. If nonopt is not specified, then target defaults to host. +# 6. build defaults to empty (but implicitly to host). + +# The aliases save the names the user supplied, while $host etc. +# will get canonicalized. +case $host---$target---$nonopt in +NONE---*---* | *---NONE---* | *---*---NONE) ;; +*) { echo "configure: can only configure for one host and one target at a time" 1>&2; exit 1; } ;; +esac + +# Make sure we can run config.sub. +if ${ac_config_sub} sun4 >/dev/null 2>&1; then : +else { echo "configure: can not run ${ac_config_sub}" 1>&2; exit 1; } +fi + +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi +echo $ac_n "checking host system type""... $ac_c" 1>&4 + +host_alias=$host +case "${host_alias}" in +NONE) + case $nonopt in + NONE) + if host_alias=`${ac_config_guess}`; then : + else { echo "configure: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${ac_config_sub} ${host_alias}` +host_cpu=`echo $host | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&4 + +echo $ac_n "checking target system type""... $ac_c" 1>&4 + +target_alias=$target +case "${target_alias}" in +NONE) + case $nonopt in + NONE) target_alias=$host_alias ;; + *) target_alias=$nonopt ;; + esac ;; +esac + +target=`${ac_config_sub} ${target_alias}` +target_cpu=`echo $target | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\1/'` +target_vendor=`echo $target | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\2/'` +target_os=`echo $target | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\3/'` +echo "$ac_t""$target" 1>&4 + +echo $ac_n "checking build system type""... $ac_c" 1>&4 + +build_alias=$build +case "${build_alias}" in +NONE) build= build_alias= ;; +*) +build=`${ac_config_sub} ${build_alias}` +build_cpu=`echo $build | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\3/'` +;; +esac +echo "$ac_t""$build" 1>&4 + + + +emulation=generic + +# assign cpu type + +# check for architecture variants +case ${target_cpu} in + hppa*) cpu_type=hppa ;; + i[45]86) cpu_type=i386 ;; + m680[012346]0) cpu_type=m68k ;; + m68008) cpu_type=m68k ;; + m683??) cpu_type=m68k ;; + m8*) cpu_type=m88k ;; + mips*el) cpu_type=mips endian=little;; + mips*) cpu_type=mips endian=big ;; + powerpc*) cpu_type=ppc ;; + rs6000*) cpu_type=ppc ;; + sparc64) cpu_type=sparc obj_format=elf cat >> confdefs.h <<\EOF +#define sparcv9 1 +EOF + ;; + sparclite*) cpu_type=sparc ;; + *) cpu_type=${target_cpu} ;; +esac + +# do we need the opcodes library? +case ${cpu_type} in + alpha | vax) + ;; + *) + OPCODES_LIB="../opcodes/libopcodes.a" + ;; +esac + + +gas_target=${cpu_type} +generic_target=${cpu_type}-${target_vendor}-${target_os} +dev=no + +# assign object format +case ${generic_target} in + a29k-amd-udi) obj_format=coff gas_target=ebmon29k ;; + a29k-amd-ebmon) obj_format=coff gas_target=ebmon29k ;; + + alpha-*-netware*) obj_format=ecoff ;; + alpha-*-osf*) obj_format=ecoff ;; + + hppa-*-*elf*) obj_format=elf emulation=hppa ;; + hppa-*-osf*) obj_format=som emulation=hppa ;; + hppa-*-hpux*) obj_format=som emulation=hppa ;; + hppa-*-bsd*) obj_format=som emulation=hppa ;; + hppa-*-hiux*) obj_format=som emulation=hppa ;; + + h8300-*-coff) obj_format=coff ;; + + i386-ibm-aix*) obj_format=coff gas_target=i386coff + emulation=i386aix ;; + i386-*-bsd*) obj_format=aout emulation=386bsd ;; + i386-*-netbsd0.8) obj_format=aout emulation=386bsd ;; + i386-*-netbsd*) obj_format=aout emulation=netbsd ;; + i386-*-linux*elf*) obj_format=elf emulation=linux ;; + i386-*-linux*coff*) obj_format=coff emulation=linux + gas_target=i386coff ;; + i386-*-linux*) obj_format=aout emulation=linux ;; + i386-*-lynxos*) obj_format=coff gas_target=i386coff + emulation=lynx ;; + i386-*-sysv4* | i386-*-solaris* | i386-*-elf) + obj_format=elf ;; + i386-*-coff | i386-*-sysv* | i386-*-sco* | i386-*-isc*) + obj_format=coff gas_target=i386coff ;; + i386-*-vsta) obj_format=aout ;; + i386-*-go32) obj_format=coff gas_target=i386coff ;; + i386-*-mach* | i386-*-gnu*) + obj_format=aout emulation=mach bfd_gas=yes ;; + + i960-*-bout) obj_format=bout ;; + i960-*-coff) obj_format=coff emulation=ic960 gas_target=ic960coff ;; + i960-*-nindy*) obj_format=bout ;; + i960-*-vxworks4*) obj_format=bout ;; + i960-*-vxworks5.0) obj_format=bout ;; + i960-*-vxworks5.*) obj_format=coff emulation=ic960 gas_target=ic960coff ;; + i960-*-vxworks*) obj_format=bout ;; + + m68k-wrs-vxworks | m68k-ericsson-ose | m68k-*-sunos*) + obj_format=aout emulation=sun3 ;; + m68k-motorola-sysv) obj_format=coff gas_target=m68kcoff emulation=delta ;; + m68k-bull-sysv3*) obj_format=coff gas_target=m68kcoff emulation=dpx2 ;; + m68k-apollo-*) obj_format=coff gas_target=apollo emulation=apollo ;; + m68k-*-coff | m68k-*-sysv*) + obj_format=coff gas_target=m68kcoff ;; + m68k-*-hpux) obj_format=hp300 emulation=hp300 ;; + m68k-*-lynxos*) obj_format=coff gas_target=m68kcoff + emulation=lynx ;; + + m88k-*-coff*) obj_format=coff gas_target=m88kcoff ;; + + # don't change emulation like *-*-bsd does + mips-*-bsd*) bfd_gas=yes obj_format=aout gas_target=mips-lit ;; + mips-*-ultrix*) obj_format=ecoff gas_target=mips-lit ;; + mips-*-ecoff*) obj_format=ecoff + case "$endian" in + big) gas_target=mips-big ;; + *) gas_target=mips-lit ;; + esac + ;; + mips-*-ecoff*) obj_format=ecoff gas_target=mips-big ;; + mips-*-irix5*) obj_format=elf gas_target=mips-big ;; + mips-*-irix*) obj_format=ecoff gas_target=mips-big ;; + mips-*-riscos*) obj_format=ecoff gas_target=mips-big ;; + mips-*-sysv*) obj_format=ecoff gas_target=mips-big ;; + mips-*-elf*) obj_format=elf + case "$endian" in + big) gas_target=mips-big ;; + *) gas_target=mips-lit ;; + esac + ;; + ppc-*-aix*) obj_format=coff bfd_gas=yes ;; + ppc-*-elf*) obj_format=elf bfd_gas=yes ;; + ppc-*-netware*) obj_format=elf emulation=ppcnw ;; + ppc-*-sysv4*) obj_format=elf bfd_gas=yes ;; + + sh-*-coff) obj_format=coff ;; + + ns32k-pc532-mach*) obj_format=aout emulation=pc532 bfd_gas=yes ;; + ns32k-pc532-netbsd*) obj_format=aout emulation=netbsd532 bfd_gas=yes ;; + + sparc*-*-sunos4*) obj_format=aout emulation=sun3 bfd_gas=yes ;; + sparc*-*-aout | sparc*-*-vxworks) + obj_format=aout bfd_gas=yes ;; + sparc*-*-coff) obj_format=coff bfd_gas=yes ;; + sparc*-*-lynxos*) obj_format=coff bfd_gas=yes emulation=lynx ;; + sparc*-fujitsu-none) obj_format=aout bfd_gas=yes ;; + sparc*-*-elf | sparc*-*-solaris*) + obj_format=elf ;; + + vax-*-bsd* | vax-*-ultrix*) + obj_format=aout ;; + vax-*-vms) obj_format=vms ;; + + z8k-*-coff | z8k-*-sim) + obj_format=coff ;; + + *-*-aout | *-*-scout) + obj_format=aout ;; + *-*-nindy*) + obj_format=bout ;; + *-*-bsd*) + obj_format=aout emulation=sun3 ;; + *-*-generic) obj_format=generic ;; + *-*-xray | *-*-hms) obj_format=coff ;; + *-*-sim) obj_format=coff ;; + *-*-elf | *-*-sysv4* | *-*-solaris*) + echo "configure: warning: GAS support for ELF format is incomplete" 1>&2 + obj_format=elf dev=yes ;; + *-*-vxworks) obj_format=aout ;; + *-*-netware) obj_format=elf ;; +esac + +# Assign floating point type. Most processors with FP support +# IEEE FP. On those that don't support FP at all, usually IEEE +# is emulated. +case ${target_cpu} in + vax | tahoe ) atof=${target_cpu} ;; + *) atof=ieee ;; +esac + +case "${obj_format}" in + "") { echo "configure: GAS does not know what format to use for target ${target}" 1>&2; exit 1; } ;; +esac + + + +if [ ! -r ${srcdir}/config/tc-${cpu_type}.c ]; then + { echo "configure: GAS does not support target CPU ${cpu_type}" 1>&2; exit 1; } +fi + +if [ ! -r ${srcdir}/config/obj-${obj_format}.c ]; then + { echo "configure: GAS does not have support for object file format ${obj_format}" 1>&2; exit 1; } +fi + + +# and target makefile frag + +target_frag=${srcdir}/config/${gas_target}.mt + + +case ${bfd_gas}-${obj_format} in + yes-coff) need_bfd=yes ;; + no-coff) need_bfd=yes + cat >> confdefs.h <<\EOF +#define MANY_SEGMENTS 1 +EOF + ;; + *-elf) bfd_gas=yes ;; + *-ecoff) bfd_gas=yes ;; + *-som) bfd_gas=yes ;; + *) ;; +esac + +case ${with_bfd_assembler}-${bfd_gas} in + yes-yes | no-no) + # We didn't override user's choice. + ;; + no-yes) + echo "configure: warning: Use of BFD is required for ${target}; overriding config options." 1>&2 + ;; + no-preferred) + bfd_gas=no + ;; + *-preferred) + bfd_gas=yes + ;; + -*) + # User specified nothing. + ;; +esac + +reject_dev_configs=yes + +case ${reject_dev_configs}-${dev} in + yes-yes) # Oops. + { echo "configure: GAS does not support the ${generic_target} configuration." 1>&2; exit 1; } + ;; +esac + + + + +case "${bfd_gas}" in + yes) cat >> confdefs.h <<\EOF +#define BFD_ASSEMBLER 1 +EOF + + need_bfd=yes ;; +esac + +case "${need_bfd}" in + yes) BFDLIB=../bfd/libbfd.a + ALL_OBJ_DEPS="$ALL_OBJ_DEPS ../bfd/bfd.h" + ;; +esac + + + +case "x${host_canon}" in + x${target_canon}) ;; + *) cat >> confdefs.h <<\EOF +#define CROSS_COMPILE 1 +EOF +;; +esac + +cat >> confdefs.h <> confdefs.h <> confdefs.h <> confdefs.h <> confdefs.h <> confdefs.h <<\EOF +#define IBM_COMPILER_SUX 1 +EOF + ;; + i386-*-go32) + # Using fopen(..., "w") for a binary file breaks under DOS. + cat >> confdefs.h <<\EOF +#define WANT_FOPEN_BIN 1 +EOF + ;; +esac + +echo $ac_n "checking for CC""... $ac_c" 1>&4 +test -z "$CC" && CC=`egrep '^CC *=' ../Makefile | tail -1 | sed 's/^CC *= *//'` +test -z "$CC" && CC=cc +echo "$ac_t""setting CC to $CC" 1>&4 + +# Find out if we are using GNU C, under whatever name. +cat > conftest.c < conftest.out 2>&1 +if egrep yes conftest.out >/dev/null 2>&1; then + GCC=yes +else + GCC= +fi +rm -f conftest* + +# Make sure to not get an incompatible install: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&4 +if test -z "${INSTALL}"; then +if eval "test \"`echo '${'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&4 +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" + for ac_dir in $PATH; do + case "$ac_dir" in + ''|.|/etc|/usr/sbin|/usr/etc|/sbin|/usr/afsws/bin|/usr/ucb) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + for ac_prog in ginstall installbsd scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + # OSF/1 installbsd also uses dspmsg, but is usable. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_ifs" + # As a last resort, use the slow shell script. + test -z "$ac_cv_path_install" && ac_cv_path_install="$ac_install_sh" +fi + INSTALL="$ac_cv_path_install" +fi +echo "$ac_t""$INSTALL" 1>&4 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&4 +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then +if eval "test \"`echo '${'ac_cv_prog_CPP'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&4 +else + # This must be in double quotes, not single quotes, because CPP may get + # substituted into the Makefile and "${CC-cc}" will confuse make. + CPP="${CC-cc} -E" + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. + cat > conftest.${ac_ext} < +Syntax Error +EOF +# Some shells (Coherent) do redirections in the wrong order, so need +# the parens. +ac_err=`eval "($ac_cpp conftest.${ac_ext} >/dev/null) 2>&1"` +if test -z "$ac_err"; then + : +else + rm -rf conftest* + CPP="${CC-cc} -E -traditional-cpp" + cat > conftest.${ac_ext} < +Syntax Error +EOF +# Some shells (Coherent) do redirections in the wrong order, so need +# the parens. +ac_err=`eval "($ac_cpp conftest.${ac_ext} >/dev/null) 2>&1"` +if test -z "$ac_err"; then + : +else + rm -rf conftest* + CPP=/lib/cpp +fi +rm -f conftest* +fi +rm -f conftest* + ac_cv_prog_CPP="$CPP" +fi +fi +CPP="$ac_cv_prog_CPP" +echo "$ac_t""$CPP" 1>&4 +echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&4 +if eval "test \"`echo '${'ac_cv_header_stdc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&4 +else + cat > conftest.${ac_ext} < +#include +#include +#include +EOF +# Some shells (Coherent) do redirections in the wrong order, so need +# the parens. +ac_err=`eval "($ac_cpp conftest.${ac_ext} >/dev/null) 2>&1"` +if test -z "$ac_err"; then + rm -rf conftest* + ac_cv_header_stdc=yes +else + rm -rf conftest* + ac_cv_header_stdc=no +fi +rm -f conftest* + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. +cat > conftest.${ac_ext} < +EOF +eval "$ac_cpp conftest.${ac_ext} > conftest.out 2>&1" +if egrep "memchr" conftest.out >/dev/null 2>&1; then + : +else + rm -rf conftest* + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. +cat > conftest.${ac_ext} < +EOF +eval "$ac_cpp conftest.${ac_ext} > conftest.out 2>&1" +if egrep "free" conftest.out >/dev/null 2>&1; then + : +else + rm -rf conftest* + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. +# If we cannot run a trivial program, we must be cross compiling. +echo $ac_n "checking whether cross-compiling""... $ac_c" 1>&4 +if eval "test \"`echo '${'ac_cv_c_cross'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&4 +else + if test "$cross_compiling" = yes; then + { echo "configure: can not run test program while cross compiling" 1>&2; exit 1; } +else +cat > conftest.${ac_ext} </dev/null; then + ac_cv_c_cross=no +else + ac_cv_c_cross=yes +fi +fi +rm -fr conftest* +fi +cross_compiling=$ac_cv_c_cross +echo "$ac_t""$ac_cv_c_cross" 1>&4 +if test "$cross_compiling" = yes; then + { echo "configure: can not run test program while cross compiling" 1>&2; exit 1; } +else +cat > conftest.${ac_ext} < +#define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int main () { int i; for (i = 0; i < 256; i++) +if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); +exit (0); } + +EOF +eval $ac_compile +if test -s conftest && (./conftest; exit) 2>/dev/null; then + : +else + ac_stdc_headers=no +fi +fi +rm -fr conftest* +fi +fi +echo "$ac_t""$ac_cv_header_stdc" 1>&4 +if test $ac_cv_header_stdc = yes; then + cat >> confdefs.h <<\EOF +#define STDC_HEADERS 1 +EOF + +fi + +for ac_hdr in string.h stdlib.h memory.h strings.h unistd.h stdarg.h varargs.h errno.h sys/types.h +do +ac_safe=`echo "${ac_hdr}" | tr './' '__'` +echo $ac_n "checking for ${ac_hdr}""... $ac_c" 1>&4 +if eval "test \"`echo '${'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&4 +else + cat > conftest.${ac_ext} < +EOF +# Some shells (Coherent) do redirections in the wrong order, so need +# the parens. +ac_err=`eval "($ac_cpp conftest.${ac_ext} >/dev/null) 2>&1"` +if test -z "$ac_err"; then + rm -rf conftest* + eval "ac_cv_header_$ac_safe=yes" +else + rm -rf conftest* + eval "ac_cv_header_$ac_safe=no" +fi +rm -f conftest* +fi +if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&4 + ac_tr_hdr=HAVE_`echo $ac_hdr | tr '[a-z]./' '[A-Z]__'` + cat >> confdefs.h <&4 +fi +done + + +# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works +# for constant arguments. Useless! +echo $ac_n "checking for working alloca.h""... $ac_c" 1>&4 +if eval "test \"`echo '${'ac_cv_header_alloca_h'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&4 +else + cat > conftest.${ac_ext} < +int main() { return 0; } +int t() { +char *p = alloca(2 * sizeof(int)); +; return 0; } +EOF +if eval $ac_compile; then + rm -rf conftest* + ac_cv_header_alloca_h=yes +else + rm -rf conftest* + ac_cv_header_alloca_h=no +fi +rm -f conftest* + +fi +echo "$ac_t""$ac_cv_header_alloca_h" 1>&4 +if test $ac_cv_header_alloca_h = yes; then + cat >> confdefs.h <<\EOF +#define HAVE_ALLOCA_H 1 +EOF + +fi + +echo $ac_n "checking for alloca""... $ac_c" 1>&4 +if eval "test \"`echo '${'ac_cv_func_alloca'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&4 +else + cat > conftest.${ac_ext} < +# else +# ifdef _AIX + #pragma alloca +# else +# ifndef alloca /* predefined by HP cc +Olibcalls */ +char *alloca (); +# endif +# endif +# endif +#endif + +int main() { return 0; } +int t() { +char *p = (char *) alloca(1); +; return 0; } +EOF +if eval $ac_compile; then + rm -rf conftest* + ac_cv_func_alloca=yes +else + rm -rf conftest* + ac_cv_func_alloca=no +fi +rm -f conftest* + +fi +echo "$ac_t""$ac_cv_func_alloca" 1>&4 +if test $ac_cv_func_alloca = yes; then + cat >> confdefs.h <<\EOF +#define HAVE_ALLOCA 1 +EOF + +fi + +if test $ac_cv_func_alloca = no; then + # The SVR3 libPW and SVR4 libucb both contain incompatible functions + # that cause trouble. Some versions do not even contain alloca or + # contain a buggy version. If you still want to use their alloca, + # use ar to extract alloca.o from them instead of compiling alloca.c. + ALLOCA=alloca.o + cat >> confdefs.h <<\EOF +#define C_ALLOCA 1 +EOF + + +echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&4 +if eval "test \"`echo '${'ac_cv_os_cray'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&4 +else + cat > conftest.${ac_ext} < conftest.out 2>&1" +if egrep "webecray" conftest.out >/dev/null 2>&1; then + rm -rf conftest* + ac_cv_os_cray=yes +else + rm -rf conftest* + ac_cv_os_cray=no +fi +rm -f conftest* + +fi +echo "$ac_t""$ac_cv_os_cray" 1>&4 +if test $ac_cv_os_cray = yes; then +echo $ac_n "checking for _getb67""... $ac_c" 1>&4 +if eval "test \"`echo '${'ac_cv_func__getb67'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&4 +else + cat > conftest.${ac_ext} < /* Arbitrary system header to define __stub macros. */ +int main() { return 0; } +int t() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub__getb67) || defined (__stub____getb67) +choke me +#else +/* Override any gcc2 internal prototype to avoid an error. */ +char _getb67(); _getb67(); +#endif + +; return 0; } +EOF +if eval $ac_compile; then + rm -rf conftest* + eval "ac_cv_func__getb67=yes" +else + rm -rf conftest* + eval "ac_cv_func__getb67=no" +fi +rm -f conftest* + +fi +if eval "test \"`echo '$ac_cv_func_'_getb67`\" = yes"; then + echo "$ac_t""yes" 1>&4 + cat >> confdefs.h <<\EOF +#define CRAY_STACKSEG_END _getb67 +EOF + +else + echo "$ac_t""no" 1>&4 +echo $ac_n "checking for GETB67""... $ac_c" 1>&4 +if eval "test \"`echo '${'ac_cv_func_GETB67'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&4 +else + cat > conftest.${ac_ext} < /* Arbitrary system header to define __stub macros. */ +int main() { return 0; } +int t() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_GETB67) || defined (__stub___GETB67) +choke me +#else +/* Override any gcc2 internal prototype to avoid an error. */ +char GETB67(); GETB67(); +#endif + +; return 0; } +EOF +if eval $ac_compile; then + rm -rf conftest* + eval "ac_cv_func_GETB67=yes" +else + rm -rf conftest* + eval "ac_cv_func_GETB67=no" +fi +rm -f conftest* + +fi +if eval "test \"`echo '$ac_cv_func_'GETB67`\" = yes"; then + echo "$ac_t""yes" 1>&4 + cat >> confdefs.h <<\EOF +#define CRAY_STACKSEG_END GETB67 +EOF + +else + echo "$ac_t""no" 1>&4 +echo $ac_n "checking for getb67""... $ac_c" 1>&4 +if eval "test \"`echo '${'ac_cv_func_getb67'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&4 +else + cat > conftest.${ac_ext} < /* Arbitrary system header to define __stub macros. */ +int main() { return 0; } +int t() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_getb67) || defined (__stub___getb67) +choke me +#else +/* Override any gcc2 internal prototype to avoid an error. */ +char getb67(); getb67(); +#endif + +; return 0; } +EOF +if eval $ac_compile; then + rm -rf conftest* + eval "ac_cv_func_getb67=yes" +else + rm -rf conftest* + eval "ac_cv_func_getb67=no" +fi +rm -f conftest* + +fi +if eval "test \"`echo '$ac_cv_func_'getb67`\" = yes"; then + echo "$ac_t""yes" 1>&4 + cat >> confdefs.h <<\EOF +#define CRAY_STACKSEG_END getb67 +EOF + +else + echo "$ac_t""no" 1>&4 +fi + +fi + +fi + +fi + +echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&4 +if eval "test \"`echo '${'ac_cv_c_stack_direction'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&4 +else + if test "$cross_compiling" = yes; then + echo "configure: warning: using default for cross-compiling" 1>&2 +ac_cv_c_stack_direction=0 + +else +cat > conftest.${ac_ext} < addr) ? 1 : -1; +} +main () +{ + exit (find_stack_direction() < 0); +} +EOF +eval $ac_compile +if test -s conftest && (./conftest; exit) 2>/dev/null; then + ac_cv_c_stack_direction=1 +else + ac_cv_c_stack_direction=-1 +fi +fi +rm -fr conftest* +fi +echo "$ac_t""$ac_cv_c_stack_direction" 1>&4 +cat >> confdefs.h <&4 +if eval "test \"`echo '${'ac_cv_c_inline'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&4 +else + if test "$GCC" = yes; then +cat > conftest.${ac_ext} <&4 +if test $ac_cv_c_inline = no; then + cat >> confdefs.h <<\EOF +#define inline __inline +EOF + +fi + + +# Some non-ANSI preprocessors botch requoting inside strings. That's bad +# enough, but on some of those systems, the assert macro relies on requoting +# working properly! +echo "checking for working assert macro" 1>&4 +cat > conftest.${ac_ext} < +#include +int main() { return 0; } +int t() { + +/* check for requoting problems */ +static int a, b, c, d; +static char *s; +assert (!strcmp(s, "foo bar baz quux")); +/* check for newline handling */ +assert (a == b + || c == d); + +; return 0; } +EOF +if eval $ac_compile; then + : +else + rm -rf conftest* + cat >> confdefs.h <<\EOF +#define BROKEN_ASSERT 1 +EOF + +fi +rm -f conftest* + + +# On some systems, the system header files may not declare malloc, realloc, +# and free. There are places where gas needs these functions to have been +# declared -- such as when taking their addresses. +echo "checking whether malloc declaration is required" 1>&4 +cat > conftest.${ac_ext} < +#endif +#ifdef HAVE_STRING_H +#include +#endif +#ifdef HAVE_STDLIB_H +#include +#endif +#ifdef HAVE_UNISTD_H +#include +#endif + +int main() { return 0; } +int t() { + +char *(*f) (); +f = (char *(*)()) malloc; + +; return 0; } +EOF +if eval $ac_compile; then + : +else + rm -rf conftest* + cat >> confdefs.h <<\EOF +#define NEED_MALLOC_DECLARATION 1 +EOF + +fi +rm -f conftest* + +echo "checking free declaration required" 1>&4 +cat > conftest.${ac_ext} < +#endif +#ifdef HAVE_STRING_H +#include +#endif +#ifdef HAVE_STDLIB_H +#include +#endif +#ifdef HAVE_UNISTD_H +#include +#endif + +int main() { return 0; } +int t() { + +int (*f) (); +f = (int (*)()) free; + +; return 0; } +EOF +if eval $ac_compile; then + : +else + rm -rf conftest* + cat >> confdefs.h <<\EOF +#define NEED_FREE_DECLARATION 1 +EOF + +fi +rm -f conftest* + + +# Does errno.h declare errno, or do we have to add a separate declaration +# for it? +echo "checking errno declaration required" 1>&4 +cat > conftest.${ac_ext} < +#endif + +int main() { return 0; } +int t() { + +int x; +x = errno; + +; return 0; } +EOF +if eval $ac_compile; then + : +else + rm -rf conftest* + cat >> confdefs.h <<\EOF +#define NEED_ERRNO_DECLARATION 1 +EOF + +fi +rm -f conftest* + + +subdirs="testsuite" + + +if test -w $cache_file; then +echo "updating cache $cache_file" +cat > $cache_file <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If its contents are invalid for some reason, you may delete or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +EOF +# Ultrix sh set writes to stderr and can't be redirected directly. +(set) 2>&1 | sed -n "s/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=\${\1-'\2'}/p" >> $cache_file +else +echo "not updating unwritable cache $cache_file" +fi + + +test "x$prefix" = xNONE && prefix=/usr/local +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +DEFS=-DHAVE_CONFIG_H + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating ${CONFIG_STATUS} +rm -f ${CONFIG_STATUS} +cat > ${CONFIG_STATUS} </dev/null | sed 1q`: +# +# $0 $configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: ${CONFIG_STATUS} [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo running \${CONFIG_SHELL-/bin/sh} $0 $configure_args --no-create --norecursion + exec \${CONFIG_SHELL-/bin/sh} $0 $configure_args --no-create --norecursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "${CONFIG_STATUS} generated by autoconf version 1.107" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr doc/Makefile Makefile conf conftest*; exit 1' 1 2 15 + +# Protect against being on the right side of a sed subst in config.status. +sed 's/%@/@@/; s/@%/@@/; s/%g$/@g/; /@g$/s/[\\\\&%]/\\\\&/g; + s/@@/%@/; s/@@/@%/; s/@g$/%g/' > conftest.subs <<\CEOF +$ac_vpsub +$extrasub +s%@LIBS@%$LIBS%g +s%@prefix@%$prefix%g +s%@exec_prefix@%$exec_prefix%g +s%@DEFS@%$DEFS%g +s%@CFLAGS@%$CFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@host@%$host%g +s%@host_alias@%$host_alias%g +s%@host_cpu@%$host_cpu%g +s%@host_vendor@%$host_vendor%g +s%@host_os@%$host_os%g +s%@target@%$target%g +s%@target_alias@%$target_alias%g +s%@target_cpu@%$target_cpu%g +s%@target_vendor@%$target_vendor%g +s%@target_os@%$target_os%g +s%@build@%$build%g +s%@build_alias@%$build_alias%g +s%@build_cpu@%$build_cpu%g +s%@build_vendor@%$build_vendor%g +s%@build_os@%$build_os%g +s%@OPCODES_LIB@%$OPCODES_LIB%g +/@target_frag@/r $target_frag +s%@target_frag@%%g +s%@cpu_type@%$cpu_type%g +s%@obj_format@%$obj_format%g +s%@emulation@%$emulation%g +s%@atof@%$atof%g +s%@BFDLIB@%$BFDLIB%g +s%@ALL_OBJ_DEPS@%$ALL_OBJ_DEPS%g +s%@CC@%$CC%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@CPP@%$CPP%g +s%@ALLOCA@%$ALLOCA%g +s%@subdirs@%$subdirs%g + +CEOF +EOF +cat >> ${CONFIG_STATUS} <<\EOF + +CONFIG_FILES=${CONFIG_FILES-"doc/Makefile Makefile"} +for ac_file in .. ${CONFIG_FILES}; do if test "x$ac_file" != x..; then + # Support "outfile[:infile]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%.*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust relative srcdir, etc. for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/$ac_dir" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + echo creating "$ac_file" + rm -f "$ac_file" + comment_str="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *.c | *.h | *.C | *.cc | *.cpp | *.hpp | *.m ) + ac_comsub="1i\\ +/* $comment_str */" ;; + * ) # Add the comment on the second line of scripts, first line of others. + ac_comsub=" +1{ +s/^#!/&/ +t script +i\\ +# $comment_str +b done +: script +a\\ +# $comment_str +: done +} +" ;; + esac + sed -e "$ac_comsub +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" -f conftest.subs $ac_given_srcdir/$ac_file_in > $ac_file +fi; done +rm -f conftest.subs + +# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where +# NAME is the cpp macro being defined and VALUE is the value it is being given. +# +# ac_d sets the value in "#define NAME VALUE" lines. +ac_dA='s%^\([ ]*\)#\([ ]*define[ ][ ]*\)' +ac_dB='\([ ][ ]*\)[^ ]*%\1#\2' +ac_dC='\3' +ac_dD='%g' +# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE". +ac_uA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' +ac_uB='\([ ]\)%\1#\2define\3' +ac_uC=' ' +ac_uD='\4%g' +# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE". +ac_eA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' +ac_eB='$%\1#\2define\3' +ac_eC=' ' +ac_eD='%g' + +CONFIG_HEADERS=${CONFIG_HEADERS-"conf"} +for ac_file in .. ${CONFIG_HEADERS}; do if test "x$ac_file" != x..; then + # Support "outfile[:infile]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%.*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + echo creating $ac_file + + rm -f conftest.frag conftest.in conftest.out + cp $ac_given_srcdir/$ac_file_in conftest.in + +EOF + +# Transform confdefs.h into a sed script conftest.vals that substitutes +# the proper values into config.h.in to produce config.h. +rm -f conftest.vals +cat > conftest.hdr <<\EOF +# Protect against being on the right side of a sed subst in config.status. +s/[\\&%]/\\&/g +# Protect against being in an unquoted here document in config.status. +s%[\\$`]%\\&%g +s%#define \([A-Za-z_][A-Za-z0-9_]*\) \(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp +s%ac_d%ac_u%gp +s%ac_u%ac_e%gp +EOF +sed -n -f conftest.hdr confdefs.h > conftest.vals +rm -f conftest.hdr + +# This sed command replaces #undef with comments. This is necessary, for +# example, in the case of _POSIX_SOURCE, which is predefined and required +# on some systems where configure will not decide to define it. +cat >> conftest.vals <<\EOF +s%^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */% +EOF + +# Break up conftest.vals because some shells have a limit on +# the size of here documents, and old seds have small limits too. +# Maximum number of lines to put in a single here document. +ac_max_here_lines=12 + +rm -f conftest.tail +while : +do + ac_lines=`grep -c . conftest.vals` + # grep -c gives empty output for an empty file on some AIX systems. + if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi + # Write a limited-size here document to conftest.frag. + echo ' cat > conftest.frag <> ${CONFIG_STATUS} + sed ${ac_max_here_lines}q conftest.vals >> ${CONFIG_STATUS} + echo 'CEOF + sed -f conftest.frag conftest.in > conftest.out + rm -f conftest.in + mv conftest.out conftest.in +' >> ${CONFIG_STATUS} + sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail + rm -f conftest.vals + mv conftest.tail conftest.vals +done +rm -f conftest.vals + +# Now back to your regularly scheduled config.status. +cat >> ${CONFIG_STATUS} <<\EOF + rm -f conftest.frag conftest.h + echo "/* $ac_file. Generated automatically by configure. */" > conftest.h + cat conftest.in >> conftest.h + rm -f conftest.in + if cmp -s $ac_file conftest.h 2>/dev/null; then + echo "$ac_file is unchanged" + rm -f conftest.h + else + rm -f $ac_file + mv conftest.h $ac_file + fi +fi; done + +EOF + +cat >> ${CONFIG_STATUS} <> ${CONFIG_STATUS} <<\EOF +while test -n "${ac_files}"; do + set ${ac_links}; ac_link=$1; shift; ac_links=$* + set ${ac_files}; ac_file=$1; shift; ac_files=$* + + echo "linking ${ac_link} to ${srcdir}/${ac_file}" + + if test ! -r ${srcdir}/${ac_file}; then + { echo "configure: ${srcdir}/${ac_file}: File not found" 1>&2; exit 1; } + fi + rm -f ${ac_link} + # Make a symlink if possible; otherwise try a hard link. + if ln -s ${srcdir}/${ac_file} ${ac_link} 2>/dev/null || + ln ${srcdir}/${ac_file} ${ac_link}; then : + else + { echo "configure: can not link ${ac_link} to ${srcdir}/${ac_file}" 1>&2; exit 1; } + fi +done + +EOF +chmod +x ${CONFIG_STATUS} +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} ${CONFIG_STATUS} + +if test "${norecursion}" != yes; then + + # Remove --cache-file and --srcdir arguments so they do not pile up. + ac_sub_configure_args= + ac_prev= + for ac_arg in $configure_args; do + if test -n "$ac_prev"; then + ac_prev= + continue + fi + case "$ac_arg" in + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + ;; + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + ;; + *[" "]*) ac_sub_configure_args="$ac_sub_configure_args '$ac_arg'" ;; + *) ac_sub_configure_args="$ac_sub_configure_args $ac_arg" ;; + esac + done + + for ac_config_dir in testsuite; do + + # Do not complain, so a configure script can configure whichever + # parts of a large source tree are present. + if test ! -d ${srcdir}/${ac_config_dir}; then + continue + fi + + echo configuring in ${ac_config_dir} + + case "${srcdir}" in + .) ;; + *) + if test -d ./${ac_config_dir} || mkdir ./${ac_config_dir}; then :; + else + { echo "configure: can not create `pwd`/${ac_config_dir}" 1>&2; exit 1; } + fi + ;; + esac + + ac_popdir=`pwd` + cd ${ac_config_dir} + + case "${srcdir}" in + .) # No --srcdir option. We are building in place. + ac_sub_srcdir=${srcdir} ;; + /*) # Absolute path. + ac_sub_srcdir=${srcdir}/${ac_config_dir} ;; + *) # Relative path. + ac_sub_srcdir=../${srcdir}/${ac_config_dir} ;; + esac + + # Check for guested configure; otherwise get Cygnus style configure. + if test -f ${ac_sub_srcdir}/configure; then + ac_sub_configure=${ac_sub_srcdir}/configure + elif test -f ${ac_sub_srcdir}/configure.in; then + ac_sub_configure=${ac_configure} + else + echo "configure: warning: no configuration information is in ${ac_config_dir}" 1>&2 + ac_sub_configure= + fi + + # The recursion is here. + if test -n "${ac_sub_configure}"; then + + # Make the cache file name correct relative to the subdirectory. + # A "../" for each directory in /${ac_config_dir}. + ac_dots=`echo /${ac_config_dir}|sed 's%/[^/]*%../%g'` + case "$cache_file" in + /*) ac_sub_cache_file=$cache_file ;; + *) # Relative path. + ac_sub_cache_file="$ac_dots$cache_file" ;; + esac + + echo "running ${CONFIG_SHELL-/bin/sh} ${ac_sub_configure} ${ac_sub_configure_args} --cache-file=$ac_sub_cache_file --srcdir=${ac_sub_srcdir}" + if ${CONFIG_SHELL-/bin/sh} ${ac_sub_configure} ${ac_sub_configure_args} --cache-file=$ac_sub_cache_file --srcdir=${ac_sub_srcdir} + then : + else + { echo "configure: ${ac_sub_configure} failed for ${ac_config_dir}" 1>&2; exit 1; } + fi + fi + + cd ${ac_popdir} + done +fi + diff --git a/gas/configure.in b/gas/configure.in index 43b6883ecd..8016f6e587 100644 --- a/gas/configure.in +++ b/gas/configure.in @@ -1,124 +1,47 @@ -# This file is configure.in -# -# Copyright (C) 1987-1992,1993,1994 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, 675 Mass Ave, Cambridge, MA 02139, USA. */ -# - -# This file was written, and is maintained by K. Richard Pixley -# . - -# This file is a shell script that supplies the information necessary -# to tailor a template configure script into the configure script -# appropriate for this directory. For more information, check any -# existing configure script. - -srctrigger=as.c -srcname="gas" -need_bfd=no -bfd_gas=no -configdirs="doc testsuite" - -# per-host: - -gas_host=generic - -case "${host}" in - a29k-*-*) gas_host=a29k ;; - - alpha-*-osf*) gas_host=ansi ;; - - hppa*-*-hpux*) gas_host=hpux ;; - hppa*-*-bsd*) gas_host=hppabsd ;; - hppa*-*-osf*) gas_host=hppaosf ;; - hppa*-*-hiux*) gas_host=hpux ;; - - i[345]86-ibm-aix*) gas_host=i386aix ;; - i[345]86-*-isc*) gas_host=sysv ;; - i[345]86-sun-sunos*) gas_host=sun386 ;; - i[345]86-*-mach*) gas_host=mach3 ;; - i[345]86-*-go32) host_makefile_frag=config/go32.mh - gas_host=go32 ;; - - m68k-sun-sunos*) gas_host=sun3 ;; - m68*-*-hpux) gas_host=hpux ;; - - mips*-dec-ultrix*) gas_host=decstatn ;; - mips*-*-bsd*) gas_host=mipsbsd ;; - mips*-sgi-irix*) gas_host=irix ;; - - rs6000-*-*) gas_host=rs6000 ;; - - sparc-sun-sunos*) gas_host=sun4 ;; - sparc-sun-solaris2*) gas_host=sysv ;; - - vax-*-vms*) gas_host=vms ;; - vax-*-bsd*) gas_host=vax ;; - vax-*-ultrix*) gas_host=vax ;; - - *-*-sysv4* | *-*-unixware) gas_host=sysv ;; - - *-*-ansi | *-*-hpux | *-*-sysv) - gas_host=${host_os} ;; +dnl Process this file with autoconf to produce a configure script. +dnl +dnl And be careful when changing it! If you must add tests with square +dnl brackets, be sure changequote invocations surround it. +dnl +dnl Remember to use "dnl" in each line before the AC_INIT call... +dnl +dnl +AC_INIT(as.h) +dnl +AC_ARG_ENABLE(bfd-assembler, +[ bfd-assembler use BFD back end for writing object files], +[case "${enableval}" in + yes) need_bfd=yes bfd_gas=yes ;; + no) ;; + *) AC_MSG_ERROR(bad value ${enableval} given for bfd-assembler option) ;; +esac])dnl + +# Generate a header file -- gets more post-processing by Makefile later. +AC_CONFIG_HEADER(conf) + +dnl For recursion to work right, this must be an absolute pathname. +AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/..) +AC_CANONICAL_SYSTEM -esac - -if [ ! -r ${srcdir}/config/ho-${gas_host}.h ]; then - echo '*** GAS does not support host' ${host} 1>&2 - exit 1 -fi - -# per-target: - -case ${with_bfd_assembler} in - yes) - echo "*** Warning: GAS BFD configuration option not yet fully supported" 1>&2 - need_bfd=yes - bfd_gas=yes - ;; - no | "") - ;; - *) - echo "*** Bad value \"${with_bfd_assembler}\" for --with-bfd-assembler option" 1>&2 - exit 1 - ;; -esac - -# assign cpu type emulation=generic -# default is big -endian=big +# assign cpu type # check for architecture variants case ${target_cpu} in - # Actually we've only got support for the 1.1, so we shouldn't generalize, - # but this is what the support files are named... hppa*) cpu_type=hppa ;; +changequote(,)dnl i[45]86) cpu_type=i386 ;; m680[012346]0) cpu_type=m68k ;; m68008) cpu_type=m68k ;; m683??) cpu_type=m68k ;; +changequote([,])dnl m8*) cpu_type=m88k ;; mips*el) cpu_type=mips endian=little;; - mips*) cpu_type=mips ;; + mips*) cpu_type=mips endian=big ;; powerpc*) cpu_type=ppc ;; rs6000*) cpu_type=ppc ;; - sparc64) cpu_type=sparc obj_format=elf extra_def=sparcv9 ;; + sparc64) cpu_type=sparc obj_format=elf AC_DEFINE(sparcv9) ;; sparclite*) cpu_type=sparc ;; *) cpu_type=${target_cpu} ;; esac @@ -126,12 +49,12 @@ esac # do we need the opcodes library? case ${cpu_type} in alpha | vax) - opcodes= ;; *) - opcodes="../opcodes/libopcodes.a" + OPCODES_LIB="../opcodes/libopcodes.a" ;; esac +AC_SUBST(OPCODES_LIB) gas_target=${cpu_type} generic_target=${cpu_type}-${target_vendor}-${target_os} @@ -198,11 +121,10 @@ case ${generic_target} in mips-*-bsd*) bfd_gas=yes obj_format=aout gas_target=mips-lit ;; mips-*-ultrix*) obj_format=ecoff gas_target=mips-lit ;; mips-*-ecoff*) obj_format=ecoff - if [ $endian = big ] ; then - gas_target=mips-big - else - gas_target=mips-lit - fi + case "$endian" in + big) gas_target=mips-big ;; + *) gas_target=mips-lit ;; + esac ;; mips-*-ecoff*) obj_format=ecoff gas_target=mips-big ;; mips-*-irix5*) obj_format=elf gas_target=mips-big ;; @@ -210,13 +132,11 @@ case ${generic_target} in mips-*-riscos*) obj_format=ecoff gas_target=mips-big ;; mips-*-sysv*) obj_format=ecoff gas_target=mips-big ;; mips-*-elf*) obj_format=elf - if [ $endian = big ] ; then - gas_target=mips-big - else - gas_target=mips-lit - fi + case "$endian" in + big) gas_target=mips-big ;; + *) gas_target=mips-lit ;; + esac ;; - ppc-*-aix*) obj_format=coff bfd_gas=yes ;; ppc-*-elf*) obj_format=elf bfd_gas=yes ;; ppc-*-netware*) obj_format=elf emulation=ppcnw ;; @@ -253,7 +173,7 @@ case ${generic_target} in *-*-xray | *-*-hms) obj_format=coff ;; *-*-sim) obj_format=coff ;; *-*-elf | *-*-sysv4* | *-*-solaris*) - echo '*** Warning: GAS support for ELF format is incomplete' 1>&2 + AC_MSG_WARN(GAS support for ELF format is incomplete) obj_format=elf dev=yes ;; *-*-vxworks) obj_format=aout ;; *-*-netware) obj_format=elf ;; @@ -267,30 +187,35 @@ case ${target_cpu} in *) atof=ieee ;; esac -if [ ! -r ${srcdir}/config/tc-${cpu_type}.c ]; then - echo '*** GAS does not support target CPU' ${cpu_type} 1>&2 - exit 1 -fi - case "${obj_format}" in - "") - echo "*** GAS doesn't know what format to use for target" ${target} 1>&2 - exit 1 - ;; + "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;; esac +dnl +dnl Make sure the desired support files exist. +dnl + +changequote(<<<,>>>)dnl + +if [ ! -r ${srcdir}/config/tc-${cpu_type}.c ]; then + AC_MSG_ERROR(GAS does not support target CPU ${cpu_type}) +fi + if [ ! -r ${srcdir}/config/obj-${obj_format}.c ]; then - echo '*** GAS does not have support for object file format' ${obj_format} 1>&2 - exit 1 + AC_MSG_ERROR(GAS does not have support for object file format ${obj_format}) fi +changequote([,])dnl + # and target makefile frag -target_makefile_frag=config/${gas_target}.mt +target_frag=${srcdir}/config/${gas_target}.mt +AC_SUBST_FILE(target_frag) case ${bfd_gas}-${obj_format} in yes-coff) need_bfd=yes ;; - no-coff) need_bfd=yes extra_def="MANY_SEGMENTS" ;; + no-coff) need_bfd=yes + AC_DEFINE(MANY_SEGMENTS) ;; *-elf) bfd_gas=yes ;; *-ecoff) bfd_gas=yes ;; *-som) bfd_gas=yes ;; @@ -302,8 +227,7 @@ case ${with_bfd_assembler}-${bfd_gas} in # We didn't override user's choice. ;; no-yes) - echo '*** Use of BFD is required for ${target}; overriding config options'\ - 1>&2 + AC_MSG_WARN(Use of BFD is required for ${target}; overriding config options.) ;; no-preferred) bfd_gas=no @@ -320,44 +244,134 @@ reject_dev_configs=yes case ${reject_dev_configs}-${dev} in yes-yes) # Oops. - echo "*** GAS does not support the ${generic_target} configuration" 1>&2 - exit 1 + AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.) ;; esac -files="config/ho-${gas_host}.h config/tc-${cpu_type}.c \ - config/tc-${cpu_type}.h config/te-${emulation}.h \ +dnl Looks like the AC_MAKE_LINKS string is taken literally and put into the +dnl config.status file. So the necessary variables also have to be +dnl exported. +AC_SUBST(cpu_type) AC_SUBST(obj_format) AC_SUBST(emulation) AC_SUBST(atof) +AC_LINK_FILES(targ-cpu.c targ-cpu.h obj-format.h obj-format.c targ-env.h atof-targ.c, + config/tc-${cpu_type}.c config/tc-${cpu_type}.h \ config/obj-${obj_format}.h config/obj-${obj_format}.c \ - config/atof-${atof}.c" - -links="host.h targ-cpu.c targ-cpu.h targ-env.h obj-format.h obj-format.c atof-targ.c" + config/te-${emulation}.h config/atof-${atof}.c) -# post-target: - -case ${bfd_gas} in - yes) extra_def="$extra_def BFD_ASSEMBLER" need_bfd=yes ;; +case "${bfd_gas}" in + yes) AC_DEFINE(BFD_ASSEMBLER) + need_bfd=yes ;; esac -case ${need_bfd} in - yes) bfdlib="BFDLIB=../bfd/libbfd.a" - all_obj_deps="$all_obj_deps ../bfd/bfd.h" - ;; - *) bfdlib="" +case "${need_bfd}" in + yes) BFDLIB=../bfd/libbfd.a + ALL_OBJ_DEPS="$ALL_OBJ_DEPS ../bfd/bfd.h" ;; esac +AC_SUBST(BFDLIB) +AC_SUBST(ALL_OBJ_DEPS) -case "x${host}" in - "x${target}") cross="" ;; - *) cross="CROSS=-DCROSS_COMPILE" ;; +case "x${host_canon}" in + x${target_canon}) ;; + *) AC_DEFINE(CROSS_COMPILE);; esac -rm -f Makefile.tem -echo $cross > Makefile.tem -echo ALL_OBJ_DEPS=$all_obj_deps >> Makefile.tem -echo defs=$extra_def >> Makefile.tem -echo $bfdlib >> Makefile.tem -echo "OPCODES_LIB=$opcodes" >> Makefile.tem -cat Makefile >> Makefile.tem -mv -f Makefile.tem Makefile +AC_DEFINE_UNQUOTED(TARGET_ALIAS, "${target_alias}") +AC_DEFINE_UNQUOTED(TARGET_CANONICAL, "${target}") +AC_DEFINE_UNQUOTED(TARGET_CPU, "${target_cpu}") +AC_DEFINE_UNQUOTED(TARGET_VENDOR, "${target_vendor}") +AC_DEFINE_UNQUOTED(TARGET_OS, "${target_os}") + +case ${host} in + rs6000-*-*) + # The IBM compiler mis-compiles some expressions used in gas. + # This will tell gas to work around this lossage. + AC_DEFINE(IBM_COMPILER_SUX) ;; + i386-*-go32) + # Using fopen(..., "w") for a binary file breaks under DOS. + AC_DEFINE(WANT_FOPEN_BIN) ;; +esac -# end of gas/configure.in +AC_PROG_CC +AC_PROG_INSTALL + +AC_HEADER_STDC +AC_CHECK_HEADERS(string.h stdlib.h memory.h strings.h unistd.h stdarg.h varargs.h errno.h sys/types.h) + +dnl ansidecl.h will deal with const +dnl AC_CONST +AC_FUNC_ALLOCA +AC_C_INLINE + +# Some non-ANSI preprocessors botch requoting inside strings. That's bad +# enough, but on some of those systems, the assert macro relies on requoting +# working properly! +AC_CHECKING([for working assert macro]) +AC_TRY_LINK([#include +#include ], [ +/* check for requoting problems */ +static int a, b, c, d; +static char *s; +assert (!strcmp(s, "foo bar baz quux")); +/* check for newline handling */ +assert (a == b + || c == d); +], , AC_DEFINE(BROKEN_ASSERT)) + +# On some systems, the system header files may not declare malloc, realloc, +# and free. There are places where gas needs these functions to have been +# declared -- such as when taking their addresses. +AC_CHECKING([whether malloc declaration is required]) +AC_TRY_LINK([ +#ifdef HAVE_MEMORY_H +#include +#endif +#ifdef HAVE_STRING_H +#include +#endif +#ifdef HAVE_STDLIB_H +#include +#endif +#ifdef HAVE_UNISTD_H +#include +#endif +], [ +char *(*f) (); +f = (char *(*)()) malloc; +], , AC_DEFINE(NEED_MALLOC_DECLARATION)) +AC_CHECKING([free declaration required]) +AC_TRY_LINK([ +#ifdef HAVE_MEMORY_H +#include +#endif +#ifdef HAVE_STRING_H +#include +#endif +#ifdef HAVE_STDLIB_H +#include +#endif +#ifdef HAVE_UNISTD_H +#include +#endif +], [ +int (*f) (); +f = (int (*)()) free; +], , AC_DEFINE(NEED_FREE_DECLARATION)) + +# Does errno.h declare errno, or do we have to add a separate declaration +# for it? +AC_CHECKING([errno declaration required]) +AC_TRY_LINK([ +#ifdef HAVE_ERRNO_H +#include +#endif +], [ +int x; +x = errno; +], , AC_DEFINE(NEED_ERRNO_DECLARATION)) + +AC_CONFIG_SUBDIRS(testsuite) + +dnl This must come last. +dnl Apparently symlinks are checked for in the directory containing +dnl the last Makefile. Thus the order used here... +AC_OUTPUT(doc/Makefile Makefile) diff --git a/gas/gasp.c b/gas/gasp.c index 5b56707398..a28c770c58 100644 --- a/gas/gasp.c +++ b/gas/gasp.c @@ -50,8 +50,16 @@ suitable for gas to consume. #include #include #include +#include "config.h" + +#ifdef HAVE_STDLIB_H +#include +#endif + +#ifdef NEED_MALLOC_DECLARATION +extern char *malloc (); +#endif -#include "host.h" #include "libiberty.h" char *program_version = "1.2"; -- 2.34.1