X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=configure.ac;h=96e7cada14cb9c5760bef74b39ae6c893cd4d555;hp=baa56bdb95272af4a8e5c4ab19fcef2b4f880587;hb=ca677a70d69074ad3902980a19126986b935fc27;hpb=b990d06f5c486e4abf9cdeff148949f39f4588f7 diff --git a/configure.ac b/configure.ac index baa56bdb952..96e7cada14c 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, -# 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 +# 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 # Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify it @@ -149,12 +149,12 @@ libgcj="target-libffi \ # these libraries are built for the target environment, and are built after # the host libraries and the host tools (which may be a cross compiler) -# +# Note that libiberty is not a target library. target_libraries="target-libgcc \ - target-libiberty \ target-libgloss \ target-newlib \ target-libgomp \ + target-libitm \ target-libstdc++-v3 \ target-libmudflap \ target-libssp \ @@ -444,6 +444,20 @@ no) ;; esac +AC_ARG_ENABLE(static-libjava, +[AS_HELP_STRING([[--enable-static-libjava[=ARG]]], + [build static libjava @<:@default=no@:>@])], +ENABLE_STATIC_LIBJAVA=$enableval, +ENABLE_STATIC_LIBJAVA=no) +enable_static_libjava= +if test "${ENABLE_STATIC_LIBJAVA}" = "yes" ; then + enable_static_libjava=yes +fi + +if test x$enable_static_libjava != xyes ; then + EXTRA_CONFIGARGS_LIBJAVA=--disable-static +fi +AC_SUBST(EXTRA_CONFIGARGS_LIBJAVA) # Disable libmudflap on some systems. if test x$enable_libmudflap = x ; then @@ -479,6 +493,22 @@ if test x$enable_libgomp = x ; then esac fi +# Disable libitm on unsupported systems. +if test -d ${srcdir}/libitm; then + if test x$enable_libitm = x; then + AC_MSG_CHECKING([for libitm support]) + if (srcdir=${srcdir}/libitm; \ + . ${srcdir}/configure.tgt; \ + test -n "$UNSUPPORTED") + then + AC_MSG_RESULT([no]) + noconfigdirs="$noconfigdirs target-libitm" + else + AC_MSG_RESULT([yes]) + fi + fi +fi + # Disable libssp for some systems. case "${target}" in avr-*-*) @@ -488,82 +518,292 @@ case "${target}" in powerpc-*-aix* | rs6000-*-aix*) noconfigdirs="$noconfigdirs target-libssp" ;; + rl78-*-*) + # libssp uses a misaligned load to trigger a fault, but the RL78 + # doesn't fault for those - instead, it gives a build-time error + # for explicit misaligned loads. + noconfigdirs="$noconfigdirs target-libssp" + ;; esac -# Disable target libiberty for some systems. +# Disable libstdc++-v3 for some systems. case "${target}" in - *-*-kaos*) - # Remove unsupported stuff on all kaOS configurations. - skipdirs="target-libiberty" + *-*-vxworks*) + # VxWorks uses the Dinkumware C++ library. + noconfigdirs="$noconfigdirs target-libstdc++-v3" ;; - *-*-netbsd*) - # Skip some stuff on all NetBSD configurations. - noconfigdirs="$noconfigdirs target-libiberty" + arm*-wince-pe*) + # the C++ libraries don't build on top of CE's C libraries + noconfigdirs="$noconfigdirs target-libstdc++-v3" + ;; + avr-*-*) + noconfigdirs="$noconfigdirs target-libstdc++-v3" + ;; +esac + +# Disable Fortran for some systems. +case "${target}" in + mmix-*-*) + # See . + unsupported_languages="$unsupported_languages fortran" + ;; +esac + +# Disable Java if libffi is not supported. +case "${target}" in + alpha*-*-*) + ;; + arm*-*-*) + ;; + cris-*-*) + ;; + frv-*-*) + ;; + hppa*-*-linux*) + ;; + hppa*-*-hpux*) + ;; + i?86-*-*) + ;; + ia64*-*-*) + ;; + m32r*-*-*) + ;; + m68k-*-*) + ;; + mips-sgi-irix6.* | mips*-*-rtems*) + ;; + mips*-*-linux*) + ;; + powerpc*-*-linux*) + ;; + powerpc-*-darwin*) + ;; + powerpc-*-aix* | rs6000-*-aix*) + ;; + powerpc-*-freebsd*) + ;; + powerpc64-*-freebsd*) + ;; + powerpc*-*-rtems*) + ;; + s390-*-* | s390x-*-*) + ;; + sh-*-* | sh[[34]]*-*-*) + ;; + sh64-*-* | sh5*-*-*) + ;; + sparc*-*-*) + ;; + x86_64-*-*) + ;; + *-*-*) + unsupported_languages="$unsupported_languages java" + ;; +esac + +# Disable Java, libgcj or related libraries for some systems. +case "${target}" in + powerpc-*-darwin*) + ;; + i[[3456789]]86-*-darwin*) + ;; + x86_64-*-darwin[[912]]*) + ;; + *-*-darwin*) + noconfigdirs="$noconfigdirs ${libgcj}" ;; *-*-netware*) - noconfigdirs="$noconfigdirs target-libiberty" + noconfigdirs="$noconfigdirs ${libgcj}" ;; *-*-rtems*) - skipdirs="${skipdirs} target-libiberty" + noconfigdirs="$noconfigdirs ${libgcj}" ;; *-*-tpf*) - noconfigdirs="$noconfigdirs target-libiberty" + noconfigdirs="$noconfigdirs ${libgcj}" + ;; + *-*-uclinux*) + noconfigdirs="$noconfigdirs ${libgcj}" ;; *-*-vxworks*) - noconfigdirs="$noconfigdirs target-libiberty" + noconfigdirs="$noconfigdirs ${libgcj}" ;; - sh*-*-pe|mips*-*-pe|*arm-wince-pe) - noconfigdirs="$noconfigdirs target-libiberty" + alpha*-*-*vms*) + noconfigdirs="$noconfigdirs ${libgcj}" + ;; + arm-wince-pe) + noconfigdirs="$noconfigdirs ${libgcj}" ;; arm*-*-symbianelf*) - noconfigdirs="$noconfigdirs target-libiberty" + noconfigdirs="$noconfigdirs ${libgcj}" ;; - avr-*-*) - noconfigdirs="$noconfigdirs target-libiberty" + bfin-*-*) + noconfigdirs="$noconfigdirs target-boehm-gc" ;; - m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*) - noconfigdirs="$noconfigdirs target-libiberty" + cris-*-* | crisv32-*-*) + unsupported_languages="$unsupported_languages java" + case "${target}" in + *-*-linux*) + ;; + *) # See PR46792 regarding target-libffi. + noconfigdirs="$noconfigdirs target-libffi target-boehm-gc";; + esac + ;; + hppa*64*-*-linux*) + # In this case, it's because the hppa64-linux target is for + # the kernel only at this point and has no libc, and thus no + # headers, crt*.o, etc., all of which are needed by these. + unsupported_languages="$unsupported_languages java" ;; - picochip-*-*) - noconfigdirs="$noconfigdirs target-libiberty" + hppa*64*-*-hpux*) + noconfigdirs="$noconfigdirs ${libgcj}" ;; - mips*-sde-elf*) - skipdirs="$skipdirs target-libiberty" + hppa*-hp-hpux11*) + ;; + hppa*-*-hpux*) + # According to Alexandre Oliva , libjava won't + # build on HP-UX 10.20. + noconfigdirs="$noconfigdirs ${libgcj}" + ;; + ia64*-*-*vms*) + noconfigdirs="$noconfigdirs ${libgcj}" + ;; + i[[3456789]]86-w64-mingw*) + noconfigdirs="$noconfigdirs ${libgcj}" + ;; + i[[3456789]]86-*-mingw*) + noconfigdirs="$noconfigdirs ${libgcj}" + ;; + x86_64-*-mingw*) + noconfigdirs="$noconfigdirs ${libgcj}" + ;; + mmix-*-*) + noconfigdirs="$noconfigdirs target-libffi target-boehm-gc" + ;; + powerpc-*-aix*) + # copied from rs6000-*-* entry + noconfigdirs="$noconfigdirs ${libgcj}" + ;; + rs6000-*-aix*) + noconfigdirs="$noconfigdirs ${libgcj}" ;; - ip2k-*-*) - noconfigdirs="$noconfigdirs target-libiberty" + mips*-*-irix6*) + # Linking libjava exceeds command-line length limits on at least + # IRIX 6.2, but not on IRIX 6.5. + # Also, boehm-gc won't build on IRIX 6.5, according to Jeffrey Oldham + # + noconfigdirs="$noconfigdirs ${libgcj}" ;; + *-*-lynxos*) + noconfigdirs="$noconfigdirs ${libgcj}" + ;; esac -# Disable libstdc++-v3 for some systems. +# Default libgloss CPU subdirectory. +libgloss_dir="$target_cpu" + case "${target}" in - *-*-vxworks*) - # VxWorks uses the Dinkumware C++ library. - noconfigdirs="$noconfigdirs target-libstdc++-v3" + sh*-*-pe|mips*-*-pe|*arm-wince-pe) + libgloss_dir=wince ;; - arm*-wince-pe*) - # the C++ libraries don't build on top of CE's C libraries - noconfigdirs="$noconfigdirs target-libstdc++-v3" + arm*-*-*) + libgloss_dir=arm ;; - avr-*-*) - noconfigdirs="$noconfigdirs target-libstdc++-v3" + cris-*-* | crisv32-*-*) + libgloss_dir=cris + ;; + hppa*-*-*) + libgloss_dir=pa + ;; + i[[3456789]]86-*-*) + libgloss_dir=i386 + ;; + m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*) + libgloss_dir=m68hc11 + ;; + m68*-*-* | fido-*-*) + libgloss_dir=m68k + ;; + mips*-*-*) + libgloss_dir=mips + ;; + powerpc*-*-*) + libgloss_dir=rs6000 + ;; + sparc*-*-*) + libgloss_dir=sparc ;; esac -# Disable Fortran for some systems. +# Disable newlib and libgloss for various target OSes. case "${target}" in - mmix-*-*) - # See . - unsupported_languages="$unsupported_languages fortran" + alpha*-dec-osf*) + noconfigdirs="$noconfigdirs target-newlib target-libgloss" + ;; + i[[3456789]]86-*-linux*) + # This section makes it possible to build newlib natively on linux. + # If we are using a cross compiler then don't configure newlib. + if test x${is_cross_compiler} != xno ; then + noconfigdirs="$noconfigdirs target-newlib" + fi + noconfigdirs="$noconfigdirs target-libgloss" + # If we are not using a cross compiler, do configure newlib. + # Note however, that newlib will only be configured in this situation + # if the --with-newlib option has been given, because otherwise + # 'target-newlib' will appear in skipdirs. + ;; + i[[3456789]]86-*-rdos*) + noconfigdirs="$noconfigdirs target-newlib target-libgloss" + ;; + sh*-*-pe|mips*-*-pe|arm-wince-pe) + noconfigdirs="$noconfigdirs target-newlib target-libgloss" + ;; + sparc-*-sunos4*) + noconfigdirs="$noconfigdirs target-newlib target-libgloss" + ;; + *-*-aix*) + noconfigdirs="$noconfigdirs target-newlib target-libgloss" + ;; + *-*-beos*) + noconfigdirs="$noconfigdirs target-newlib target-libgloss" + ;; + *-*-chorusos) + noconfigdirs="$noconfigdirs target-newlib target-libgloss" + ;; + *-*-dragonfly*) + noconfigdirs="$noconfigdirs target-newlib target-libgloss" + ;; + *-*-freebsd*) + noconfigdirs="$noconfigdirs target-newlib target-libgloss" + ;; + *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | *-*-kopensolaris*-gnu) + noconfigdirs="$noconfigdirs target-newlib target-libgloss" + ;; + *-*-lynxos*) + noconfigdirs="$noconfigdirs target-newlib target-libgloss" + ;; + *-*-mingw*) + noconfigdirs="$noconfigdirs target-newlib target-libgloss" + ;; + *-*-netbsd*) + noconfigdirs="$noconfigdirs target-newlib target-libgloss" + ;; + *-*-netware*) + noconfigdirs="$noconfigdirs target-newlib target-libgloss" + ;; + *-*-tpf*) + noconfigdirs="$noconfigdirs target-newlib target-libgloss" + ;; + *-*-uclinux*) + noconfigdirs="$noconfigdirs target-newlib target-libgloss" + ;; + *-*-vxworks*) + noconfigdirs="$noconfigdirs target-newlib target-libgloss" ;; esac -# Default libgloss CPU subdirectory. -libgloss_dir="$target_cpu" - case "${target}" in *-*-chorusos) - noconfigdirs="$noconfigdirs target-newlib target-libgloss" ;; powerpc-*-darwin*) noconfigdirs="$noconfigdirs ld gas gdb gprof" @@ -580,123 +820,59 @@ case "${target}" in *-*-darwin*) noconfigdirs="$noconfigdirs ld gas gdb gprof" noconfigdirs="$noconfigdirs sim target-rda" - noconfigdirs="$noconfigdirs ${libgcj}" ;; *-*-dragonfly*) - noconfigdirs="$noconfigdirs target-newlib target-libgloss" ;; *-*-freebsd*) - noconfigdirs="$noconfigdirs target-newlib target-libgloss" if test "x$with_gmp" = x && test "x$with_gmp_dir" = x \ && test -f /usr/local/include/gmp.h; then with_gmp=/usr/local fi - - # Skip some stuff that's unsupported on some FreeBSD configurations. - case "${target}" in - i*86-*-*) ;; - alpha*-*-*) ;; - x86_64-*-*) ;; - *) - noconfigdirs="$noconfigdirs ${libgcj}" - ;; - esac ;; *-*-kaos*) # Remove unsupported stuff on all kaOS configurations. noconfigdirs="$noconfigdirs target-libgloss" ;; *-*-netbsd*) - # Skip some stuff on all NetBSD configurations. - noconfigdirs="$noconfigdirs target-newlib target-libgloss" - - # Skip some stuff that's unsupported on some NetBSD configurations. - case "${target}" in - i*86-*-netbsdelf*) ;; - arm*-*-netbsdelf*) ;; - *) - noconfigdirs="$noconfigdirs ${libgcj}" - ;; - esac ;; *-*-netware*) - noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}" ;; *-*-rtems*) - noconfigdirs="$noconfigdirs target-libgloss ${libgcj}" + noconfigdirs="$noconfigdirs target-libgloss" ;; # The tpf target doesn't support gdb yet. *-*-tpf*) - noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj} gdb tcl tk libgui itcl" + noconfigdirs="$noconfigdirs gdb tcl tk libgui itcl" ;; *-*-uclinux*) - noconfigdirs="$noconfigdirs target-newlib target-libgloss target-rda ${libgcj}" + noconfigdirs="$noconfigdirs target-rda" ;; *-*-vxworks*) - noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}" ;; alpha*-dec-osf*) # ld works, but does not support shared libraries. - # newlib is not 64 bit ready. # gas doesn't generate exception information. - noconfigdirs="$noconfigdirs gas ld target-newlib target-libgloss" + noconfigdirs="$noconfigdirs gas ld" ;; alpha*-*-*vms*) - noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss ${libgcj}" - ;; - alpha*-*-linux*) - # newlib is not 64 bit ready - noconfigdirs="$noconfigdirs target-newlib target-libgloss" + noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss" ;; alpha*-*-*) # newlib is not 64 bit ready - noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}" - ;; - am33_2.0-*-linux*) - noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss" + noconfigdirs="$noconfigdirs target-newlib target-libgloss" ;; - sh-*-linux*) - noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss" - ;; sh*-*-pe|mips*-*-pe|*arm-wince-pe) - noconfigdirs="$noconfigdirs ${libgcj}" noconfigdirs="$noconfigdirs tcl tk itcl libgui sim" - noconfigdirs="$noconfigdirs target-newlib" - libgloss_dir=wince ;; arc-*-*) noconfigdirs="$noconfigdirs target-libgloss" ;; - arm-*-coff) - libgloss_dir=arm - ;; - arm-*-elf* | arm*-*-eabi* ) - noconfigdirs="$noconfigdirs target-libffi" - libgloss_dir=arm - ;; - arm*-*-linux-gnueabi) - case ${with_newlib} in - no) noconfigdirs="$noconfigdirs target-newlib target-libgloss" - esac - libgloss_dir=arm - ;; - arm*-*-symbianelf*) - noconfigdirs="$noconfigdirs ${libgcj}" - libgloss_dir=arm - ;; arm-*-pe*) - noconfigdirs="$noconfigdirs target-libgloss ${libgcj}" + noconfigdirs="$noconfigdirs target-libgloss" ;; arm-*-riscix*) noconfigdirs="$noconfigdirs ld target-libgloss" ;; - avr-*-*) - noconfigdirs="$noconfigdirs ${libgcj}" - ;; - bfin-*-*) - unsupported_languages="$unsupported_languages java" - noconfigdirs="$noconfigdirs target-boehm-gc" - ;; c4x-*-* | tic4x-*-*) noconfigdirs="$noconfigdirs target-libgloss" ;; @@ -704,17 +880,7 @@ case "${target}" in noconfigdirs="$noconfigdirs target-libgloss gdb" ;; cr16-*-*) - noconfigdirs="$noconfigdirs ${libgcj} gdb" - ;; - cris-*-* | crisv32-*-*) - unsupported_languages="$unsupported_languages java" - case "${target}" in - *-*-linux*) - noconfigdirs="$noconfigdirs target-newlib target-libgloss";; - *) # See PR46792 regarding target-libffi. - noconfigdirs="$noconfigdirs target-libffi target-boehm-gc";; - esac - libgloss_dir=cris + noconfigdirs="$noconfigdirs gdb" ;; d10v-*-*) noconfigdirs="$noconfigdirs target-libgloss" @@ -723,17 +889,13 @@ case "${target}" in noconfigdirs="$noconfigdirs gdb" ;; fr30-*-elf*) - noconfigdirs="$noconfigdirs ${libgcj} gdb" - ;; - frv-*-*) - noconfigdirs="$noconfigdirs ${libgcj}" + noconfigdirs="$noconfigdirs gdb" ;; moxie-*-*) - noconfigdirs="$noconfigdirs ${libgcj}" noconfigdirs="$noconfigdirs gprof" ;; h8300*-*-*) - noconfigdirs="$noconfigdirs target-libgloss ${libgcj}" + noconfigdirs="$noconfigdirs target-libgloss" ;; h8500-*-*) noconfigdirs="$noconfigdirs target-libgloss" @@ -741,10 +903,6 @@ case "${target}" in hppa1.1-*-osf* | hppa1.1-*-bsd* ) ;; hppa*64*-*-linux*) - # In this case, it's because the hppa64-linux target is for - # the kernel only at this point and has no libc, and thus no - # headers, crt*.o, etc., all of which are needed by these. - noconfigdirs="$noconfigdirs target-zlib" ;; hppa*-*-linux*) ;; @@ -752,18 +910,14 @@ case "${target}" in hppa*-*-lites* | \ hppa*-*-openbsd* | \ hppa*64*-*-*) - noconfigdirs="$noconfigdirs ${libgcj}" ;; hppa*-hp-hpux11*) noconfigdirs="$noconfigdirs ld" ;; hppa*-*-pro*) - libgloss_dir=pa ;; hppa*-*-*) - # According to Alexandre Oliva , libjava won't - # build on HP-UX 10.20. - noconfigdirs="$noconfigdirs ld ${libgcj}" + noconfigdirs="$noconfigdirs ld" ;; i960-*-*) noconfigdirs="$noconfigdirs gdb" @@ -774,37 +928,16 @@ case "${target}" in ;; ia64*-**-hpux*) # No ld support yet. - noconfigdirs="$noconfigdirs ${libgcj} libgui itcl ld" + noconfigdirs="$noconfigdirs libgui itcl ld" ;; ia64*-*-*vms*) # No gdb or ld support yet. - noconfigdirs="$noconfigdirs ${libgcj} readline libgui itcl gdb ld" - ;; - i[[3456789]]86-*-coff | i[[3456789]]86-*-elf) - noconfigdirs="$noconfigdirs ${libgcj}" - libgloss_dir=i386 - ;; - i[[3456789]]86-*-linux*) - # This section makes it possible to build newlib natively on linux. - # If we are using a cross compiler then don't configure newlib. - if test x${is_cross_compiler} != xno ; then - noconfigdirs="$noconfigdirs target-newlib" - fi - noconfigdirs="$noconfigdirs target-libgloss" - # If we are not using a cross compiler, do configure newlib. - # Note however, that newlib will only be configured in this situation - # if the --with-newlib option has been given, because otherwise - # 'target-newlib' will appear in skipdirs. + noconfigdirs="$noconfigdirs readline libgui itcl gdb ld" ;; i[[3456789]]86-w64-mingw*) - noconfigdirs="$noconfigdirs target-libgloss target-newlib ${libgcj}" ;; i[[3456789]]86-*-mingw*) target_configdirs="$target_configdirs target-winsup" - noconfigdirs="$noconfigdirs target-libgloss target-newlib ${libgcj}" - ;; - x86_64-*-mingw*) - noconfigdirs="$noconfigdirs target-libgloss target-newlib ${libgcj}" ;; *-*-cygwin*) target_configdirs="$target_configdirs target-libtermcap target-winsup" @@ -816,8 +949,6 @@ case "${target}" in echo "Warning: winsup/cygwin is missing so newlib can't be built." fi ;; - i[[3456789]]86-*-interix* ) - ;; i[[3456789]]86-*-pe) noconfigdirs="$noconfigdirs target-libgloss" ;; @@ -829,40 +960,27 @@ case "${target}" in i[[3456789]]86-*-sco*) noconfigdirs="$noconfigdirs gprof target-libgloss" ;; - i[[3456789]]86-*-solaris2*) + i[[3456789]]86-*-solaris2* | x86_64-*-solaris2.1[[0-9]]*) noconfigdirs="$noconfigdirs target-libgloss" ;; i[[3456789]]86-*-sysv4*) noconfigdirs="$noconfigdirs target-libgloss" ;; i[[3456789]]86-*-beos*) - noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss" + noconfigdirs="$noconfigdirs gdb" ;; i[[3456789]]86-*-rdos*) - noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss" - ;; - m32r-*-*) - noconfigdirs="$noconfigdirs ${libgcj}" - ;; - m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*) - libgloss_dir=m68hc11 - ;; - m68k-*-elf*) - noconfigdirs="$noconfigdirs ${libgcj}" - ;; - m68*-*-* | fido-*-*) - libgloss_dir=m68k + noconfigdirs="$noconfigdirs gdb" ;; mmix-*-*) - noconfigdirs="$noconfigdirs target-libffi target-boehm-gc gdb" - unsupported_languages="$unsupported_languages java" + noconfigdirs="$noconfigdirs gdb" ;; mt-*-*) noconfigdirs="$noconfigdirs sim" ;; powerpc-*-aix*) # copied from rs6000-*-* entry - noconfigdirs="$noconfigdirs gprof target-libgloss target-newlib ${libgcj}" + noconfigdirs="$noconfigdirs gprof" ;; powerpc*-*-winnt* | powerpc*-*-pe*) target_configdirs="$target_configdirs target-winsup" @@ -873,108 +991,69 @@ case "${target}" in # This is temporary until we can link against shared libraries powerpcle-*-solaris*) noconfigdirs="$noconfigdirs gdb sim tcl tk itcl" - libgloss_dir=rs6000 ;; powerpc-*-beos*) - noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss" - ;; - powerpc-*-eabi) - noconfigdirs="$noconfigdirs ${libgcj}" - libgloss_dir=rs6000 - ;; - powerpc-*-eabi* | powerpcle-*-eabi* | powerpc-*-rtems* ) - libgloss_dir=rs6000 + noconfigdirs="$noconfigdirs gdb" ;; rs6000-*-lynxos*) - noconfigdirs="$noconfigdirs target-newlib gprof ${libgcj}" + noconfigdirs="$noconfigdirs gprof" ;; rs6000-*-aix*) - noconfigdirs="$noconfigdirs gprof target-libgloss target-newlib ${libgcj}" + noconfigdirs="$noconfigdirs gprof" ;; rs6000-*-*) - noconfigdirs="$noconfigdirs gprof ${libgcj}" + noconfigdirs="$noconfigdirs gprof" ;; m68k-apollo-*) noconfigdirs="$noconfigdirs ld binutils gprof target-libgloss" ;; microblaze*) - noconfigdirs="$noconfigdirs gprof ${libgcj}" + noconfigdirs="$noconfigdirs gprof" ;; mips*-sde-elf*) - noconfigdirs="$noconfigdirs ${libgcj}" if test x$with_newlib = xyes; then noconfigdirs="$noconfigdirs gprof" fi - libgloss_dir=mips ;; mips*-*-irix5*) noconfigdirs="$noconfigdirs gprof target-libgloss" ;; mips*-*-irix6*) - # Linking libjava exceeds command-line length limits on at least - # IRIX 6.2, but not on IRIX 6.5. - # Also, boehm-gc won't build on IRIX 6.5, according to Jeffrey Oldham - # - noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}" + noconfigdirs="$noconfigdirs gprof target-libgloss" ;; mips*-*-bsd*) noconfigdirs="$noconfigdirs gprof target-libgloss" ;; mips*-*-linux*) - noconfigdirs="$noconfigdirs target-newlib target-libgloss" ;; mips*-*-*) - noconfigdirs="$noconfigdirs gprof ${libgcj}" - libgloss_dir=mips + noconfigdirs="$noconfigdirs gprof" ;; sh-*-* | sh64-*-*) case "${target}" in sh*-*-elf) - noconfigdirs="$noconfigdirs ${libgcj}" ;; + ;; *) - noconfigdirs="$noconfigdirs target-libgloss ${libgcj}" ;; + noconfigdirs="$noconfigdirs target-libgloss" ;; esac ;; - sparclet-*-aout* | sparc86x-*-*) - libgloss_dir=sparc - ;; - sparc-*-elf*) - noconfigdirs="$noconfigdirs ${libgcj}" - ;; - sparc64-*-elf*) - noconfigdirs="$noconfigdirs ${libgcj}" - libgloss_dir=sparc - ;; - sparclite-*-*) - libgloss_dir=sparc - ;; sparc-*-sunos4*) - if test x${is_cross_compiler} != xno ; then - noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss" - else + if test x${is_cross_compiler} = xno ; then use_gnu_ld=no fi ;; - sparc-*-solaris* | sparc64-*-solaris* | sparcv9-*-solaris*) - ;; tic6x-*-*) - noconfigdirs="$noconfigdirs gdb sim ${libgcj}" + noconfigdirs="$noconfigdirs sim" + ;; + tilepro-*-* | tilegx-*-*) + noconfigdirs="$noconfigdirs sim" ;; v810-*-*) noconfigdirs="$noconfigdirs bfd binutils gas gdb ld opcodes target-libgloss" ;; vax-*-*) - noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}" - ;; - *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | *-*-kopensolaris*-gnu) noconfigdirs="$noconfigdirs target-newlib target-libgloss" ;; - *-*-lynxos*) - noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}" - ;; - *-*-*) - noconfigdirs="$noconfigdirs ${libgcj}" - ;; esac # If we aren't building newlib, then don't build libgloss, since libgloss @@ -998,9 +1077,6 @@ case "${host}" in *-mingw*) host_makefile_frag="config/mh-mingw" ;; - *-interix*) - host_makefile_frag="config/mh-interix" - ;; hppa*-hp-hpux10*) host_makefile_frag="config/mh-pa-hpux10" ;; @@ -1077,6 +1153,49 @@ fi ACX_PROG_GNAT ACX_PROG_CMP_IGNORE_INITIAL +AC_ARG_ENABLE([bootstrap], +[AS_HELP_STRING([--enable-bootstrap], + [enable bootstrapping @<:@yes if native build@:>@])],, +enable_bootstrap=default) + +# Issue errors and warnings for invalid/strange bootstrap combinations. +if test -r $srcdir/gcc/configure; then + have_compiler=yes +else + have_compiler=no +fi + +case "$have_compiler:$host:$target:$enable_bootstrap" in + *:*:*:no) ;; + + # Default behavior. Enable bootstrap if we have a compiler + # and we are in a native configuration. + yes:$build:$build:default) + enable_bootstrap=yes ;; + + *:*:*:default) + enable_bootstrap=no ;; + + # We have a compiler and we are in a native configuration, bootstrap is ok + yes:$build:$build:yes) + ;; + + # Other configurations, but we have a compiler. Assume the user knows + # what he's doing. + yes:*:*:yes) + AC_MSG_WARN([trying to bootstrap a cross compiler]) + ;; + + # No compiler: if they passed --enable-bootstrap explicitly, fail + no:*:*:yes) + AC_MSG_ERROR([cannot bootstrap without a compiler]) ;; + + # Fail if wrong command line + *) + AC_MSG_ERROR([invalid option for --enable-bootstrap]) + ;; +esac + # See if we are building gcc with C++. AC_ARG_ENABLE(build-with-cxx, [AS_HELP_STRING([--enable-build-with-cxx], @@ -1084,6 +1203,13 @@ AC_ARG_ENABLE(build-with-cxx, ENABLE_BUILD_WITH_CXX=$enableval, ENABLE_BUILD_WITH_CXX=no) +# Build stage1 with C and build stages 2 and 3 with C++. +AC_ARG_ENABLE(build-poststage1-with-cxx, +[AS_HELP_STRING([--enable-build-poststage1-with-cxx], + [build stages 2 and 3 with C++, not C])], +ENABLE_BUILD_POSTSTAGE1_WITH_CXX=$enableval, +ENABLE_BUILD_POSTSTAGE1_WITH_CXX=yes) + # Used for setting $lt_cv_objdir _LT_CHECK_OBJDIR @@ -1565,6 +1691,19 @@ if test -d ${srcdir}/gcc; then ;; esac + # If bootstrapping, then using --enable-build-with-cxx or + # --enable-build-poststage1-with-cxx requires enabling C++. + case ",$enable_languages,:,$ENABLE_BUILD_WITH_CXX,$ENABLE_BUILD_POSTSTAGE1_WITH_CXX,:$enable_bootstrap" in + *,c++,*:*:*) ;; + *:*,yes,*:yes) + if test -f ${srcdir}/gcc/cp/config-lang.in; then + enable_languages="${enable_languages},c++" + else + AC_MSG_ERROR([bootstrapping with --enable-build-with-cxx or --enable-build-poststage1-with-cxx requires c++ sources]) + fi + ;; + esac + # First scan to see if an enabled language requires some other language. # We assume that a given config-lang.in will list all the language # front ends it requires, even if some are required indirectly. @@ -1654,9 +1793,11 @@ if test -d ${srcdir}/gcc; then exit 1 fi - if test "$language" = "c++" \ - && test "$ENABLE_BUILD_WITH_CXX" = "yes"; then - boot_language=yes + if test "$language" = "c++"; then + if test "$ENABLE_BUILD_WITH_CXX" = "yes" \ + || test "$ENABLE_BUILD_POSTSTAGE1_WITH_CXX" = "yes"; then + boot_language=yes + fi fi case ,${enable_languages}, in @@ -1838,6 +1979,14 @@ case ,${enable_languages},:${enable_objc_gc} in ;; esac +# Disable libitm if we're not building C++ +case ,${enable_languages}, in + *,c++,*) ;; + *) + noconfigdirs="$noconfigdirs target-libitm" + ;; +esac + # Remove the entries in $skipdirs and $noconfigdirs from $configdirs, # $build_configdirs and $target_configdirs. # If we have the source for $noconfigdirs entries, add them to $notsupp. @@ -1877,27 +2026,6 @@ for dir in . $skipdirs $noconfigdirs ; do fi done -# Sometimes the tools are distributed with libiberty but with no other -# libraries. In that case, we don't want to build target-libiberty. -# Don't let libgcc imply libiberty either. -if test -n "${target_configdirs}" ; then - libgcc= - others= - for i in `echo ${target_configdirs} | sed -e s/target-//g` ; do - if test "$i" = "libgcc"; then - libgcc=target-libgcc - elif test "$i" != "libiberty" ; then - if test -r $srcdir/$i/configure ; then - others=yes; - break; - fi - fi - done - if test -z "${others}" ; then - target_configdirs=$libgcc - fi -fi - # Quietly strip out all directories which aren't configurable in this tree. # This relies on all configurable subdirectories being autoconfiscated, which # is now the case. @@ -2025,6 +2153,8 @@ if test "x$CXXFLAGS_FOR_TARGET" = x; then fi AC_SUBST(CXXFLAGS_FOR_TARGET) +AC_SUBST(LDFLAGS_FOR_TARGET) + # Handle --with-headers=XXX. If the value is not "yes", the contents of # the named directory are copied to $(tooldir)/sys-include. if test x"${with_headers}" != x && test x"${with_headers}" != xno ; then @@ -2172,10 +2302,6 @@ case "${target}" in extra_arflags_for_target=" -X32_64" extra_nmflags_for_target=" -B -X32_64" ;; - *-*-darwin[[3-9]]*) - # ranlib before Darwin10 requires the -c flag to look at common symbols. - extra_ranlibflags_for_target=" -c" - ;; esac alphaieee_frag=/dev/null @@ -2220,14 +2346,6 @@ if test x${with_stabs} = x ; then esac fi -# hpux11 in 64bit mode has libraries in a weird place. Arrange to find -# them automatically. -case "${host}" in - hppa*64*-*-hpux11*) - extra_host_args="$extra_host_args -x-libraries=/usr/lib/pa20_64 -x-includes=/usr/X11R6/include" - ;; -esac - # Some systems (e.g., one of the i386-aix systems the gas testers are # using) don't handle "\$" correctly, so don't use it here. tooldir='${exec_prefix}'/${target_noncanonical} @@ -2271,34 +2389,6 @@ case $we_are_ok in esac rm -f conftest* -# The Solaris /usr/ucb/cc compiler does not appear to work. -case "${host}" in - sparc-sun-solaris2*) - CCBASE="`echo ${CC-cc} | sed 's/ .*$//'`" - if test "`type $CCBASE | sed 's/^[[^/]]*//'`" = "/usr/ucb/cc" ; then - could_use= - test -d /opt/SUNWspro/bin && could_use="/opt/SUNWspro/bin" - if test -d /opt/cygnus/bin ; then - if test "$could_use" = "" ; then - could_use="/opt/cygnus/bin" - else - could_use="$could_use or /opt/cygnus/bin" - fi - fi - if test "$could_use" = "" ; then - echo "Warning: compilation may fail because you're using" - echo "/usr/ucb/cc. You should change your PATH or CC " - echo "variable and rerun configure." - else - echo "Warning: compilation may fail because you're using" - echo "/usr/ucb/cc, when you should use the C compiler from" - echo "$could_use. You should change your" - echo "PATH or CC variable and rerun configure." - fi - fi - ;; -esac - # Decide which environment variable is used to find dynamic libraries. case "${host}" in *-*-hpux*) RPATH_ENVVAR=SHLIB_PATH ;; @@ -2368,55 +2458,6 @@ INSTALL_GDB_TK=`echo ${GDB_TK} | sed s/-all-/-install-/g` # 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], -[AS_HELP_STRING([--enable-bootstrap], - [enable bootstrapping @<:@yes if native build@:>@])],, -enable_bootstrap=default) - -# Issue errors and warnings for invalid/strange bootstrap combinations. -case "$configdirs" in - *gcc*) have_compiler=yes ;; - *) have_compiler=no ;; -esac - -case "$have_compiler:$host:$target:$enable_bootstrap" in - *:*:*:no) ;; - - # Default behavior. Enable bootstrap if we have a compiler - # and we are in a native configuration. - yes:$build:$build:default) - enable_bootstrap=yes ;; - - *:*:*:default) - enable_bootstrap=no ;; - - # We have a compiler and we are in a native configuration, bootstrap is ok - yes:$build:$build:yes) - ;; - - # Other configurations, but we have a compiler. Assume the user knows - # what he's doing. - yes:*:*:yes) - AC_MSG_WARN([trying to bootstrap a cross compiler]) - ;; - - # No compiler: if they passed --enable-bootstrap explicitly, fail - no:*:*:yes) - AC_MSG_ERROR([cannot bootstrap without a compiler]) ;; - - # Fail if wrong command line - *) - AC_MSG_ERROR([invalid option for --enable-bootstrap]) - ;; -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\ *:*) @@ -3025,6 +3066,7 @@ NCN_STRICT_CHECK_TOOLS(WINDRES, windres) NCN_STRICT_CHECK_TOOLS(WINDMC, windmc) NCN_STRICT_CHECK_TOOLS(OBJCOPY, objcopy) NCN_STRICT_CHECK_TOOLS(OBJDUMP, objdump) +NCN_STRICT_CHECK_TOOLS(READELF, readelf) AC_SUBST(CC) AC_SUBST(CXX) AC_SUBST(CFLAGS) @@ -3058,6 +3100,7 @@ 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(READELF_FOR_TARGET, readelf) 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) @@ -3087,6 +3130,7 @@ GCC_TARGET_TOOL(lipo, LIPO_FOR_TARGET, LIPO) GCC_TARGET_TOOL(nm, NM_FOR_TARGET, NM, [binutils/nm-new]) GCC_TARGET_TOOL(objdump, OBJDUMP_FOR_TARGET, OBJDUMP, [binutils/objdump]) GCC_TARGET_TOOL(ranlib, RANLIB_FOR_TARGET, RANLIB, [binutils/ranlib]) +GCC_TARGET_TOOL(readelf, READELF_FOR_TARGET, READELF, [binutils/readelf]) GCC_TARGET_TOOL(strip, STRIP_FOR_TARGET, STRIP, [binutils/strip-new]) GCC_TARGET_TOOL(windres, WINDRES_FOR_TARGET, WINDRES, [binutils/windres]) GCC_TARGET_TOOL(windmc, WINDMC_FOR_TARGET, WINDMC, [binutils/windmc]) @@ -3201,6 +3245,15 @@ case ${enable_werror} in esac AC_SUBST(stage2_werror_flag) +# If using ENABLE_BUILD_POSTSTAGE1_WITH_CXX, pass +# --enable-build-with-cxx after stage1. +if test "$ENABLE_BUILD_POSTSTAGE1_WITH_CXX" = "yes"; then + POSTSTAGE1_CONFIGURE_FLAGS=--enable-build-with-cxx +else + POSTSTAGE1_CONFIGURE_FLAGS= +fi +AC_SUBST(POSTSTAGE1_CONFIGURE_FLAGS) + # Specify what files to not compare during bootstrap. compare_exclusions="gcc/cc*-checksum\$(objext) | gcc/ada/*tools/*"