re PR bootstrap/49787 (--enable-languages=c doesn't work)

PR bootstrap/49787
	* configure.ac: Move --enable-bootstrap handling earlier in file.
	If --enable-bootstrap and either --enable-build-with-cxx or
	--enable-build-poststage1-with-cxx, enable C++ automatically.
	* configure: Rebuild.

From-SVN: r176512
This commit is contained in:
Ian Lance Taylor 2011-07-20 14:08:42 +00:00 committed by Ian Lance Taylor
parent c4100a35b8
commit ff3ac0f471
3 changed files with 124 additions and 104 deletions

View File

@ -1,3 +1,11 @@
2011-07-20 Ian Lance Taylor <iant@google.com>
PR bootstrap/49787
* configure.ac: Move --enable-bootstrap handling earlier in file.
If --enable-bootstrap and either --enable-build-with-cxx or
--enable-build-poststage1-with-cxx, enable C++ automatically.
* configure: Rebuild.
2011-07-19 Ian Lance Taylor <iant@google.com>
* configure.ac: Add --enable-build-poststage1-with-cxx. If set,

116
configure vendored
View File

@ -749,6 +749,7 @@ enable_libquadmath_support
enable_libada
enable_libssp
enable_static_libjava
enable_bootstrap
enable_build_with_cxx
enable_build_poststage1_with_cxx
with_mpc
@ -781,7 +782,6 @@ enable_stage1_languages
enable_objc_gc
with_build_sysroot
with_debug_prefix_map
enable_bootstrap
with_build_config
enable_serial_configure
with_build_time_tools
@ -1466,6 +1466,7 @@ Optional Features:
--enable-libssp build libssp directory
--enable-static-libjava[=ARG]
build static libjava [default=no]
--enable-bootstrap enable bootstrapping [yes if native build]
--enable-build-with-cxx build with C++ compiler instead of C compiler
--enable-build-poststage1-with-cxx
build stages 2 and 3 with C++, not C
@ -1482,7 +1483,6 @@ Optional Features:
Mostly useful for compiler development
--enable-objc-gc enable use of Boehm's garbage collector with the GNU
Objective-C runtime
--enable-bootstrap enable bootstrapping [yes if native build]
--enable-serial-[{host,target,build}-]configure
force sequential configuration of sub-packages for
the host, target or build machine, or all
@ -4983,6 +4983,52 @@ do_compare="$gcc_cv_prog_cmp_skip"
# Check whether --enable-bootstrap was given.
if test "${enable_bootstrap+set}" = set; then :
enableval=$enable_bootstrap;
else
enable_bootstrap=default
fi
# 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)
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: trying to bootstrap a cross compiler" >&5
$as_echo "$as_me: WARNING: trying to bootstrap a cross compiler" >&2;}
;;
# No compiler: if they passed --enable-bootstrap explicitly, fail
no:*:*:yes)
as_fn_error "cannot bootstrap without a compiler" "$LINENO" 5 ;;
# Fail if wrong command line
*)
as_fn_error "invalid option for --enable-bootstrap" "$LINENO" 5
;;
esac
# See if we are building gcc with C++.
# Check whether --enable-build-with-cxx was given.
if test "${enable_build_with_cxx+set}" = set; then :
@ -6105,6 +6151,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
as_fn_error "bootstrapping with --enable-build-with-cxx or --enable-build-poststage1-with-cxx requires c++ sources" "$LINENO" 5
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.
@ -6906,59 +6965,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.
# Check whether --enable-bootstrap was given.
if test "${enable_bootstrap+set}" = set; then :
enableval=$enable_bootstrap;
else
enable_bootstrap=default
fi
# 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)
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: trying to bootstrap a cross compiler" >&5
$as_echo "$as_me: WARNING: trying to bootstrap a cross compiler" >&2;}
;;
# No compiler: if they passed --enable-bootstrap explicitly, fail
no:*:*:yes)
as_fn_error "cannot bootstrap without a compiler" "$LINENO" 5 ;;
# Fail if wrong command line
*)
as_fn_error "invalid option for --enable-bootstrap" "$LINENO" 5
;;
esac
case ",$enable_languages,:,$ENABLE_BUILD_WITH_CXX,$ENABLE_BUILD_POSTSTAGE1_WITH_CXX,:$enable_bootstrap" in
*,c++,*:*:*) ;;
*:*,yes,*:yes)
as_fn_error "bootstrapping with --enable-build-with-cxx or --enable-build-postage1-with-cxx requires c++ in --enable-languages" "$LINENO" 5
;;
esac
case "$enable_bootstrap:$ENABLE_GOLD: $configdirs :,$stage1_languages," in
yes:yes:*\ gold\ *:*,c++,*) ;;
yes:yes:*\ gold\ *:*)

View File

@ -1133,6 +1133,48 @@ 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.
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
# See if we are building gcc with C++.
AC_ARG_ENABLE(build-with-cxx,
[AS_HELP_STRING([--enable-build-with-cxx],
@ -1628,6 +1670,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.
@ -2378,55 +2433,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_BUILD_POSTSTAGE1_WITH_CXX,:$enable_bootstrap" in
*,c++,*:*:*) ;;
*:*,yes,*:yes)
AC_MSG_ERROR([bootstrapping with --enable-build-with-cxx or --enable-build-postage1-with-cxx requires c++ in --enable-languages])
;;
esac
case "$enable_bootstrap:$ENABLE_GOLD: $configdirs :,$stage1_languages," in
yes:yes:*\ gold\ *:*,c++,*) ;;
yes:yes:*\ gold\ *:*)