X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=configure.ac;h=407ab595e76512090e3780b1c9d4b51a182665e3;hb=269f82e5eb0aa5d5b4c1accc858f95b62bc16df4;hp=6efc633c3087db5e23545558949363cd7b04c978;hpb=af0771d33353ca16455c1d1493d32faf02783ee5;p=deliverable%2Fbinutils-gdb.git
diff --git a/configure.ac b/configure.ac
index 6efc633c30..407ab595e7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,10 +1,10 @@
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-# 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation,
+# 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
# Inc.
#
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
+# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
@@ -13,8 +13,8 @@
# 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+# along with this program; see the file COPYING3. If not see
+# .
##############################################################################
### WARNING: this file contains embedded tabs. Do not run untabify on this file.
@@ -24,7 +24,8 @@ m4_include(config/override.m4)
m4_include(config/proginstall.m4)
AC_INIT(move-if-change)
-AC_PREREQ(2.59)
+AC_PREREQ(2.64)
+AC_DISABLE_OPTION_CHECKING
progname=$0
# if PWD already has a value, it is probably wrong.
@@ -78,6 +79,8 @@ m4_pattern_allow([^AS_FOR_BUILD$])dnl
AC_PROG_INSTALL
ACX_PROG_LN
AC_PROG_LN_S
+AC_PROG_SED
+AC_PROG_AWK
### we might need to use some other shell than /bin/sh for running subshells
### If we are on Windows, search for the shell. This will permit people
@@ -158,7 +161,7 @@ build_tools="build-texinfo build-byacc build-flex build-bison build-m4 build-fix
# these libraries are used by various programs built for the host environment
#
-host_libs="intl mmalloc libiberty opcodes bfd readline tcl tk itcl libgui zlib libcpp libdecnumber gmp mpfr ppl cloog"
+host_libs="intl mmalloc libiberty opcodes bfd readline tcl tk itcl libgui zlib libcpp libdecnumber gmp mpfr mpc ppl cloog libiconv"
# these tools are built for the host environment
# Note, the powerpc-eabi build depends on sim occurring before gdb in order to
@@ -166,7 +169,7 @@ host_libs="intl mmalloc libiberty opcodes bfd readline tcl tk itcl libgui zlib l
# binutils, gas and ld appear in that order because it makes sense to run
# "make check" in that particular order.
# If --enable-gold is used, "gold" will replace "ld".
-host_tools="texinfo byacc flex bison binutils gas ld fixincludes gcc sid sim gdb make patch prms send-pr gprof etc expect dejagnu ash bash bzip2 m4 autoconf automake libtool diff rcs fileutils shellutils time textutils wdiff find uudecode hello tar gzip indent recode release sed utils guile perl gawk findutils gettext zip fastjar gnattools"
+host_tools="texinfo byacc flex bison binutils gas ld fixincludes gcc cgen sid sim gdb make patch prms send-pr gprof etc expect dejagnu ash bash bzip2 m4 autoconf automake libtool diff rcs fileutils shellutils time textutils wdiff find uudecode hello tar gzip indent recode release sed utils guile perl gawk findutils gettext zip fastjar gnattools"
# libgcj represents the runtime libraries only used by gcj.
libgcj="target-libffi \
@@ -232,6 +235,11 @@ fi
# Find the build and target subdir names.
GCC_TOPLEV_SUBDIRS
+# Be sure to cover against remnants of an in-tree build.
+if test $srcdir != . && test -d $srcdir/host-${host_noncanonical}; then
+ AC_MSG_ERROR([building out of tree but $srcdir contains host-${host_noncanonical}.
+Use a pristine source tree when building in a separate tree])
+fi
# Skipdirs are removed silently.
skipdirs=
@@ -252,6 +260,13 @@ if test x$with_gnu_as = xno ; then
noconfigdirs="$noconfigdirs gas"
fi
+use_included_zlib=
+# Make sure we don't let ZLIB be added if we didn't want it.
+if test x$with_system_zlib = xyes ; then
+ use_included_zlib=no
+ noconfigdirs="$noconfigdirs zlib"
+fi
+
# some tools are so dependent upon X11 that if we're not building with X,
# it's not even worth trying to configure, much less build, that tool.
@@ -305,7 +320,7 @@ if test "${ENABLE_GOLD}" = "yes"; then
case "${target}" in
*-*-elf* | *-*-sysv4* | *-*-unixware* | *-*-eabi* | hppa*64*-*-hpux* \
| *-*-linux* | frv-*-uclinux* | *-*-irix5* | *-*-irix6* \
- | *-*-netbsd* | *-*-openbsd* | *-*-freebsd* | *-*-solaris2*)
+ | *-*-netbsd* | *-*-openbsd* | *-*-freebsd* | *-*-solaris2* | *-*-nto*)
case "${target}" in
*-*-linux*aout* | *-*-linux*oldld*)
;;
@@ -318,7 +333,7 @@ if test "${ENABLE_GOLD}" = "yes"; then
if test "$is_elf" = "yes"; then
# Check for target supported by gold.
case "${target}" in
- i?86-*-* | x86_64-*-* | sparc*-*-* | powerpc*-*-*)
+ i?86-*-* | x86_64-*-* | sparc*-*-* | powerpc*-*-* | arm*-*-*)
configdirs="`echo " ${configdirs} " | sed -e 's/ ld / gold /'`"
;;
esac
@@ -408,7 +423,7 @@ esac
# Disable libmudflap on some systems.
if test x$enable_libmudflap = x ; then
case "${target}" in
- *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | bfin*-*-uclinux*)
+ *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | bfin*-*-uclinux* | *-*-kopensolaris*-gnu)
# Enable libmudflap by default in GNU and friends.
;;
*-*-freebsd*)
@@ -425,7 +440,7 @@ fi
if test x$enable_libgomp = x ; then
# Enable libgomp by default on hosted POSIX systems.
case "${target}" in
- *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu)
+ *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | *-*-kopensolaris*-gnu)
;;
*-*-netbsd* | *-*-freebsd* | *-*-openbsd*)
;;
@@ -446,11 +461,15 @@ case "${target}" in
*-*-chorusos)
noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
;;
- powerpc-*-darwin* | x86_64-*-darwin[[912]]*)
+ powerpc-*-darwin*)
noconfigdirs="$noconfigdirs ld gas gdb gprof"
noconfigdirs="$noconfigdirs sim target-rda"
;;
i[[3456789]]86-*-darwin*)
+ noconfigdirs="$noconfigdirs ld gprof"
+ noconfigdirs="$noconfigdirs sim target-rda"
+ ;;
+ x86_64-*-darwin[[912]]*)
noconfigdirs="$noconfigdirs ld gas gprof"
noconfigdirs="$noconfigdirs sim target-rda"
;;
@@ -596,7 +615,8 @@ case "${target}" in
noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj} target-libssp"
;;
bfin-*-*)
- noconfigdirs="$noconfigdirs gdb"
+ unsupported_languages="$unsupported_languages java"
+ noconfigdirs="$noconfigdirs target-boehm-gc gdb"
if test x${is_cross_compiler} != xno ; then
target_configdirs="${target_configdirs} target-bsp target-cygmon"
fi
@@ -644,6 +664,10 @@ case "${target}" in
frv-*-*)
noconfigdirs="$noconfigdirs ${libgcj}"
;;
+ moxie-*-*)
+ noconfigdirs="$noconfigdirs ${libgcj}"
+ noconfigdirs="$noconfigdirs gprof"
+ ;;
h8300*-*-*)
noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
;;
@@ -688,6 +712,10 @@ case "${target}" in
# No gdb or ld support yet.
noconfigdirs="$noconfigdirs ${libgcj} readline mmalloc libgui itcl gdb ld"
;;
+ ia64*-*-*vms*)
+ # No gdb or ld support yet.
+ noconfigdirs="$noconfigdirs ${libgcj} tix readline mmalloc libgui itcl gdb ld"
+ ;;
i370-*-opened*)
;;
i[[3456789]]86-*-coff | i[[3456789]]86-*-elf)
@@ -723,7 +751,7 @@ case "${target}" in
;;
*-*-cygwin*)
target_configdirs="$target_configdirs target-libtermcap target-winsup"
- noconfigdirs="$noconfigdirs target-gperf target-libgloss ${libgcj}"
+ noconfigdirs="$noconfigdirs target-gperf target-libgloss"
# always build newlib if winsup directory is present.
if test -d "$srcdir/winsup/cygwin"; then
skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
@@ -793,7 +821,7 @@ case "${target}" in
;;
powerpc-*-aix*)
# copied from rs6000-*-* entry
- noconfigdirs="$noconfigdirs gprof target-libgloss target-libssp ${libgcj}"
+ noconfigdirs="$noconfigdirs gprof target-libgloss target-libssp target-newlib ${libgcj}"
;;
powerpc*-*-winnt* | powerpc*-*-pe* | ppc*-*-pe)
target_configdirs="$target_configdirs target-winsup"
@@ -820,7 +848,7 @@ case "${target}" in
noconfigdirs="$noconfigdirs target-newlib gprof ${libgcj}"
;;
rs6000-*-aix*)
- noconfigdirs="$noconfigdirs gprof target-libgloss target-libssp ${libgcj}"
+ noconfigdirs="$noconfigdirs gprof target-libgloss target-libssp target-newlib ${libgcj}"
;;
rs6000-*-*)
noconfigdirs="$noconfigdirs gprof ${libgcj}"
@@ -828,6 +856,9 @@ case "${target}" in
m68k-apollo-*)
noconfigdirs="$noconfigdirs ld binutils gprof target-libgloss ${libgcj}"
;;
+ microblaze*)
+ noconfigdirs="$noconfigdirs gprof ${libgcj}"
+ ;;
mips*-sde-elf*)
skipdirs="$skipdirs target-libiberty"
noconfigdirs="$noconfigdirs ${libgcj}"
@@ -866,7 +897,12 @@ case "${target}" in
i[[3456789]]86-*-msdosdjgpp*) ;; # don't add gprof back in
*) skipdirs=`echo " ${skipdirs} " | sed -e 's/ gprof / /'` ;;
esac
- noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
+ case "${target}" in
+ sh*-*-elf)
+ noconfigdirs="$noconfigdirs ${libgcj}" ;;
+ *)
+ noconfigdirs="$noconfigdirs target-libgloss ${libgcj}" ;;
+ esac
;;
sparclet-*-aout* | sparc86x-*-*)
libgloss_dir=sparc
@@ -919,7 +955,7 @@ case "${target}" in
ip2k-*-*)
noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}"
;;
- *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu)
+ *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | *-*-kopensolaris*-gnu)
noconfigdirs="$noconfigdirs target-newlib target-libgloss"
;;
*-*-lynxos*)
@@ -1183,10 +1219,48 @@ fi
ACX_PROG_GNAT
ACX_PROG_CMP_IGNORE_INITIAL
-# Check for GMP and MPFR
+# See if we are building gcc with C++.
+AC_ARG_ENABLE(build-with-cxx,
+[ --enable-build-with-cxx build with C++ compiler instead of C compiler],
+ENABLE_BUILD_WITH_CXX=$enableval,
+ENABLE_BUILD_WITH_CXX=no)
+
+# Check for GMP, MPFR and MPC
gmplibs="-lmpfr -lgmp"
gmpinc=
have_gmp=no
+mpclibs=-lmpc
+mpcinc=
+have_mpc=no
+
+# Specify a location for mpc
+# check for this first so it ends up on the link line before mpfr.
+AC_ARG_WITH(mpc, [ --with-mpc=PATH specify prefix directory for installed MPC package.
+ Equivalent to --with-mpc-include=PATH/include
+ plus --with-mpc-lib=PATH/lib])
+AC_ARG_WITH(mpc_include, [ --with-mpc-include=PATH
+ specify directory for installed MPC include files])
+AC_ARG_WITH(mpc_lib, [ --with-mpc-lib=PATH specify directory for the installed MPC library])
+
+if test "x$with_mpc" != x; then
+ mpclibs="-L$with_mpc/lib -lmpc"
+ mpcinc="-I$with_mpc/include $mpcinc"
+fi
+if test "x$with_mpc_include" != x; then
+ mpcinc="-I$with_mpc_include $mpcinc"
+fi
+if test "x$with_mpc_lib" != x; then
+ mpclibs="-L$with_mpc_lib -lmpc"
+fi
+if test "x$with_mpc$with_mpc_include$with_mpc_lib" = x && test -d ${srcdir}/mpc; then
+ mpclibs='-L$$r/$(HOST_SUBDIR)/mpc/src/.libs -L$$r/$(HOST_SUBDIR)/mpc/src/_libs -lmpc'
+ mpcinc='-I$$s/mpc/src '"$mpcinc"
+ # Do not test the mpc version. Assume that it is sufficient, since
+ # it is in the source tree, and the library has not been built yet
+ # but it would be included on the link line in the version check below
+ # hence making the test fail.
+ have_mpc=yes
+fi
# Specify a location for mpfr
# check for this first so it ends up on the link line before gmp.
@@ -1214,6 +1288,7 @@ fi
if test "x$with_mpfr$with_mpfr_include$with_mpfr_lib" = x && test -d ${srcdir}/mpfr; then
gmplibs='-L$$r/$(HOST_SUBDIR)/mpfr/.libs -L$$r/$(HOST_SUBDIR)/mpfr/_libs '"$gmplibs"
gmpinc='-I$$r/$(HOST_SUBDIR)/mpfr -I$$s/mpfr '"$gmpinc"
+ extra_mpc_mpfr_configure_flags='--with-mpfr-include=$$s/mpfr'
# Do not test the mpfr version. Assume that it is sufficient, since
# it is in the source tree, and the library has not been built yet
# but it would be included on the link line in the version check below
@@ -1246,6 +1321,8 @@ fi
if test "x$with_gmp$with_gmp_include$with_gmp_lib" = x && test -d ${srcdir}/gmp; then
gmplibs='-L$$r/$(HOST_SUBDIR)/gmp/.libs -L$$r/$(HOST_SUBDIR)/gmp/_libs '"$gmplibs"
gmpinc='-I$$r/$(HOST_SUBDIR)/gmp -I$$s/gmp '"$gmpinc"
+ extra_mpfr_configure_flags='--with-gmp-build=$$r/$(HOST_SUBDIR)/gmp'
+ extra_mpc_gmp_configure_flags='--with-gmp-include=$$r/$(HOST_SUBDIR)/gmp'
# Do not test the gmp version. Assume that it is sufficient, since
# it is in the source tree, and the library has not been built yet
# but it would be included on the link line in the version check below
@@ -1260,21 +1337,48 @@ if test -d ${srcdir}/gcc && test "x$have_gmp" = xno; then
# Check GMP actually works
AC_MSG_CHECKING([for correct version of gmp.h])
AC_TRY_COMPILE([#include "gmp.h"],[
- #if __GNU_MP_VERSION < 4 || (__GNU_MP_VERSION == 4 && __GNU_MP_VERSION_MINOR < 1)
+ #if __GNU_MP_VERSION < 4 || (__GNU_MP_VERSION == 4 && __GNU_MP_VERSION_MINOR < 2)
choke me
#endif
], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no]); have_gmp=no])
+ # If we have GMP, check the MPFR version.
if test x"$have_gmp" = xyes; then
- saved_LIBS="$LIBS"
- LIBS="$LIBS $gmplibs"
- dnl MPFR 2.3.0 is acceptable, but MPFR 2.3.2 is better.
+ dnl MPFR 2.3.1 is acceptable, but MPFR 2.3.2 is better.
AC_MSG_CHECKING([for correct version of mpfr.h])
- AC_TRY_LINK([#include
+ AC_TRY_COMPILE([#include
#include ],[
- #if MPFR_VERSION < MPFR_VERSION_NUM(2,3,0)
+ #if MPFR_VERSION < MPFR_VERSION_NUM(2,3,1)
choke me
#endif
+ ], AC_TRY_COMPILE([#include
+ #include ],[
+ #if MPFR_VERSION < MPFR_VERSION_NUM(2,3,2)
+ choke me
+ #endif
+ ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([buggy but acceptable])]),
+ [AC_MSG_RESULT([no]); have_gmp=no])
+ fi
+
+ # Check for the MPC header version.
+ if test x"$have_mpc" != xyes ; then
+ CFLAGS="$CFLAGS $mpcinc"
+ AC_MSG_CHECKING([for the correct version of mpc.h])
+ AC_TRY_COMPILE([#include ],[
+ #if MPC_VERSION < MPC_VERSION_NUM (0,7,0)
+ choke me
+ #endif
+ ], [AC_MSG_RESULT([yes]); have_mpc=maybe],
+ [AC_MSG_RESULT([no]); have_mpc=no; mpclibs= ; mpcinc= ])
+ fi
+
+ # Now check the MPFR library.
+ if test x"$have_gmp" = xyes; then
+ saved_LIBS="$LIBS"
+ LIBS="$LIBS $gmplibs"
+ AC_MSG_CHECKING([for the correct version of the gmp/mpfr libraries])
+ AC_TRY_LINK([#include
+ #include ],[
mpfr_t n;
mpfr_t x;
int t;
@@ -1283,20 +1387,41 @@ if test -d ${srcdir}/gcc && test "x$have_gmp" = xno; then
mpfr_atan2 (n, n, x, GMP_RNDN);
mpfr_erfc (n, x, GMP_RNDN);
mpfr_subnormalize (x, t, GMP_RNDN);
- ], [AC_TRY_LINK([#include
- #include ],[
- #if MPFR_VERSION < MPFR_VERSION_NUM(2,3,2)
- choke me
- #endif
- mpfr_t n; mpfr_init(n);
- ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([buggy but acceptable])])],
- [AC_MSG_RESULT([no]); have_gmp=no])
- LIBS="$saved_LIBS"
+ ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no]); have_gmp=no])
+ LIBS="$saved_LIBS"
fi
+
+ if test x"$have_mpc" = xmaybe; then
+ saved_LIBS="$LIBS"
+ LIBS="$LIBS $mpclibs $gmplibs"
+ AC_MSG_CHECKING([for the correct version of the mpc library])
+ AC_TRY_LINK([#include ],[
+ mpc_t n;
+ mpc_init2 (n, 53);
+ mpc_set_ui_ui (n, 1, 1, MPC_RNDNN);
+ mpc_sin (n, n, MPC_RNDNN);
+ mpc_cos (n, n, MPC_RNDNN);
+ mpc_tan (n, n, MPC_RNDNN);
+ mpc_sinh (n, n, MPC_RNDNN);
+ mpc_cosh (n, n, MPC_RNDNN);
+ mpc_tanh (n, n, MPC_RNDNN);
+ mpc_exp (n, n, MPC_RNDNN);
+ mpc_log (n, n, MPC_RNDNN);
+ mpc_sqrt (n, n, MPC_RNDNN);
+ mpc_proj (n, n, MPC_RNDNN);
+ mpc_neg (n, n, MPC_RNDNN);
+ mpc_sqr (n, n, MPC_RNDNN);
+ mpc_pow (n, n, n, MPC_RNDNN);
+ mpc_clear (n);
+ ], [AC_MSG_RESULT([yes]); have_mpc=yes],
+ [AC_MSG_RESULT([no]); have_mpc=no; mpclibs= ; mpcinc= ])
+ LIBS="$saved_LIBS"
+ fi
+
CFLAGS="$saved_CFLAGS"
if test x$have_gmp != xyes; then
- AC_MSG_ERROR([Building GCC requires GMP 4.1+ and MPFR 2.3.2+.
+ AC_MSG_ERROR([Building GCC requires GMP 4.2+ and MPFR 2.3.2+.
Try the --with-gmp and/or --with-mpfr options to specify their locations.
Copies of these libraries' source code can be found at their respective
hosting sites as well as at ftp://gcc.gnu.org/pub/gcc/infrastructure/.
@@ -1307,28 +1432,102 @@ They may be located in separate packages.])
fi
fi
-# Flags needed for both GMP and/or MPFR
+if test x$have_mpc != xyes ; then
+ mpcinc=
+ mpclibs=
+fi
+
+gmpinc="$mpcinc $gmpinc"
+gmplibs="$mpclibs $gmplibs"
+
+# Flags needed for both GMP, MPFR and/or MPC.
AC_SUBST(gmplibs)
AC_SUBST(gmpinc)
+AC_SUBST(extra_mpfr_configure_flags)
+AC_SUBST(extra_mpc_gmp_configure_flags)
+AC_SUBST(extra_mpc_mpfr_configure_flags)
+# Allow host libstdc++ to be specified for static linking with PPL.
+AC_ARG_WITH(host-libstdcxx, [ --with-host-libstdcxx=L Use linker arguments L to link with libstdc++
+ when linking with PPL])
+
+case $with_host_libstdcxx in
+ no|yes)
+ AC_MSG_ERROR([-with-host-libstdcxx needs an argument])
+ ;;
+esac
+
+# Linker flags to use for stage1 or when not boostrapping.
+AC_ARG_WITH(stage1-ldflags,
+[ --with-stage1-ldflags=FLAGS Linker flags for stage1],
+[if test "$withval" = "no" -o "$withval" = "yes"; then
+ stage1_ldflags=
+ else
+ stage1_ldflags=$withval
+ fi],
+[stage1_ldflags=])
+AC_SUBST(stage1_ldflags)
+
+# Libraries to use for stage1 or when not bootstrapping.
+AC_ARG_WITH(stage1-libs,
+[ -with-stage1-libs=LIBS Libraries for stage1],
+[if test "$withval" = "no" -o "$withval" = "yes"; then
+ stage1_libs=
+ else
+ stage1_libs=$withval
+ fi],
+[stage1_libs=$with_host_libstdcxx])
+AC_SUBST(stage1_libs)
+
+# Linker flags to use for stage2 and later builds.
+AC_ARG_WITH(boot-ldflags,
+[ --with-boot-ldflags=FLAGS Linker flags for stage2 and later],
+[if test "$withval" = "no" -o "$withval" = "yes"; then
+ poststage1_ldflags=
+ else
+ poststage1_ldflags=$withval
+ fi],
+[if test "$ENABLE_BUILD_WITH_CXX" = "yes"; then
+ poststage1_ldflags=-static-libstdc++
+ else
+ poststage1_ldflags=
+ fi])
+AC_SUBST(poststage1_ldflags)
+
+# Libraries to use for stage2 and later builds. This defaults to the
+# argument passed to --with-host-libstdcxx.
+AC_ARG_WITH(boot-libs,
+[ --with-boot-libs=LIBS Libraries for stage2 and later],
+[if test "$withval" = "no" -o "$withval" = "yes"; then
+ poststage1_libs=
+ else
+ poststage1_libs=$withval
+ fi],
+[poststage1_libs=$with_host_libstdcxx])
+AC_SUBST(poststage1_libs)
# Check for PPL
ppl_major_version=0
ppl_minor_version=10
-ppllibs=" -lppl_c -lppl -lgmpxx "
+ppllibs=" -lppl_c -lppl -lgmpxx"
pplinc=
AC_ARG_WITH(ppl, [ --with-ppl=PATH Specify prefix directory for the installed PPL package
Equivalent to --with-ppl-include=PATH/include
- plus --with-ppl-lib=PATH/lib])
+ plus --with-ppl-lib=PATH/lib],, with_ppl=no)
AC_ARG_WITH(ppl_include, [ --with-ppl-include=PATH Specify directory for installed PPL include files])
AC_ARG_WITH(ppl_lib, [ --with-ppl-lib=PATH Specify the directory for the installed PPL library])
-if test "x$with_ppl" != x; then
- ppllibs="-L$with_ppl/lib -lppl_c -lppl -lgmpxx"
- pplinc="-I$with_ppl/include $pplinc"
- LIBS="$ppllibs $LIBS"
-fi
+case $with_ppl in
+ no)
+ ppllibs=
+ ;;
+ *)
+ ppllibs="-L$with_ppl/lib -lppl_c -lppl -lgmpxx"
+ pplinc="-I$with_ppl/include $pplinc"
+ LIBS="$ppllibs $LIBS"
+ ;;
+esac
if test "x$with_ppl_include" != x; then
pplinc="-I$with_ppl_include $pplinc"
fi
@@ -1370,21 +1569,21 @@ clooginc=" -DCLOOG_PPL_BACKEND "
AC_ARG_WITH(cloog, [ --with-cloog=PATH Specify prefix directory for the installed CLooG-PPL package
Equivalent to --with-cloog-include=PATH/include
- plus --with-cloog-lib=PATH/lib])
+ plus --with-cloog-lib=PATH/lib],, with_cloog=no)
AC_ARG_WITH(cloog_include, [ --with-cloog-include=PATH Specify directory for installed CLooG include files])
AC_ARG_WITH(cloog_lib, [ --with-cloog-lib=PATH Specify the directory for the installed CLooG library])
-AC_ARG_WITH(cloog-polylib, [ --with-cloog-polylib=PATH Specify prefix directory for the installed CLooG-PolyLib package])
-if test "x$with_cloog" != x; then
- clooglibs="-L$with_cloog/lib -lcloog"
- clooginc="-I$with_cloog/include -DCLOOG_PPL_BACKEND "
- LIBS="$clooglibs $LIBS"
-fi
-if test "x$with_cloog_polylib" != x; then
- clooglibs="-L$with_cloog/lib -lcloog"
- clooginc="-I$with_cloog/include "
- LIBS="$clooglibs $LIBS"
-fi
+case $with_cloog in
+ no)
+ clooglibs=
+ clooginc=
+ ;;
+ *)
+ clooglibs="-L$with_cloog/lib -lcloog"
+ clooginc="-I$with_cloog/include -DCLOOG_PPL_BACKEND "
+ LIBS="$clooglibs $LIBS"
+ ;;
+esac
if test "x$with_cloog_include" != x; then
clooginc="-I$with_cloog_include -DCLOOG_PPL_BACKEND "
fi
@@ -1419,10 +1618,134 @@ fi
AC_SUBST(clooglibs)
AC_SUBST(clooginc)
+# Check for LTO support.
+AC_ARG_ENABLE(lto,
+[ --enable-lto enable link time optimization support],
+enable_lto=$enableval,
+enable_lto=yes; default_enable_lto=yes)
+
+if test x"$enable_lto" = x"yes" ; then
+ # Make sure that libelf.h and gelf.h are available.
+ AC_ARG_WITH(libelf, [ --with-libelf=PATH Specify prefix directory for the installed libelf package
+ Equivalent to --with-libelf-include=PATH/include
+ plus --with-libelf-lib=PATH/lib])
+
+ AC_ARG_WITH(libelf_include, [ --with-libelf-include=PATH Specify directory for installed libelf include files])
+
+ AC_ARG_WITH(libelf_lib, [ --with-libelf-lib=PATH Specify the directory for the installed libelf library])
+
+ case $with_libelf in
+ "")
+ libelflibs="-lelf"
+ libelfinc="-I/usr/include/libelf"
+ ;;
+ *)
+ libelflibs="-L$with_libelf/lib -lelf"
+ libelfinc="-I$with_libelf/include -I$with_libelf/include/libelf"
+ LIBS="$libelflibs $LIBS"
+ ;;
+ esac
+
+ if test "x$with_libelf_include" != x; then
+ libelfinc="-I$with_libelf_include"
+ fi
+
+ if test "x$with_libelf_lib" != x; then
+ libelflibs="-L$with_libelf_lib -lelf"
+ LIBS="$libelflibs $LIBS"
+ fi
+
+ if test "x$with_libelf$with_libelf_include$with_libelf_lib" = x \
+ && test -d ${srcdir}/libelf; then
+ libelflibs='-L$$r/$(HOST_SUBDIR)/libelf/.libs -L$$r/$(HOST_SUBDIR)/libelf/_libs -lelf '
+ libelfinc='-I$$r/$(HOST_SUBDIR)/libelf/include -I$$s/libelf/include'
+ LIBS="$libelflibs $LIBS"
+ fi
+
+ saved_CFLAGS="$CFLAGS"
+ saved_CPPFLAGS="$CPPFLAGS"
+ saved_LIBS="$LIBS"
+
+ CFLAGS="$CFLAGS $libelfinc"
+ CPPFLAGS="$CPPFLAGS $libelfinc"
+ LIBS="$LIBS $libelflibs"
+
+ AC_CHECK_HEADERS(libelf.h, [have_libelf_h=yes])
+ AC_CHECK_HEADERS(gelf.h, [have_gelf_h=yes])
+
+ AC_CHECK_HEADERS(libelf/libelf.h, [have_libelf_libelf_h=yes])
+ AC_CHECK_HEADERS(libelf/gelf.h, [have_libelf_gelf_h=yes])
+
+ # If we couldn't find libelf.h and the user forced it, emit an error.
+ if test x"$have_libelf_h" != x"yes" \
+ && test x"$have_libelf_libelf_h" != x"yes" ; then
+ if test x"$default_enable_lto" != x"yes" ; then
+ AC_MSG_ERROR([LTO support requires libelf.h or libelf/libelf.h.])
+ else
+ enable_lto=no
+ libelflibs=
+ libelfinc=
+ fi
+ fi
+
+ # If we couldn't find gelf.h and the user forced it, emit an error.
+ if test x"$have_gelf_h" != x"yes" \
+ && test x"$have_libelf_gelf_h" != x"yes" ; then
+ if test x"$default_enable_lto" != x"yes" ; then
+ AC_MSG_ERROR([LTO support requires gelf.h or libelf/gelf.h.])
+ else
+ enable_lto=no
+ libelflibs=
+ libelfinc=
+ fi
+ fi
+
+ # Check that the detected libelf has the functions we need. We cannot
+ # rely on just detecting the headers since they do not include
+ # versioning information. Add functions, if needed.
+ if test x"$enable_lto" = x"yes" ; then
+ AC_MSG_CHECKING([for the correct version of libelf])
+ AC_TRY_LINK(
+ [#include ],[
+ elf_errmsg (0);
+ elf_getscn (0, 0);
+ elf_nextscn (0, 0);
+ elf_strptr (0, 0, 0);
+ elf_getident (0, 0);
+ elf_getshdrstrndx (0, 0);
+ elf_begin (0, 0, 0);
+ elf_ndxscn (0);
+ elf_end (0);
+ ],
+ [AC_MSG_RESULT([yes]);],
+ [AC_MSG_RESULT([no]); enable_lto=no; libelflibs= ; libelfinc= ]
+ )
+
+ # If we couldn't enable LTO and the user forced it, emit an error.
+ if test x"$enable_lto" = x"no" \
+ && test x"$default_enable_lto" != x"yes" ; then
+ AC_MSG_ERROR([To enable LTO, GCC requires libelf v0.8.12+.
+Try the --with-libelf, --with-libelf-include and --with-libelf-lib options
+to specify its location.])
+ fi
+ fi
+
+ CFLAGS="$saved_CFLAGS"
+ CPPFLAGS="$saved_CPPFLAGS"
+ LIBS="$saved_LIBS"
+
+ # Flags needed for libelf.
+ AC_SUBST(libelflibs)
+ AC_SUBST(libelfinc)
+fi
+
# By default, C is the only stage 1 language.
stage1_languages=,c,
+# Target libraries that we bootstrap.
+bootstrap_target_libs=,target-libgcc,
+
# Figure out what language subdirectories are present.
# Look if the user specified --enable-languages="..."; if not, use
# the environment variable $LANGUAGES if defined. $LANGUAGES might
@@ -1484,6 +1807,21 @@ if test -d ${srcdir}/gcc; then
done
new_enable_languages=,c,
+
+ # If LTO is enabled, add the LTO front end.
+ extra_host_libiberty_configure_flags=
+ if test "$enable_lto" = "yes" ; then
+ case ,${enable_languages}, in
+ *,lto,*) ;;
+ *) enable_languages="${enable_languages},lto" ;;
+ esac
+ if test "${ENABLE_GOLD}" = "yes" ; then
+ configdirs="$configdirs lto-plugin"
+ extra_host_libiberty_configure_flags=--enable-shared
+ fi
+ fi
+ AC_SUBST(extra_host_libiberty_configure_flags)
+
missing_languages=`echo ",$enable_languages," | sed -e s/,all,/,/ -e s/,c,/,/ `
potential_languages=,c,
@@ -1508,6 +1846,10 @@ if test -d ${srcdir}/gcc; then
exit 1
fi
+ if test "$language" = "c++" -a "$ENABLE_BUILD_WITH_CXX" = "yes"; then
+ boot_language=yes
+ fi
+
case ,${enable_languages}, in
*,${language},*)
# Language was explicitly selected; include it.
@@ -1570,10 +1912,15 @@ if test -d ${srcdir}/gcc; then
new_enable_languages="${new_enable_languages}${language},"
potential_languages="${potential_languages}${language},"
missing_languages=`echo "$missing_languages" | sed "s/,$language,/,/"`
- case ${boot_language} in
- yes)
+ case "${boot_language}:,$enable_stage1_languages," in
+ yes:* | *:*,$language,* | *:*,yes, | *:*,all,)
# Add to (comma-separated) list of stage 1 languages.
- stage1_languages="${stage1_languages}${language},"
+ case ",$stage1_languages," in
+ *,$language,* | ,yes, | ,all,) ;;
+ *) stage1_languages="${stage1_languages}${language}," ;;
+ esac
+ # We need to bootstrap any supporting libraries.
+ bootstrap_target_libs="${bootstrap_target_libs}${target_libs},"
;;
esac
;;
@@ -1884,7 +2231,7 @@ if test x"${with_libs}" != x && test x"${with_libs}" != xno ; then
fi
fi
-# Set with_gnu_as and with_gnu_ld as appropriate.
+# Set with_gnu_as, with_gnu_ld, and with_system_zlib as appropriate.
#
# This is done by determining whether or not the appropriate directory
# is available, and by checking whether or not specific configurations
@@ -1895,7 +2242,9 @@ fi
#
# If the default for a toolchain is to use GNU as and ld, and you don't
# want to do that, then you should use the --without-gnu-as and
-# --without-gnu-ld options for the configure script.
+# --without-gnu-ld options for the configure script. Similarly, if
+# the default is to use the included zlib and you don't want to do that,
+# you should use the --with-system-zlib option for the configure script.
if test x${use_gnu_as} = x &&
echo " ${configdirs} " | grep " gas " > /dev/null 2>&1 ; then
@@ -1909,6 +2258,14 @@ if test x${use_gnu_ld} = x &&
extra_host_args="$extra_host_args --with-gnu-ld"
fi
+if test x${use_included_zlib} = x &&
+ echo " ${configdirs} " | grep " zlib " > /dev/null 2>&1 ; then
+ :
+else
+ with_system_zlib=yes
+ extra_host_args="$extra_host_args --with-system-zlib"
+fi
+
# If using newlib, add --with-newlib to the extra_host_args so that gcc/configure
# can detect this case.
@@ -2020,7 +2377,7 @@ case "${target}" in
*-*-netware*)
target_makefile_frag="config/mt-netware"
;;
- *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu)
+ *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | *-*-kopensolaris*-gnu)
target_makefile_frag="config/mt-gnu"
;;
*-*-aix4.[[3456789]]* | *-*-aix[[56789]].*)
@@ -2216,12 +2573,13 @@ INSTALL_GDB_TK=`echo ${GDB_TK} | sed s/-all-/-install-/g`
# configuration, so that the top-level Makefile reconfigures them,
# like we used to do when configure itself was recursive.
-# Loop over modules. $extrasub must be used with care, limiting as
-# much as possible the usage of range addresses. That's because autoconf
-# splits the sed script to overcome limits in the number of commands,
-# and relying on carefully-timed sed passes may turn out to be very hard
-# to maintain later. In this particular case, you just have to be careful
-# not to nest @if/@endif pairs, because configure will not warn you at all.
+# Loop over modules. We used to use the "$extrasub" feature from Autoconf
+# but now we're fixing up the Makefile ourselves with the additional
+# commands passed to AC_CONFIG_FILES. Use separate variables
+# extrasub-{build,host,target} not because there is any reason to split
+# the substitutions up that way, but only to remain below the limit of
+# 99 commands in a script, for HP-UX sed.
+# Do not nest @if/@endif pairs, because configure will not warn you at all.
AC_ARG_ENABLE([bootstrap],
[ --enable-bootstrap enable bootstrapping @<:@yes if native build@:>@],,
@@ -2264,26 +2622,78 @@ case "$have_compiler:$host:$target:$enable_bootstrap" in
;;
esac
+case ",$enable_languages,:$ENABLE_BUILD_WITH_CXX:$enable_bootstrap" in
+ *,c++,*:yes:yes) ;;
+ *:yes:yes)
+ AC_MSG_ERROR([bootstrapping with --enable-build-with-cxx requires c++ in --enable-languages])
+ ;;
+esac
+
+case "$enable_bootstrap:$ENABLE_GOLD: $configdirs :,$stage1_languages," in
+ yes:yes:*\ gold\ *:*,c++,*) ;;
+ yes:yes:*\ gold\ *:*)
+ AC_MSG_ERROR([in a combined tree, bootstrapping with --enable-gold requires c++ in stage1_languages])
+ ;;
+esac
+
# Adjust the toplevel makefile according to whether bootstrap was selected.
-case "$enable_bootstrap" in
+case $enable_bootstrap in
yes)
- bootstrap_suffix=bootstrap ;;
+ bootstrap_suffix=bootstrap
+ BUILD_CONFIG=bootstrap-debug
+ ;;
no)
- bootstrap_suffix=no-bootstrap ;;
+ bootstrap_suffix=no-bootstrap
+ BUILD_CONFIG=
+ ;;
esac
+AC_MSG_CHECKING(for default BUILD_CONFIG)
+
+AC_ARG_WITH([build-config],
+ [--with-build-config='NAME NAME2...'
+ Use config/NAME.mk build configuration],
+ [case $with_build_config in
+ yes) with_build_config= ;;
+ no) with_build_config= BUILD_CONFIG= ;;
+ esac])
+
+if test "x${with_build_config}" != x; then
+ BUILD_CONFIG=$with_build_config
+else
+ case $BUILD_CONFIG in
+ bootstrap-debug)
+ if echo "int f (void) { return 0; }" > conftest.c &&
+ ${CC} -c conftest.c &&
+ mv conftest.o conftest.o.g0 &&
+ ${CC} -c -g conftest.c &&
+ mv conftest.o conftest.o.g &&
+ ${srcdir}/contrib/compare-debug conftest.o.g0 conftest.o.g; then
+ :
+ else
+ BUILD_CONFIG=
+ fi
+ rm -f conftest.c conftest.o conftest.o.g0 conftest.o.g
+ ;;
+ esac
+fi
+AC_MSG_RESULT($BUILD_CONFIG)
+AC_SUBST(BUILD_CONFIG)
+
+extrasub_build=
for module in ${build_configdirs} ; do
if test -z "${no_recursion}" \
&& test -f ${build_subdir}/${module}/Makefile; then
echo 1>&2 "*** removing ${build_subdir}/${module}/Makefile to force reconfigure"
rm -f ${build_subdir}/${module}/Makefile
fi
- extrasub="$extrasub
+ extrasub_build="$extrasub_build
/^@if build-$module\$/d
/^@endif build-$module\$/d
/^@if build-$module-$bootstrap_suffix\$/d
/^@endif build-$module-$bootstrap_suffix\$/d"
done
+extrasub_host=
for module in ${configdirs} ; do
if test -z "${no_recursion}"; then
for file in stage*-${module}/Makefile prev-${module}/Makefile ${module}/Makefile; do
@@ -2293,26 +2703,35 @@ for module in ${configdirs} ; do
fi
done
fi
- extrasub="$extrasub
+ extrasub_host="$extrasub_host
/^@if $module\$/d
/^@endif $module\$/d
/^@if $module-$bootstrap_suffix\$/d
/^@endif $module-$bootstrap_suffix\$/d"
done
+extrasub_target=
for module in ${target_configdirs} ; do
if test -z "${no_recursion}" \
&& test -f ${target_subdir}/${module}/Makefile; then
echo 1>&2 "*** removing ${target_subdir}/${module}/Makefile to force reconfigure"
rm -f ${target_subdir}/${module}/Makefile
fi
- extrasub="$extrasub
+
+ # We only bootstrap target libraries listed in bootstrap_target_libs.
+ case $bootstrap_target_libs in
+ *,target-$module,*) target_bootstrap_suffix=$bootstrap_suffix ;;
+ *) target_bootstrap_suffix=no-bootstrap ;;
+ esac
+
+ extrasub_target="$extrasub_target
/^@if target-$module\$/d
/^@endif target-$module\$/d
-/^@if target-$module-$bootstrap_suffix\$/d
-/^@endif target-$module-$bootstrap_suffix\$/d"
+/^@if target-$module-$target_bootstrap_suffix\$/d
+/^@endif target-$module-$target_bootstrap_suffix\$/d"
done
-extrasub="$extrasub
+# Do the final fixup along with target modules.
+extrasub_target="$extrasub_target
/^@if /,/^@endif /d"
# Create the serialization dependencies. This uses a temporary file.
@@ -2367,9 +2786,11 @@ AC_SUBST_FILE(serialization_dependencies)
# Base args. Strip norecursion, cache-file, srcdir, host, build,
# target, nonopt, and variable assignments. These are the ones we
-# might not want to pass down to subconfigures. Also strip
-# program-prefix, program-suffix, and program-transform-name, so that
-# we can pass down a consistent program-transform-name.
+# might not want to pass down to subconfigures. The exception being
+# --cache-file=/dev/null, which is used to turn off the use of cache
+# files altogether, and which should be passed on to subconfigures.
+# Also strip program-prefix, program-suffix, and program-transform-name,
+# so that we can pass down a consistent program-transform-name.
baseargs=
keep_next=no
skip_next=no
@@ -2408,6 +2829,13 @@ do
esac
case "$ac_arg" in
+ --cache-file=/dev/null | \
+ -cache-file=/dev/null )
+ # Handled here to avoid the test to skip args below.
+ baseargs="$baseargs '$ac_arg'"
+ # Assert: $separate_arg should always be no.
+ keep_next=$separate_arg
+ ;;
--no*)
continue
;;
@@ -2464,6 +2892,7 @@ baseargs="$baseargs --program-transform-name='${gcc_transform_name}'"
if test "$silent" = yes; then
baseargs="$baseargs --silent"
fi
+baseargs="$baseargs --disable-option-checking"
# For the build-side libraries, we just need to pretend we're native,
# and not use the same cache file. Multilibs are neither needed nor
@@ -2708,10 +3137,10 @@ case " $build_configdirs " in
*" texinfo "*) MAKEINFO='$$r/$(BUILD_SUBDIR)/texinfo/makeinfo/makeinfo' ;;
*)
changequote(,)
- # For an installed makeinfo, we require it to be from texinfo 4.6 or
+ # For an installed makeinfo, we require it to be from texinfo 4.7 or
# higher, else we use the "missing" dummy.
if ${MAKEINFO} --version \
- | egrep 'texinfo[^0-9]*(4\.([6-9]|[1-9][0-9])|[5-9]|[1-9][0-9])' >/dev/null 2>&1; then
+ | egrep 'texinfo[^0-9]*(4\.([7-9]|[1-9][0-9])|[5-9]|[1-9][0-9])' >/dev/null 2>&1; then
:
else
MAKEINFO="$MISSING makeinfo"
@@ -2873,7 +3302,7 @@ case $build in
esac
# This is aimed to mimic bootstrap with a non-GCC compiler to catch problems.
-if test "$GCC" = yes; then
+if test "$GCC" = yes -a "$ENABLE_BUILD_WITH_CXX" != yes; then
saved_CFLAGS="$CFLAGS"
# Pass -fkeep-inline-functions for stage 1 if the GCC version supports it.
@@ -2920,30 +3349,21 @@ case ${enable_werror} in
esac
AC_SUBST(stage2_werror_flag)
-# Flags needed to enable html installing and building
-AC_ARG_WITH(datarootdir,
-[ --with-datarootdir use datarootdir as the data root directory.],
-[datarootdir="\${prefix}/${withval}"],
-[datarootdir="\${prefix}/share"])
-
-AC_ARG_WITH(docdir,
-[ --with-docdir install documentation in this directory.],
-[docdir="\${prefix}/${withval}"],
-[docdir="\${datarootdir}/doc"])
-
-AC_ARG_WITH(pdfdir,
-[ --with-pdfdir install pdf in this directory.],
-[pdfdir="\${prefix}/${withval}"],
-[pdfdir="\${docdir}"])
-
-AC_ARG_WITH(htmldir,
-[ --with-htmldir install html in this directory.],
-[htmldir="\${prefix}/${withval}"],
-[htmldir="\${docdir}"])
-
-AC_SUBST(datarootdir)
-AC_SUBST(docdir)
-AC_SUBST(pdfdir)
-AC_SUBST(htmldir)
-
-AC_OUTPUT(Makefile)
+# Specify what files to not compare during bootstrap.
+
+compare_exclusions="gcc/cc*-checksum\$(objext) | gcc/ada/*tools/*"
+case "$target" in
+ hppa*64*-*-hpux*) ;;
+ hppa*-*-hpux*) compare_exclusions="gcc/cc*-checksum\$(objext) | */libgcc/lib2funcs* | gcc/ada/*tools/*" ;;
+esac
+AC_SUBST(compare_exclusions)
+
+AC_CONFIG_FILES([Makefile],
+ [sed "$extrasub_build" Makefile |
+ sed "$extrasub_host" |
+ sed "$extrasub_target" > mf$$
+ mv -f mf$$ Makefile],
+ [extrasub_build="$extrasub_build"
+ extrasub_host="$extrasub_host"
+ extrasub_target="$extrasub_target"])
+AC_OUTPUT