X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gas%2Fconfigure.in;h=121fcfcba9a2cf6e847dd71c9b22602a1d62a427;hb=c0ebe87429033ef7618a22af37c64b645b869aa9;hp=e6a7267d45e7938940c6d8089ca0c34aa1ad917b;hpb=ed84e6956070f271fa17199847375d81e75c1a46;p=deliverable%2Fbinutils-gdb.git diff --git a/gas/configure.in b/gas/configure.in index e6a7267d45..121fcfcba9 100644 --- a/gas/configure.in +++ b/gas/configure.in @@ -3,90 +3,84 @@ 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 Copyright 2012, 2013 Free Software Foundation +dnl +dnl This file is free software; you can redistribute it and/or modify +dnl it under the terms of the GNU General Public License as published by +dnl the Free Software Foundation; either version 3 of the License, or +dnl (at your option) any later version. +dnl +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +dnl GNU General Public License for more details. +dnl +dnl You should have received a copy of the GNU General Public License +dnl along with this program; see the file COPYING3. If not see +dnl . dnl dnl v2.5 needed for --bindir et al -AC_PREREQ(2.57) -AC_INIT(as.h) +AC_PREREQ(2.59) +AC_INIT +AC_CONFIG_SRCDIR(as.h) dnl Autoconf 2.57 will find the aux dir without this. However, unless dnl we specify this explicitly, automake-1.7 will assume that ylwrap is in dnl gas/ instead of gas/../. AC_CONFIG_AUX_DIR(..) -AC_CANONICAL_SYSTEM +AC_CANONICAL_TARGET AC_ISC_POSIX changequote(,)dnl -BFD_VERSION=`sed -n -e 's/^.._INIT_AUTOMAKE.*,[ ]*\([^ ]*\)[ ]*).*/\1/p' < ${srcdir}/../bfd/configure.in` +BFD_VERSION=`${srcdir}/../bfd/configure --version | sed -n -e '1s,.* ,,p'` changequote([,])dnl AM_INIT_AUTOMAKE(gas, ${BFD_VERSION}) -AM_PROG_LIBTOOL +AC_PROG_CC +AC_GNU_SOURCE +AC_USE_SYSTEM_EXTENSIONS +ACX_LARGEFILE + +LT_INIT -user_bfd_gas= -AC_ARG_ENABLE(bfd-assembler, -[ --enable-bfd-assembler use BFD back end for writing object files], -[case "${enableval}" in - yes) need_bfd=yes user_bfd_gas=yes ;; - no) user_bfd_gas=no ;; - *) AC_MSG_ERROR(bad value ${enableval} given for bfd-assembler option) ;; -esac])dnl AC_ARG_ENABLE(targets, -[ targets alternative target configurations besides the primary], +[ --enable-targets alternative target configurations besides the primary], [case "${enableval}" in - yes | "") AC_ERROR(enable-targets option must specify target names or 'all') + yes | "") AC_MSG_ERROR(enable-targets option must specify target names or 'all') ;; no) enable_targets= ;; *) enable_targets=$enableval ;; esac])dnl -AC_ARG_ENABLE(commonbfdlib, -[ --enable-commonbfdlib build shared BFD/opcodes/libiberty library], + +ac_checking=yes +if grep '^RELEASE=y' ${srcdir}/../bfd/Makefile.am >/dev/null 2>/dev/null ; then + ac_checking= +fi +AC_ARG_ENABLE(checking, +[ --enable-checking enable run-time checks], [case "${enableval}" in - yes) commonbfdlib=true ;; - no) commonbfdlib=false ;; - *) AC_MSG_ERROR([bad value ${enableval} for BFD commonbfdlib option]) ;; + no|none) ac_checking= ;; + *) ac_checking=yes ;; esac])dnl +if test x$ac_checking != x ; then + AC_DEFINE(ENABLE_CHECKING, 1, [Define if you want run-time sanity checks.]) +fi using_cgen=no -build_warnings="-W -Wall -Wstrict-prototypes -Wmissing-prototypes" - -AC_ARG_ENABLE(werror, - [ --enable-werror treat compile warnings as errors], - [case "${enableval}" in - yes | y) ERROR_ON_WARNING="yes" ;; - no | n) ERROR_ON_WARNING="no" ;; - *) AC_MSG_ERROR(bad value ${enableval} for --enable-werror) ;; - esac]) - -# Enable -Werror by default, suppressing it only for --disable-werror -# or --disable-build-warnings. -if test "${ERROR_ON_WARNING}" != no -then - build_warnings="$build_warnings -Werror" -fi - -AC_ARG_ENABLE(build-warnings, -[ --enable-build-warnings Enable build-time compiler warnings if gcc is used], -[case "${enableval}" in - yes) ;; - no) build_warnings="-w";; - ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"` - build_warnings="${build_warnings} ${t}";; - *,) t=`echo "${enableval}" | sed -e "s/,/ /g"` - build_warnings="${t} ${build_warnings}";; - *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;; -esac -if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then - echo "Setting warning flags = $build_warnings" 6>&1 -fi])dnl -WARN_CFLAGS="" -if test "x${build_warnings}" != x -a "x$GCC" = xyes ; then - WARN_CFLAGS="${build_warnings}" -fi -AC_SUBST(WARN_CFLAGS) +AM_BINUTILS_WARNINGS # Generate a header file -AM_CONFIG_HEADER(config.h:config.in) +AC_CONFIG_HEADERS(config.h:config.in) + +# PR 14072 +AH_VERBATIM([00_CONFIG_H_CHECK], +[/* Check that config.h is #included before system headers + (this works only for glibc, but that should be enough). */ +#if defined(__GLIBC__) && !defined(__FreeBSD_kernel__) && !defined(__CONFIG_H__) +# error config.h must be #included before system headers +#endif +#define __CONFIG_H__ 1]) # If we are on a DOS filesystem, we must use gdb.ini rather than # .gdbinit. @@ -167,22 +161,15 @@ for this_target in $target $canon_targets ; do AC_MSG_WARN(GAS support for ${generic_target} is preliminary and a work in progress) ;; - mips-sony-bsd*) - ;; - mips-*-bsd*) - AC_MSG_ERROR(Unknown vendor for mips-bsd configuration.) - ;; + microblaze*) + ;; - ppc-*-aix5.*) +changequote(,)dnl + ppc-*-aix[5-9].*) +changequote([,])dnl AC_DEFINE(AIX_WEAK_SUPPORT, 1, [Define if using AIX 5.2 value for C_WEAKEXT.]) ;; - ppc-*-linux-*) - case "$endian" in - big) ;; - *) AC_MSG_ERROR(GNU/Linux must be configured big endian) ;; - esac - ;; ppc-*-solaris*) if test ${this_target} = $target; then AC_DEFINE(TARGET_SOLARIS_COMMENT, 1, @@ -246,15 +233,19 @@ changequote([,])dnl mips64* | mipsisa64* | mipsisa32*) changequote(,)dnl mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..//' -e 's/el$//'` +changequote([,])dnl + ;; + mips*) +changequote(,)dnl + mips_cpu=`echo $target_cpu | sed -e 's/^mips//' -e 's/el$//'` changequote([,])dnl ;; *) - AC_ERROR($target_cpu isn't a supported MIPS CPU name) + AC_MSG_ERROR($target_cpu isn't a supported MIPS CPU name) ;; esac # See whether it's appropriate to set E_MIPS_ABI_O32 for o32 # binaries. It's a GNU extension that some OSes don't understand. - # The value only matters on ELF targets. case ${target} in *-*-irix*) use_e_mips_abi_o32=0 @@ -275,12 +266,15 @@ changequote([,])dnl esac # Decide which ABI to target by default. case ${target} in - mips64*-linux* | mips-sgi-irix6*) + mips64*-linux* | mips-sgi-irix6* | mips64*-freebsd* | mips64*-kfreebsd*-gnu) mips_default_abi=N32_ABI ;; - mips*-linux*) + mips*-linux* | mips*-freebsd* | mips*-kfreebsd*-gnu) mips_default_abi=O32_ABI ;; + mips64*-openbsd*) + mips_default_abi=N64_ABI + ;; *) mips_default_abi=NO_ABI ;; @@ -298,7 +292,7 @@ changequote([,])dnl # Do we need the opcodes library? case ${cpu_type} in - vax | i386 | tic30) + vax | tic30) ;; *) @@ -309,19 +303,31 @@ changequote([,])dnl *opcodes*) shared_opcodes=true ;; *) shared_opcodes=false ;; esac - if test "${shared_opcodes}" = "true"; then - # A shared libopcodes must be linked against libbfd. - need_bfd=yes - fi ;; esac # Any other special object files needed ? case ${cpu_type} in - fr30 | ip2k | iq2000 | m32r | openrisc) + + bfin) + echo ${extra_objects} | grep -s "bfin-parse.o" + if test $? -ne 0 ; then + extra_objects="$extra_objects bfin-parse.o" + fi + + echo ${extra_objects} | grep -s "bfin-lex-wrapper.o" + if test $? -ne 0 ; then + extra_objects="$extra_objects bfin-lex-wrapper.o" + fi + ;; + + epiphany | fr30 | ip2k | iq2000 | lm32 | m32r | openrisc) using_cgen=yes ;; + m32c) + using_cgen=yes + ;; frv) using_cgen=yes ;; @@ -332,33 +338,59 @@ changequote([,])dnl esac ;; + mep) + using_cgen=yes + ;; + mips) - echo ${extra_objects} | grep -s "itbl-parse.o" + echo ${extra_objects} | grep -s "itbl-parse.o" if test $? -ne 0 ; then extra_objects="$extra_objects itbl-parse.o" fi - echo ${extra_objects} | grep -s "itbl-lex.o" + echo ${extra_objects} | grep -s "itbl-lex-wrapper.o" if test $? -ne 0 ; then - extra_objects="$extra_objects itbl-lex.o" + extra_objects="$extra_objects itbl-lex-wrapper.o" fi - echo ${extra_objects} | grep -s "itbl-ops.o" + echo ${extra_objects} | grep -s "itbl-ops.o" if test $? -ne 0 ; then extra_objects="$extra_objects itbl-ops.o" fi ;; + mt) + using_cgen=yes + ;; + i386 | s390 | sparc) if test $this_target = $target ; then AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.]) fi ;; + rl78) + echo ${extra_objects} | grep -s "rl78-parse.o" + if test $? -ne 0 ; then + extra_objects="$extra_objects rl78-parse.o" + fi + ;; + + rx) + echo ${extra_objects} | grep -s "rx-parse.o" + if test $? -ne 0 ; then + extra_objects="$extra_objects rx-parse.o" + fi + ;; + xstormy16) using_cgen=yes ;; + xc16x) + using_cgen=yes + ;; + xtensa) echo ${extra_objects} | grep -s "xtensa-relax.o" if test $? -ne 0 ; then @@ -380,37 +412,21 @@ changequote([,])dnl # See if we really can support this configuration with the emulation code. if test $this_target = $target ; then - primary_bfd_gas=$bfd_gas obj_format=$fmt te_file=$em - - if test $bfd_gas = no ; then - # Can't support other configurations this way. - break - fi - elif test $bfd_gas = no ; then - # Can't support this configuration. - break fi + case ${te_file} in + vms) extra_objects="$extra_objects te-vms.o" ;; + esac + # From target name and format, produce a list of supported emulations. case ${generic_target}-${fmt} in - mips-*-irix5*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;; - mips*-*-linux*-*) case "$endian" in + mips-*-*-*) case "$endian" in big) emulation="mipsbelf mipslelf mipself" ;; *) emulation="mipslelf mipsbelf mipself" ;; esac ;; - mips-*-lnews*-ecoff) ;; - mips-*-*-ecoff) case "$endian" in - big) emulation="mipsbecoff mipslecoff mipsecoff" ;; - *) emulation="mipslecoff mipsbecoff mipsecoff" ;; - esac ;; - mips-*-*-elf) case "$endian" in - big) emulation="mipsbelf mipslelf mipself" ;; - *) emulation="mipslelf mipsbelf mipself" ;; - esac ;; - mips-*-sysv4*MP*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;; # i386-pc-pe-coff != i386-pc-coff. i386-*-pe-coff) ;; # Uncommenting the next line will turn on support for i386 AOUT @@ -446,15 +462,32 @@ if test ${all_targets} = "yes"; then ;; esac ;; + x86_64) + case ${obj_format} in + aout) + emulations="$emulations i386coff i386elf" + ;; + coff) + emulations="$emulations i386aout i386elf" + ;; + elf) + emulations="$emulations i386aout i386coff" + ;; + esac + ;; esac fi +# PE code has way too many macros tweaking behaviour +case ${te_file} in + pe*) emulations="" ;; +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} ;; - pdp11) atof=vax ;; + vax | pdp11 ) atof=vax ;; *) atof=ieee ;; esac @@ -484,27 +517,6 @@ if test ! -r ${srcdir}/config/obj-${obj_format}.c; then AC_MSG_ERROR(GAS does not have support for object file format ${obj_format}) fi -case ${user_bfd_gas}-${primary_bfd_gas} in - yes-yes | no-no) - # We didn't override user's choice. - ;; - no-yes) - AC_MSG_WARN(Use of BFD is required for ${target}; overriding config options.) - ;; - no-preferred) - primary_bfd_gas=no - ;; - *-preferred) - primary_bfd_gas=yes - ;; - yes-*) - primary_bfd_gas=yes - ;; - -*) - # User specified nothing. - ;; -esac - # Some COFF configurations want these random other flags set. case ${obj_format} in coff) @@ -512,13 +524,14 @@ case ${obj_format} in i386) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;; m68k) AC_DEFINE(M68KCOFF, 1, [Using m68k COFF?]) ;; m88k) AC_DEFINE(M88KCOFF, 1, [Using m88k COFF?]) ;; + x86_64) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;; esac ;; esac # Getting this done right is going to be a bitch. Each configuration specified -# with --enable-targets=... should be checked for environment, format, cpu, and -# bfd_gas setting. +# with --enable-targets=... should be checked for environment, format, cpu +# setting. # # For each configuration, the necessary object file support code must be linked # in. This might be only one, it might be up to four. The necessary emulation @@ -526,7 +539,7 @@ esac # # And then there's "--enable-targets=all".... # -# For now, just always do it for MIPS ELF or ECOFF configurations. Sigh. +# For now, just always do it for MIPS ELF configurations. Sigh. formats="${obj_format}" emfiles="" @@ -537,8 +550,6 @@ for em in . $emulations ; do .) continue ;; mipsbelf | mipslelf | mipself) fmt=elf file=mipself ;; - mipsbecoff | mipslecoff | mipsecoff) - fmt=ecoff file=mipsecoff ;; *coff) fmt=coff file=$em ;; *aout) @@ -561,8 +572,6 @@ if test `set . $formats ; shift ; echo $#` -gt 1 ; then ecoff) AC_DEFINE(OBJ_MAYBE_ECOFF, 1, [ECOFF support?]) ;; elf) AC_DEFINE(OBJ_MAYBE_ELF, 1, [ELF support?]) ;; generic) AC_DEFINE(OBJ_MAYBE_GENERIC, 1, [generic support?]) ;; - hp300) AC_DEFINE(OBJ_MAYBE_HP300, 1, [HP300 support?]) ;; - ieee) AC_DEFINE(OBJ_MAYBE_IEEE, 1, [IEEE support?]) ;; som) AC_DEFINE(OBJ_MAYBE_SOM, 1, [SOM support?]) ;; esac extra_objects="$extra_objects obj-$fmt.o" @@ -571,11 +580,11 @@ if test `set . $formats ; shift ; echo $#` -gt 1 ; then fi if test `set . $emfiles ; shift ; echo $#` -gt 0 ; then DEFAULT_EMULATION=`set . $emulations ; echo $2` - # e-mips* has more than one emulation per file, e-i386* has just one at the + # e-mipself has more than one emulation per file, e-i386* has just one at the # moment. If only one emulation is specified, then don't define # USE_EMULATIONS or include any of the e-files as they will only be bloat. case "${obj_format}${emfiles}" in - multi* | *mips*) + multi* | *mipself*) extra_objects="$extra_objects $emfiles" AC_DEFINE(USE_EMULATIONS, 1, [Use emulation support?]) ;; esac @@ -585,12 +594,6 @@ AC_DEFINE_UNQUOTED(EMULATIONS, $EMULATIONS, [Supported emulations.]) AC_DEFINE_UNQUOTED(DEFAULT_EMULATION, "$DEFAULT_EMULATION", [Default emulation.]) -case ${primary_bfd_gas}-${target_cpu_type}-${obj_format} in - yes-*-coff) need_bfd=yes ;; - no-*-coff) need_bfd=yes - AC_DEFINE(MANY_SEGMENTS, 1, [old COFF support?]) ;; -esac - reject_dev_configs=yes case ${reject_dev_configs}-${dev} in @@ -606,11 +609,6 @@ AC_SUBST(install_tooldir) AC_SUBST(atof) dnl AC_SUBST(emulation) -case "${primary_bfd_gas}" in - yes) AC_DEFINE(BFD_ASSEMBLER, 1, [Use BFD interface?]) - need_bfd=yes ;; -esac - # do we need the opcodes library? case "${need_opcodes}" in yes) @@ -618,38 +616,27 @@ yes) ;; esac -case "${need_bfd}" in -yes) - BFDLIB=../bfd/libbfd.la - BFDVER_H=../bfd/bfdver.h - ALL_OBJ_DEPS="$ALL_OBJ_DEPS"' ../bfd/bfd.h $(INCDIR)/symcat.h' - ;; -esac - -AC_SUBST(BFDLIB) AC_SUBST(OPCODES_LIB) -AC_SUBST(BFDVER_H) -AC_SUBST(ALL_OBJ_DEPS) - AC_DEFINE_UNQUOTED(TARGET_ALIAS, "${target_alias}", [Target alias.]) AC_DEFINE_UNQUOTED(TARGET_CANONICAL, "${target}", [Canonical target.]) AC_DEFINE_UNQUOTED(TARGET_CPU, "${target_cpu}", [Target CPU.]) AC_DEFINE_UNQUOTED(TARGET_VENDOR, "${target_vendor}", [Target vendor.]) AC_DEFINE_UNQUOTED(TARGET_OS, "${target_os}", [Target OS.]) -AC_PROG_CC - AC_PROG_YACC AM_PROG_LEX -ALL_LINGUAS="fr tr es" -CY_GNU_GETTEXT +ALL_LINGUAS="fr tr es rw id ru fi ja" +ZW_GNU_GETTEXT_SISTER_DIR +AM_PO_SUBDIRS AM_MAINTAINER_MODE +AM_CONDITIONAL(GENINSRC_NEVER, false) AC_EXEEXT -AC_CHECK_HEADERS(string.h stdlib.h memory.h strings.h unistd.h stdarg.h varargs.h errno.h sys/types.h) +AC_CHECK_HEADERS(string.h stdlib.h memory.h strings.h unistd.h errno.h sys/types.h limits.h locale.h time.h sys/stat.h) +ACX_HEADER_STRING # Put this here so that autoconf's "cross-compiling" message doesn't confuse # people who are not cross-compiling but are compiling cross-assemblers. @@ -663,20 +650,20 @@ fi AC_MSG_RESULT($cross_gas) dnl ansidecl.h will deal with const -dnl AC_CONST +dnl AC_C_CONST AC_FUNC_ALLOCA AC_C_INLINE # VMS doesn't have unlink. AC_CHECK_FUNCS(unlink remove, break) +AC_CHECK_FUNCS(sbrk setlocale) -# Some systems don't have sbrk(). -AC_CHECK_FUNCS(sbrk) +AM_LC_MESSAGES # do we need the math library? case "${need_libm}" in -yes) - AC_CHECK_LIBM +yes) + LT_LIB_M AC_SUBST(LIBM) ;; esac @@ -707,11 +694,6 @@ gas_test_headers=" #include #endif " -GAS_CHECK_DECL_NEEDED(strstr, f, char *(*f)(), $gas_test_headers) -GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers) -GAS_CHECK_DECL_NEEDED(free, f, void (*f)(), $gas_test_headers) -GAS_CHECK_DECL_NEEDED(sbrk, f, char *(*f)(), $gas_test_headers) -GAS_CHECK_DECL_NEEDED(environ, f, char **f, $gas_test_headers) # Does errno.h declare errno, or do we have to add a separate declaration # for it? @@ -721,6 +703,48 @@ GAS_CHECK_DECL_NEEDED(errno, f, int f, [ #endif ]) +AC_MSG_CHECKING(for a known getopt prototype in unistd.h) +AC_CACHE_VAL(gas_cv_decl_getopt_unistd_h, +[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include ], [extern int getopt (int, char *const*, const char *);])], +gas_cv_decl_getopt_unistd_h=yes, gas_cv_decl_getopt_unistd_h=no)]) +AC_MSG_RESULT($gas_cv_decl_getopt_unistd_h) +if test $gas_cv_decl_getopt_unistd_h = yes; then + AC_DEFINE([HAVE_DECL_GETOPT], 1, + [Is the prototype for getopt in in the expected format?]) +fi + +GAS_CHECK_DECL_NEEDED(environ, f, char **f, $gas_test_headers) +GAS_CHECK_DECL_NEEDED(ffs, f, int (*f)(int), $gas_test_headers) +GAS_CHECK_DECL_NEEDED(free, f, void (*f)(), $gas_test_headers) +GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers) +GAS_CHECK_DECL_NEEDED(sbrk, f, char *(*f)(), $gas_test_headers) +GAS_CHECK_DECL_NEEDED(strstr, f, char *(*f)(), $gas_test_headers) + +AC_CHECK_DECLS([free, getenv, malloc, mempcpy, realloc, stpcpy, strstr, vsnprintf]) + +BFD_BINARY_FOPEN + +# Link in zlib if we can. This allows us to write compressed debug sections. +AM_ZLIB + +# Support for VMS timestamps via cross compile + +if test "$ac_cv_header_time_h" = yes; then + GAS_HAVE_TIME_TYPE_MEMBER(struct tm, tm_gmtoff) +fi + +if test "$ac_cv_header_sys_stat_h" = yes; then + GAS_HAVE_SYS_STAT_TYPE_MEMBER(struct stat, st_mtim, tv_sec) + GAS_HAVE_SYS_STAT_TYPE_MEMBER(struct stat, st_mtim, tv_nsec) +fi + + +dnl Required for html, pdf, install-pdf and install-html targets. +AC_SUBST(datarootdir) +AC_SUBST(docdir) +AC_SUBST(htmldir) +AC_SUBST(pdfdir) + dnl This must come last. dnl We used to make symlinks to files in the source directory, but now @@ -738,9 +762,7 @@ AC_CONFIG_COMMANDS([default], echo '#include "itbl-'"${target_cpu_type}"'.h"' > itbl-cpu.h if test "x$cgen_cpu_prefix" != x ; then echo '#include "opcodes/'"${cgen_cpu_prefix}"'-desc.h"' > cgen-desc.h - fi - - sed -e '/POTFILES =/r po/POTFILES' po/Makefile.in > po/Makefile], + fi], [target_cpu_type=${target_cpu_type} cgen_cpu_prefix=${cgen_cpu_prefix} obj_format=${obj_format}