X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=configure;h=b1fbfaa73d087f2f81e62407f1b19e9981933ec4;hb=44000a083cd5980ce73263bb41ebe54076405992;hp=02272032e70797cb6335d58f31e7d45a2361ab2b;hpb=4fd35f21b663206690d1466d99e0cb9f13f653c4;p=pf3gnuchains%2Fgcc-fork.git diff --git a/configure b/configure index 02272032e70..b1fbfaa73d0 100755 --- a/configure +++ b/configure @@ -655,12 +655,9 @@ CFLAGS_FOR_BUILD CC_FOR_BUILD AS_FOR_BUILD AR_FOR_BUILD -target_configargs target_configdirs configdirs -host_configargs build_configdirs -build_configargs INSTALL_GDB_TK GDB_TK CONFIGURE_GDB_TK @@ -668,6 +665,9 @@ build_tooldir tooldir GCC_SHLIB_SUBDIR RPATH_ENVVAR +target_configargs +host_configargs +build_configargs BUILD_CONFIG CXXFLAGS_FOR_TARGET CFLAGS_FOR_TARGET @@ -835,6 +835,9 @@ CXX CXXFLAGS CCC CPP +build_configargs +host_configargs +target_configargs AR AS DLLTOOL @@ -1483,7 +1486,7 @@ Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --enable-gold use gold instead of ld + --enable-gold[=ARG] build gold [ARG={both}[/{gold,ld}]] --enable-libada build libada directory --enable-libssp build libssp directory --enable-build-with-cxx build with C++ compiler instead of C compiler @@ -1569,6 +1572,12 @@ Some influential environment variables: CXX C++ compiler command CXXFLAGS C++ compiler flags CPP C preprocessor + build_configargs + additional configure arguments for build directories + host_configargs + additional configure arguments for host directories + target_configargs + additional configure arguments for target directories AR AR for the host AS AS for the host DLLTOOL DLLTOOL for the host @@ -2901,7 +2910,7 @@ host_libs="intl mmalloc libiberty opcodes bfd readline tcl tk itcl libgui zlib l # know that we are building the simulator. # 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". +# If --enable-gold is used, "gold" may replace "ld". 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. @@ -3069,6 +3078,11 @@ case ${with_newlib} in esac # Handle --enable-gold. +# --enable-gold Build only gold +# --disable-gold [default] Build only ld +# --enable-gold=both Build both gold and ld, ld is default +# --enable-gold=both/ld Same +# --enable-gold=both/gold Build both gold and ld, gold is default, ld is renamed ld.bfd # Check whether --enable-gold was given. if test "${enable_gold+set}" = set; then : @@ -3077,32 +3091,47 @@ else ENABLE_GOLD=no fi -if test "${ENABLE_GOLD}" = "yes"; then - # Check for ELF target. - is_elf=no - case "${target}" in - *-*-elf* | *-*-sysv4* | *-*-unixware* | *-*-eabi* | hppa*64*-*-hpux* \ - | *-*-linux* | frv-*-uclinux* | *-*-irix5* | *-*-irix6* \ - | *-*-netbsd* | *-*-openbsd* | *-*-freebsd* | *-*-solaris2* | *-*-nto*) + case "${ENABLE_GOLD}" in + yes|both|both/gold|both/ld) + # Check for ELF target. + is_elf=no + case "${target}" in + *-*-elf* | *-*-sysv4* | *-*-unixware* | *-*-eabi* | hppa*64*-*-hpux* \ + | *-*-linux* | frv-*-uclinux* | *-*-irix5* | *-*-irix6* \ + | *-*-netbsd* | *-*-openbsd* | *-*-freebsd* | *-*-solaris2* | *-*-nto*) + case "${target}" in + *-*-linux*aout* | *-*-linux*oldld*) + ;; + *) + is_elf=yes + ;; + esac + esac + + if test "$is_elf" = "yes"; then + # Check for target supported by gold. case "${target}" in - *-*-linux*aout* | *-*-linux*oldld*) - ;; - *) - is_elf=yes + i?86-*-* | x86_64-*-* | sparc*-*-* | powerpc*-*-* | arm*-*-*) + case "${ENABLE_GOLD}" in + both*) + configdirs="$configdirs gold" + ;; + *) + configdirs=`echo " ${configdirs} " | sed -e 's/ ld / gold /'` + ;; + esac + ENABLE_GOLD=yes ;; esac + fi + ;; + no) + ;; + *) + as_fn_error "invalid --enable-gold argument" "$LINENO" 5 + ;; esac - if test "$is_elf" = "yes"; then - # Check for target supported by gold. - case "${target}" in - i?86-*-* | x86_64-*-* | sparc*-*-* | powerpc*-*-* | arm*-*-*) - configdirs="`echo " ${configdirs} " | sed -e 's/ ld / gold /'`" - ;; - esac - fi -fi - # Configure extra directories which are host specific case "${host}" in @@ -3291,6 +3320,7 @@ case "${target}" in noconfigdirs="$noconfigdirs target-newlib target-libiberty target-libgloss ${libgcj} target-libmudflap" ;; *-*-rtems*) + skipdirs="${skipdirs} target-libiberty" noconfigdirs="$noconfigdirs target-libgloss ${libgcj}" ;; # The tpf target doesn't support gdb yet. @@ -3310,7 +3340,7 @@ case "${target}" in noconfigdirs="$noconfigdirs gas ld fileutils target-newlib target-libgloss" ;; alpha*-*-*vms*) - noconfigdirs="$noconfigdirs gdb ld target-newlib target-libgloss ${libgcj}" + noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss ${libgcj}" ;; alpha*-*-linux*) # newlib is not 64 bit ready @@ -3629,7 +3659,7 @@ case "${target}" in noconfigdirs="$noconfigdirs ld binutils gprof target-libgloss ${libgcj}" ;; microblaze*) - noconfigdirs="$noconfigdirs gprof ${libgcj}" + noconfigdirs="$noconfigdirs gprof target-libssp ${libgcj}" ;; mips*-sde-elf*) skipdirs="$skipdirs target-libiberty" @@ -3709,14 +3739,8 @@ case "${target}" in v810-*-*) noconfigdirs="$noconfigdirs bfd binutils gas gcc gdb ld target-libstdc++-v3 opcodes target-libgloss ${libgcj}" ;; - v850-*-*) - noconfigdirs="$noconfigdirs target-libgloss ${libgcj}" - ;; - v850e-*-*) - noconfigdirs="$noconfigdirs target-libgloss ${libgcj}" - ;; - v850ea-*-*) - noconfigdirs="$noconfigdirs target-libgloss ${libgcj}" + v850*-*-*) + noconfigdirs="$noconfigdirs ${libgcj}" ;; vax-*-vms) noconfigdirs="$noconfigdirs bfd binutils gdb ld target-newlib opcodes target-libgloss ${libgcj}" @@ -5457,7 +5481,7 @@ fi if test "x$with_gmp$with_gmp_include$with_gmp_lib" = x && test -d ${srcdir}/gmp; then 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_mpfr_configure_flags='--with-gmp-include=$$r/$(HOST_SUBDIR)/gmp --with-gmp-lib=$$r/$(HOST_SUBDIR)/gmp/'"$lt_cv_objdir" 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 @@ -5780,8 +5804,6 @@ fi # Check for PPL -ppl_major_version=0 -ppl_minor_version=10 ppllibs=" -lppl_c -lppl -lgmpxx" pplinc= @@ -5838,8 +5860,8 @@ fi if test "x$with_ppl" != "xno" -a "${ENABLE_PPL_CHECK}" = "yes"; then saved_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $pplinc $gmpinc" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for version $ppl_major_version.$ppl_minor_version of PPL" >&5 -$as_echo_n "checking for version $ppl_major_version.$ppl_minor_version of PPL... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for version 0.10 (or later revision) of PPL" >&5 +$as_echo_n "checking for version 0.10 (or later revision) of PPL... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include "ppl_c.h" @@ -5847,7 +5869,7 @@ int main () { - #if PPL_VERSION_MAJOR != $ppl_major_version || PPL_VERSION_MINOR != $ppl_minor_version + #if PPL_VERSION_MAJOR != 0 || PPL_VERSION_MINOR < 10 choke me #endif @@ -5996,95 +6018,7 @@ fi - - -target_elf=no -case $target in - *-darwin* | *-aix* | *-cygwin* | *-mingw* | *-aout* | *-*coff* | \ - *-msdosdjgpp* | *-netware* | *-vms* | *-wince* | *-*-pe* | \ - alpha*-dec-osf* | *-interix*) - target_elf=no - ;; - *) - target_elf=yes - ;; -esac - -if test $target_elf = yes; then : - -else - if test x"$default_enable_lto" = x"yes" ; then - enable_lto=no -else - if test x"$enable_lto" = x"yes"; then - as_fn_error "LTO support requires an ELF target." "$LINENO" 5 - fi -fi -default_enable_lto=no -fi - - -if test x"$enable_lto" = x"yes" ; then - # Make sure that libelf.h and gelf.h are available. - -# Check whether --with-libelf was given. -if test "${with_libelf+set}" = set; then : - withval=$with_libelf; -fi - - - -# Check whether --with-libelf_include was given. -if test "${with_libelf_include+set}" = set; then : - withval=$with_libelf_include; -fi - - - -# Check whether --with-libelf_lib was given. -if test "${with_libelf_lib+set}" = set; then : - withval=$with_libelf_lib; -fi - - - 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_ext=c +ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' @@ -6482,7 +6416,83 @@ fi done -for ac_header in libelf.h + + + +target_elf=no +case $target in + *-darwin* | *-aix* | *-cygwin* | *-mingw* | *-aout* | *-*coff* | \ + *-msdosdjgpp* | *-netware* | *-vms* | *-wince* | *-*-pe* | \ + alpha*-dec-osf* | *-interix* | hppa[12]*-*-hpux*) + target_elf=no + ;; + *) + target_elf=yes + ;; +esac + +if test $target_elf = yes; then : + if test x"$enable_lto" = x"yes" ; then + # Make sure that libelf.h and gelf.h are available. + +# Check whether --with-libelf was given. +if test "${with_libelf+set}" = set; then : + withval=$with_libelf; +fi + + + +# Check whether --with-libelf_include was given. +if test "${with_libelf_include+set}" = set; then : + withval=$with_libelf_include; +fi + + + +# Check whether --with-libelf_lib was given. +if test "${with_libelf_lib+set}" = set; then : + withval=$with_libelf_lib; +fi + + + 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" + + for ac_header in libelf.h do : ac_fn_c_check_header_mongrel "$LINENO" "libelf.h" "ac_cv_header_libelf_h" "$ac_includes_default" if test "x$ac_cv_header_libelf_h" = x""yes; then : @@ -6574,7 +6584,6 @@ main () 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); @@ -6594,6 +6603,61 @@ fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext + # Check for elf_getshdrstrndx or elf_getshstrndx. The latter's flavor + # is determined in gcc/configure.ac. + if test x"$enable_lto" = x"yes" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for elf_getshdrstrndx" >&5 +$as_echo_n "checking for elf_getshdrstrndx... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ + + elf_getshdrstrndx (0, 0); + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; }; +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; }; + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for elf_getshstrndx" >&5 +$as_echo_n "checking for elf_getshstrndx... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ + + elf_getshstrndx (0, 0); + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; }; +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; }; enable_lto=no; libelflibs= ; libelfinc= + +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + fi + # 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 @@ -6612,9 +6676,40 @@ to specify its location." "$LINENO" 5 # Flags needed for libelf. + # ELF platforms build the lto-plugin when GOLD is in use. + build_lto_plugin=${ENABLE_GOLD} +fi +else + if test x"$default_enable_lto" = x"yes" ; then + case $target in + *-apple-darwin* | *-cygwin* | *-mingw*) ;; + # On other non-ELF platforms, LTO must be explicitly enabled. + *) enable_lto=no ;; + esac + else + # Apart from ELF platforms, only Windows and Darwin support LTO so far. + # It would also be nice to check the binutils support, but we don't + # have gcc_GAS_CHECK_FEATURE available here. For now, we'll just + # warn during gcc/ subconfigure; unless you're bootstrapping with + # -flto it won't be needed until after installation anyway. + case $target in + *-cygwin* | *-mingw* | *-apple-darwin*) ;; + *) if test x"$enable_lto" = x"yes"; then + as_fn_error "LTO support is not enabled for this target." "$LINENO" 5 + fi + ;; + esac + fi + # Among non-ELF, only Windows platforms support the lto-plugin so far. + case $target in + *-cygwin* | *-mingw*) build_lto_plugin=yes ;; + *) ;; + esac + default_enable_lto=no fi + # By default, C is the only stage 1 language. stage1_languages=,c, @@ -6690,7 +6785,7 @@ if test -d ${srcdir}/gcc; then *,lto,*) ;; *) enable_languages="${enable_languages},lto" ;; esac - if test "${ENABLE_GOLD}" = "yes" ; then + if test "${build_lto_plugin}" = "yes" ; then configdirs="$configdirs lto-plugin" extra_host_libiberty_configure_flags=--enable-shared fi @@ -7610,7 +7705,7 @@ else 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 + ${srcdir}/contrib/compare-debug conftest.o.g0 conftest.o.g > /dev/null 2>&1; then : else BUILD_CONFIG= @@ -7837,10 +7932,15 @@ if test "$silent" = yes; then fi baseargs="$baseargs --disable-option-checking" +# Record and document user additions to sub configure arguments. + + + + # 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 # desired. -build_configargs="--cache-file=../config.cache ${baseargs}" +build_configargs="$build_configargs --cache-file=../config.cache ${baseargs}" # For host modules, accept cache file option, or specification as blank. case "${cache_file}" in @@ -7854,9 +7954,9 @@ esac # Host dirs don't like to share a cache file either, horribly enough. # This seems to be due to autoconf 2.5x stupidity. -host_configargs="--cache-file=./config.cache ${extra_host_args} ${baseargs}" +host_configargs="$host_configargs --cache-file=./config.cache ${extra_host_args} ${baseargs}" -target_configargs=${baseargs} +target_configargs="$target_configargs ${baseargs}" # Passing a --with-cross-host argument lets the target libraries know # whether they are being built with a cross-compiler or being built