X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=configure.ac;h=72407f86878077893d929a9ae6faa8ab74baf404;hp=ad2c86a5a2559bd951f115ef841f7d67e54c46bf;hb=59a40389351c0874ad843091f7403e52354c4e43;hpb=115d57c573871ce5eaf54d3fca7ef99b5628b630 diff --git a/configure.ac b/configure.ac index ad2c86a5a25..72407f86878 100644 --- a/configure.ac +++ b/configure.ac @@ -1,6 +1,6 @@ # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, -# 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 +# 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 @@ -22,9 +22,15 @@ m4_include(config/acx.m4) m4_include(config/override.m4) m4_include(config/proginstall.m4) +m4_include(config/elf.m4) +m4_include([libtool.m4]) +m4_include([ltoptions.m4]) +m4_include([ltsugar.m4]) +m4_include([ltversion.m4]) +m4_include([lt~obsolete.m4]) AC_INIT(move-if-change) -AC_PREREQ(2.59) +AC_PREREQ(2.64) AC_DISABLE_OPTION_CHECKING progname=$0 @@ -79,6 +85,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 @@ -159,7 +167,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 mpc ppl cloog libiconv" +host_libs="intl mmalloc libiberty opcodes bfd readline tcl tk itcl libgui zlib libcpp libdecnumber gmp mpfr mpc ppl cloog libelf libiconv" # these tools are built for the host environment # Note, the powerpc-eabi build depends on sim occurring before gdb in order to @@ -233,6 +241,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= @@ -253,6 +266,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. @@ -478,6 +498,7 @@ case "${target}" in case "${target}" in i*86-*-*) ;; alpha*-*-*) ;; + x86_64-*-*) ;; *) noconfigdirs="$noconfigdirs ${libgcj}" ;; @@ -601,7 +622,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 @@ -726,14 +748,16 @@ case "${target}" in # if the --with-newlib option has been given, because otherwise # 'target-newlib' will appear in skipdirs. ;; - i[[3456789]]86-*-mingw32*) + i[[3456789]]86-w64-mingw*) + noconfigdirs="$noconfigdirs expect target-libgloss target-newlib ${libgcj}" + ;; + i[[3456789]]86-*-mingw*) target_configdirs="$target_configdirs target-winsup" noconfigdirs="$noconfigdirs expect target-libgloss target-newlib ${libgcj}" - ;; + ;; x86_64-*-mingw*) - target_configdirs="$target_configdirs target-winsup" noconfigdirs="$noconfigdirs expect target-libgloss target-newlib ${libgcj}" - ;; + ;; *-*-cygwin*) target_configdirs="$target_configdirs target-libtermcap target-winsup" noconfigdirs="$noconfigdirs target-gperf target-libgloss" @@ -743,7 +767,7 @@ case "${target}" in elif test -d "$srcdir/newlib"; then echo "Warning: winsup/cygwin is missing so newlib can't be built." fi - ;; + ;; i[[3456789]]86-moss-msdos | i[[3456789]]86-*-moss* | \ i[[3456789]]86-*-uwin* | i[[3456789]]86-*-interix* ) ;; @@ -916,6 +940,9 @@ case "${target}" in ;; sparc-*-solaris* | sparc64-*-solaris* | sparcv9-*-solaris*) ;; + tic6x-*-*) + noconfigdirs="$noconfigdirs gdb sim ${libgcj}" + ;; v810-*-*) noconfigdirs="$noconfigdirs bfd binutils gas gcc gdb ld target-libstdc++-v3 opcodes target-libgloss ${libgcj}" ;; @@ -1210,13 +1237,13 @@ AC_ARG_ENABLE(build-with-cxx, ENABLE_BUILD_WITH_CXX=$enableval, ENABLE_BUILD_WITH_CXX=no) +# Used for setting $lt_cv_objdir +_LT_CHECK_OBJDIR + # Check for GMP, MPFR and MPC -gmplibs="-lmpfr -lgmp" +gmplibs="-lmpc -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. @@ -1228,23 +1255,23 @@ AC_ARG_WITH(mpc_include, [ --with-mpc-include=PATH 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" + gmplibs="-L$with_mpc/lib $gmplibs" + gmpinc="-I$with_mpc/include $gmpinc" fi if test "x$with_mpc_include" != x; then - mpcinc="-I$with_mpc_include $mpcinc" + gmpinc="-I$with_mpc_include $gmpinc" fi if test "x$with_mpc_lib" != x; then - mpclibs="-L$with_mpc_lib -lmpc" + gmplibs="-L$with_mpc_lib $gmplibs" 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" + gmplibs='-L$$r/$(HOST_SUBDIR)/mpc/src/'"$lt_cv_objdir $gmplibs" + gmpinc='-I$$s/mpc/src '"$gmpinc" # 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 + have_gmp=yes fi # Specify a location for mpfr @@ -1262,18 +1289,18 @@ AC_ARG_WITH(mpfr_lib, [ --with-mpfr-lib=PATH specify directory for the insta if test "x$with_mpfr" != x; then gmplibs="-L$with_mpfr/lib $gmplibs" - gmpinc="-I$with_mpfr/include" + gmpinc="-I$with_mpfr/include $gmpinc" fi if test "x$with_mpfr_include" != x; then - gmpinc="-I$with_mpfr_include" + gmpinc="-I$with_mpfr_include $gmpinc" fi if test "x$with_mpfr_lib" != x; then gmplibs="-L$with_mpfr_lib $gmplibs" 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" + gmplibs='-L$$r/$(HOST_SUBDIR)/mpfr/'"$lt_cv_objdir $gmplibs" gmpinc='-I$$r/$(HOST_SUBDIR)/mpfr -I$$s/mpfr '"$gmpinc" - extra_mpc_mpfr_configure_flags='--with-mpfr-include=$$s/mpfr' + extra_mpc_mpfr_configure_flags='--with-mpfr-include=$$s/mpfr --with-mpfr-lib=$$r/$(HOST_SUBDIR)/mpfr/'"$lt_cv_objdir" # 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 @@ -1304,10 +1331,10 @@ if test "x$with_gmp_lib" != x; then gmplibs="-L$with_gmp_lib $gmplibs" 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" + gmplibs='-L$$r/$(HOST_SUBDIR)/gmp/'"$lt_cv_objdir $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' + extra_mpc_gmp_configure_flags='--with-gmp-include=$$r/$(HOST_SUBDIR)/gmp --with-gmp-lib=$$r/$(HOST_SUBDIR)/gmp/'"$lt_cv_objdir" # 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 @@ -1319,18 +1346,27 @@ if test -d ${srcdir}/gcc && test "x$have_gmp" = xno; then have_gmp=yes saved_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $gmpinc" - # Check GMP actually works - AC_MSG_CHECKING([for correct version of gmp.h]) + # Check for the recommended and required versions of GMP. + AC_MSG_CHECKING([for the correct version of gmp.h]) AC_TRY_COMPILE([#include "gmp.h"],[ - #if __GNU_MP_VERSION < 4 || (__GNU_MP_VERSION == 4 && __GNU_MP_VERSION_MINOR < 2) + #define GCC_GMP_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c)) + #define GCC_GMP_VERSION GCC_GMP_VERSION_NUM(__GNU_MP_VERSION,__GNU_MP_VERSION_MINOR,__GNU_MP_VERSION_PATCHLEVEL) + #if GCC_GMP_VERSION < GCC_GMP_VERSION_NUM(4,2,0) + choke me + #endif + ], AC_TRY_COMPILE([#include ],[ + #define GCC_GMP_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c)) + #define GCC_GMP_VERSION GCC_GMP_VERSION_NUM(__GNU_MP_VERSION,__GNU_MP_VERSION_MINOR,__GNU_MP_VERSION_PATCHLEVEL) + #if GCC_GMP_VERSION < GCC_GMP_VERSION_NUM(4,3,2) choke me #endif - ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no]); have_gmp=no]) + ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([buggy but acceptable])]), + [AC_MSG_RESULT([no]); have_gmp=no]) # If we have GMP, check the MPFR version. if test x"$have_gmp" = xyes; then - dnl MPFR 2.3.1 is acceptable, but MPFR 2.3.2 is better. - AC_MSG_CHECKING([for correct version of mpfr.h]) + # Check for the recommended and required versions of MPFR. + AC_MSG_CHECKING([for the correct version of mpfr.h]) AC_TRY_COMPILE([#include #include ],[ #if MPFR_VERSION < MPFR_VERSION_NUM(2,3,1) @@ -1338,7 +1374,7 @@ if test -d ${srcdir}/gcc && test "x$have_gmp" = xno; then #endif ], AC_TRY_COMPILE([#include #include ],[ - #if MPFR_VERSION < MPFR_VERSION_NUM(2,3,2) + #if MPFR_VERSION < MPFR_VERSION_NUM(2,4,2) choke me #endif ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([buggy but acceptable])]), @@ -1346,84 +1382,65 @@ if test -d ${srcdir}/gcc && test "x$have_gmp" = xno; then fi # Check for the MPC header version. - if test x"$have_mpc" != xyes ; then - CFLAGS="$CFLAGS $mpcinc" + if test x"$have_gmp" = xyes ; then + # Check for the recommended and required versions of MPC. AC_MSG_CHECKING([for the correct version of mpc.h]) AC_TRY_COMPILE([#include ],[ - #if MPC_VERSION < MPC_VERSION_NUM (0,6,0) + #if MPC_VERSION < MPC_VERSION_NUM(0,8,0) + choke me + #endif + ], AC_TRY_COMPILE([#include ],[ + #if MPC_VERSION < MPC_VERSION_NUM(0,8,1) choke me #endif - ], [AC_MSG_RESULT([yes]); have_mpc=maybe], - [AC_MSG_RESULT([no]); have_mpc=no; mpclibs= ; mpcinc= ]) + ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([buggy but acceptable])]), + [AC_MSG_RESULT([no]); have_gmp=no]) 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 ],[ + AC_MSG_CHECKING([for the correct version of the gmp/mpfr/mpc libraries]) + AC_TRY_LINK([#include ],[ mpfr_t n; mpfr_t x; + mpc_t c; int t; mpfr_init (n); mpfr_init (x); mpfr_atan2 (n, n, x, GMP_RNDN); mpfr_erfc (n, x, GMP_RNDN); mpfr_subnormalize (x, t, GMP_RNDN); + mpfr_clear(n); + mpfr_clear(x); + mpc_init2 (c, 53); + mpc_set_ui_ui (c, 1, 1, MPC_RNDNN); + mpc_cosh (c, c, MPC_RNDNN); + mpc_pow (c, c, c, MPC_RNDNN); + mpc_acosh (c, c, MPC_RNDNN); + mpc_clear (c); ], [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_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" +# The library versions listed in the error message below should match +# the HARD-minimums enforced above. if test x$have_gmp != xyes; then - 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/. -See also http://gcc.gnu.org/install/prerequisites.html for additional info. -If you obtained GMP and/or MPFR from a vendor distribution package, make -sure that you have installed both the libraries and the header files. -They may be located in separate packages.]) + AC_MSG_ERROR([Building GCC requires GMP 4.2+, MPFR 2.3.1+ and MPC 0.8.0+. +Try the --with-gmp, --with-mpfr and/or --with-mpc options to specify +their locations. Source code for these libraries can be found at +their respective hosting sites as well as at +ftp://gcc.gnu.org/pub/gcc/infrastructure/. See also +http://gcc.gnu.org/install/prerequisites.html for additional info. If +you obtained GMP, MPFR and/or MPC from a vendor distribution package, +make sure that you have installed both the libraries and the header +files. They may be located in separate packages.]) fi fi -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) @@ -1463,21 +1480,6 @@ AC_ARG_WITH(stage1-libs, [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, @@ -1490,6 +1492,23 @@ AC_ARG_WITH(boot-libs, [poststage1_libs=$with_host_libstdcxx]) AC_SUBST(poststage1_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], +[poststage1_ldflags= + # With --enable-build-with-cxx, default to linking libstdc++ and + # libgcc statically. But if the user explicitly specified the + # libraries to use, trust that they are doing what they want. + if test "$ENABLE_BUILD_WITH_CXX" = "yes" -a "$poststage1_libs" = ""; then + poststage1_ldflags="-static-libstdc++ -static-libgcc" + fi]) +AC_SUBST(poststage1_ldflags) + # Check for PPL ppl_major_version=0 ppl_minor_version=10 @@ -1498,7 +1517,7 @@ 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],, with_ppl=no) + plus --with-ppl-lib=PATH/lib]) 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]) @@ -1506,10 +1525,11 @@ case $with_ppl in no) ppllibs= ;; + "" | yes) + ;; *) 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 @@ -1517,12 +1537,11 @@ if test "x$with_ppl_include" != x; then fi if test "x$with_ppl_lib" != x; then ppllibs="-L$with_ppl_lib -lppl_c -lppl -lgmpxx" - LIBS="$ppllibs $LIBS" fi if test "x$with_ppl$with_ppl_include$with_ppl_lib" = x && test -d ${srcdir}/ppl; then - ppllibs='-L$$r/$(HOST_SUBDIR)/ppl/.libs -L$$r/$(HOST_SUBDIR)/ppl/_libs -lppl_c -lppl -lgmpxx ' - pplinc='-I$$r/$(HOST_SUBDIR)/ppl/include -I$$s/ppl/include ' - LIBS="$ppllibs $LIBS" + ppllibs='-L$$r/$(HOST_SUBDIR)/ppl/interfaces/C/'"$lt_cv_objdir"' -L$$r/$(HOST_SUBDIR)/ppl/src/'"$lt_cv_objdir"' -lppl_c -lppl -lgmpxx ' + pplinc='-I$$r/$(HOST_SUBDIR)/ppl/src -I$$r/$(HOST_SUBDIR)/ppl/interfaces/C ' + enable_ppl_version_check=no fi AC_ARG_ENABLE(ppl-version-check, @@ -1530,7 +1549,7 @@ AC_ARG_ENABLE(ppl-version-check, ENABLE_PPL_CHECK=$enableval, ENABLE_PPL_CHECK=yes) -if test "${ENABLE_PPL_CHECK}" = "yes"; then +if test "x$with_ppl" != "xno" -a "${ENABLE_PPL_CHECK}" = "yes"; then saved_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $pplinc $gmpinc" AC_MSG_CHECKING([for version $ppl_major_version.$ppl_minor_version of PPL]) @@ -1538,7 +1557,7 @@ if test "${ENABLE_PPL_CHECK}" = "yes"; then #if PPL_VERSION_MAJOR != $ppl_major_version || PPL_VERSION_MINOR != $ppl_minor_version choke me #endif - ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no]); ppllibs= ; pplinc= ]) + ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no]); ppllibs= ; pplinc= ; with_ppl=no ]) CFLAGS="$saved_CFLAGS" fi @@ -1553,19 +1572,24 @@ 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],, with_cloog=no) + plus --with-cloog-lib=PATH/lib]) 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]) +if test "x$with_ppl" = "xno"; then + with_cloog=no +fi + case $with_cloog in no) clooglibs= clooginc= ;; + "" | yes) + ;; *) 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 @@ -1573,12 +1597,11 @@ if test "x$with_cloog_include" != x; then fi if test "x$with_cloog_lib" != x; then clooglibs="-L$with_cloog_lib -lcloog" - LIBS="$clooglibs $LIBS" fi if test "x$with_cloog$with_cloog_include$with_cloog_lib" = x && test -d ${srcdir}/cloog; then - clooglibs='-L$$r/$(HOST_SUBDIR)/cloog/.libs -L$$r/$(HOST_SUBDIR)/cloog/_libs -lcloog ' + clooglibs='-L$$r/$(HOST_SUBDIR)/cloog/'"$lt_cv_objdir"' -lcloog ' clooginc='-I$$r/$(HOST_SUBDIR)/cloog/include -I$$s/cloog/include -DCLOOG_PPL_BACKEND ' - LIBS="$clooglibs $LIBS" + enable_cloog_version_check=no fi AC_ARG_ENABLE(cloog-version-check, @@ -1586,12 +1609,12 @@ AC_ARG_ENABLE(cloog-version-check, ENABLE_CLOOG_CHECK=$enableval, ENABLE_CLOOG_CHECK=yes) -if test "${ENABLE_CLOOG_CHECK}" = "yes"; then +if test "x$with_cloog" != "xno" -a "${ENABLE_CLOOG_CHECK}" = "yes"; then saved_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $clooginc $gmpinc $pplinc" - AC_MSG_CHECKING([for correct version of CLooG]) + AC_MSG_CHECKING([for version 0.15.5 (or later revision) of CLooG]) AC_TRY_COMPILE([#include "cloog/cloog.h"],[ - #if CLOOG_VERSION_MAJOR != 0 || CLOOG_VERSION_MINOR != 15 + #if CLOOG_VERSION_MAJOR != 0 || CLOOG_VERSION_MINOR != 15 || CLOOG_VERSION_REVISION < 5 choke me #endif ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no]); clooglibs= ; clooginc= ]) @@ -1602,6 +1625,140 @@ 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) + +ACX_ELF_TARGET_IFELSE([], +if test x"$default_enable_lto" = x"yes" ; then + enable_lto=no +else + if test x"$enable_lto" = x"yes"; then + AC_MSG_ERROR([LTO support requires an ELF target.]) + fi +fi +default_enable_lto=no) + +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]) + + saved_CFLAGS="$CFLAGS" + saved_CPPFLAGS="$CPPFLAGS" + saved_LIBS="$LIBS" + + 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/lib -lelf ' + libelfinc='-D__LIBELF_INTERNAL__ -I$$r/$(HOST_SUBDIR)/libelf/lib -I$$s/libelf/lib' + LIBS="$libelflibs $LIBS" + + else + + 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" + + fi + + # Flags needed for libelf. + AC_SUBST(libelflibs) + AC_SUBST(libelfinc) +fi + # By default, C is the only stage 1 language. stage1_languages=,c, @@ -1670,6 +1827,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, @@ -1694,7 +1866,8 @@ if test -d ${srcdir}/gcc; then exit 1 fi - if test "$language" = "c++" -a "$ENABLE_BUILD_WITH_CXX" = "yes"; then + if test "$language" = "c++" \ + && test "$ENABLE_BUILD_WITH_CXX" = "yes"; then boot_language=yes fi @@ -1760,10 +1933,13 @@ 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}," ;; @@ -2076,7 +2252,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 @@ -2087,7 +2263,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 @@ -2101,6 +2279,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. @@ -2222,8 +2408,8 @@ case "${target}" in extra_arflags_for_target=" -X32_64" extra_nmflags_for_target=" -B -X32_64" ;; - *-*-darwin*) - # ranlib from Darwin requires the -c flag to look at common symbols. + *-*-darwin[[3-9]]*) + # ranlib before Darwin10 requires the -c flag to look at common symbols. extra_ranlibflags_for_target=" -c" ;; mips*-*-pe | sh*-*-pe | *arm-wince-pe) @@ -2374,6 +2560,11 @@ fi target_configdirs=`echo "${target_configdirs}" | sed -e 's/target-//g'` build_configdirs=`echo "${build_configdirs}" | sed -e 's/build-//g'` +# If we are building libgomp, bootstrap it. +if echo " ${target_configdirs} " | grep " libgomp " > /dev/null 2>&1 ; then + bootstrap_target_libs=${bootstrap_target_libs}target-libgomp, +fi + # Determine whether gdb needs tk/tcl or not. # Use 'maybe' since enable_gdbtk might be true even if tk isn't available # and in that case we want gdb to be built without tk. Ugh! @@ -2408,12 +2599,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@:>@],, @@ -2456,26 +2648,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 @@ -2485,12 +2729,13 @@ 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 @@ -2504,14 +2749,15 @@ for module in ${target_configdirs} ; do *) target_bootstrap_suffix=no-bootstrap ;; esac - extrasub="$extrasub + extrasub_target="$extrasub_target /^@if target-$module\$/d /^@endif target-$module\$/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. @@ -2566,9 +2812,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 @@ -2607,6 +2855,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 ;; @@ -2726,8 +2981,9 @@ case " $target_configdirs " in case " $target_configargs " in *" --with-newlib "*) case "$target" in - *-cygwin*) - FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/$(TARGET_SUBDIR)/winsup -L$$r/$(TARGET_SUBDIR)/winsup/cygwin -L$$r/$(TARGET_SUBDIR)/winsup/w32api/lib -isystem $$s/winsup/include -isystem $$s/winsup/cygwin/include -isystem $$s/winsup/w32api/include' ;; + *-cygwin*) + FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/$(TARGET_SUBDIR)/winsup -L$$r/$(TARGET_SUBDIR)/winsup/cygwin -L$$r/$(TARGET_SUBDIR)/winsup/w32api/lib -isystem $$s/winsup/include -isystem $$s/winsup/cygwin/include -isystem $$s/winsup/w32api/include' + ;; esac # If we're not building GCC, don't discard standard headers. @@ -2783,10 +3039,17 @@ case " $target_configdirs " in esac ;; esac + case "$target" in -*-mingw*) - # Can't be handled as Cygwin above since Mingw does not use newlib. - FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/$(TARGET_SUBDIR)/winsup/mingw -L$$r/$(TARGET_SUBDIR)/winsup/w32api/lib -isystem $$s/winsup/mingw/include -isystem $$s/winsup/w32api/include' ;; + x86_64-*mingw* | *-w64-mingw*) + # MinGW-w64 does not use newlib, nor does it use winsup. It may, + # however, use a symlink named 'mingw' in ${prefix} . + FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L${prefix}/${target}/lib -L${prefix}/mingw/lib -isystem ${prefix}/${target}/include -isystem ${prefix}/mingw/include' + ;; + *-mingw*) + # MinGW can't be handled as Cygwin above since it does not use newlib. + FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/$(TARGET_SUBDIR)/winsup/mingw -L$$r/$(TARGET_SUBDIR)/winsup/w32api/lib -isystem $$s/winsup/mingw/include -isystem $$s/winsup/w32api/include' + ;; esac # Allow the user to override the flags for @@ -2848,6 +3111,7 @@ AC_SUBST(build_configdirs) # Host module lists & subconfigure args. AC_SUBST(host_configargs) AC_SUBST(configdirs) +AC_SUBST(target_configdirs) # Target module lists & subconfigure args. AC_SUBST(target_configargs) @@ -2944,8 +3208,8 @@ NCN_STRICT_CHECK_TOOLS(DLLTOOL, dlltool) NCN_STRICT_CHECK_TOOLS(LD, ld) NCN_STRICT_CHECK_TOOLS(LIPO, lipo) NCN_STRICT_CHECK_TOOLS(NM, nm) -NCN_STRICT_CHECK_TOOLS(RANLIB, ranlib, :) -NCN_STRICT_CHECK_TOOLS(STRIP, strip, :) +NCN_STRICT_CHECK_TOOLS(RANLIB, ranlib, true) +NCN_STRICT_CHECK_TOOLS(STRIP, strip, true) NCN_STRICT_CHECK_TOOLS(WINDRES, windres) NCN_STRICT_CHECK_TOOLS(WINDMC, windmc) NCN_STRICT_CHECK_TOOLS(OBJCOPY, objcopy) @@ -2981,7 +3245,7 @@ ACX_CHECK_INSTALLED_TARGET_TOOL(LD_FOR_TARGET, ld) ACX_CHECK_INSTALLED_TARGET_TOOL(LIPO_FOR_TARGET, lipo) ACX_CHECK_INSTALLED_TARGET_TOOL(NM_FOR_TARGET, nm) ACX_CHECK_INSTALLED_TARGET_TOOL(OBJDUMP_FOR_TARGET, objdump) -ACX_CHECK_INSTALLED_TARGET_TOOL(RANLIB_FOR_TARGET, ranlib, :) +ACX_CHECK_INSTALLED_TARGET_TOOL(RANLIB_FOR_TARGET, ranlib) ACX_CHECK_INSTALLED_TARGET_TOOL(STRIP_FOR_TARGET, strip) ACX_CHECK_INSTALLED_TARGET_TOOL(WINDRES_FOR_TARGET, windres) ACX_CHECK_INSTALLED_TARGET_TOOL(WINDMC_FOR_TARGET, windmc) @@ -3127,6 +3391,17 @@ case "$target" in hppa*64*-*-hpux*) ;; hppa*-*-hpux*) compare_exclusions="gcc/cc*-checksum\$(objext) | */libgcc/lib2funcs* | gcc/ada/*tools/*" ;; esac +case " $configdirs " in +*" ppl "*) compare_exclusions="$compare_exclusions | ppl/src/ppl-config.o" ;; +esac AC_SUBST(compare_exclusions) -AC_OUTPUT(Makefile) +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