This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [vta->trunk] VTA merge
On Sep 3, 2009, Alexandre Oliva <aoliva@redhat.com> wrote:
> On Sep 2, 2009, dominiq@lps.ens.fr (Dominique Dhumieres) wrote:
>> This is likely the cause of pr41224.
> And pr41228.
> This is a patch that should fix it. I'm checking it in now. Please
> confirm whether it fixes the problem for you.
Sorry, I posted an outdated patch.
Here's one that has complete ChangeLog entries and additional fixes for
the bootstrap-debug* BUILD_CONFIGs.
for ChangeLog
from Alexandre Oliva <aoliva@redhat.com>
* configure.ac (--with-build-config): New. Set BUILD_CONFIG.
Default to bootstrap-debug only if compare-debug works.
* configure: Rebuilt.
* Makefile.tpl: Make BUILD_CONFIG configure-configurable.
* Makefile.in: Rebuilt.
for contrib/ChangeLog
from Alexandre Oliva <aoliva@redhat.com>
* bootstrap-debug-big.mk (STAGE2_CFLAGS): Drop -gtoggle.
* bootstrap-debug-lean.mk: Update comments.
(STAGE2_CFLAGS): Likewise.
(do-compare): Don't override.
for gcc/ChangeLog
from Alexandre Oliva <aoliva@redhat.com>
* doc/invoke.texi (BUILD_CONFIG): Document --with-build-config.
(bootstrap-debug): Explain conditions in which it becomes default.
(bootstrap-debug-big): Rather than duplicate bootstrap-debug,
make it add to it.
Index: Makefile.in
===================================================================
--- Makefile.in.orig 2009-09-03 02:42:45.000000000 -0300
+++ Makefile.in 2009-09-03 02:46:00.000000000 -0300
@@ -771,7 +771,7 @@ EXTRA_GCC_FLAGS = \
GCC_FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(EXTRA_GCC_FLAGS)
@if gcc
-BUILD_CONFIG = bootstrap-debug
+BUILD_CONFIG = @BUILD_CONFIG@
ifneq ($(BUILD_CONFIG),)
include $(foreach CONFIG, $(BUILD_CONFIG), $(srcdir)/config/$(CONFIG).mk)
endif
Index: Makefile.tpl
===================================================================
--- Makefile.tpl.orig 2009-09-03 02:42:45.000000000 -0300
+++ Makefile.tpl 2009-09-03 02:46:00.000000000 -0300
@@ -619,7 +619,7 @@ EXTRA_GCC_FLAGS = \
GCC_FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(EXTRA_GCC_FLAGS)
@if gcc
-BUILD_CONFIG = bootstrap-debug
+BUILD_CONFIG = @BUILD_CONFIG@
ifneq ($(BUILD_CONFIG),)
include $(foreach CONFIG, $(BUILD_CONFIG), $(srcdir)/config/$(CONFIG).mk)
endif
Index: configure
===================================================================
--- configure.orig 2009-09-03 02:42:45.000000000 -0300
+++ configure 2009-09-03 02:46:00.000000000 -0300
@@ -631,6 +631,7 @@ build_tooldir
tooldir
GCC_SHLIB_SUBDIR
RPATH_ENVVAR
+BUILD_CONFIG
CXXFLAGS_FOR_TARGET
CFLAGS_FOR_TARGET
DEBUG_PREFIX_CFLAGS_FOR_TARGET
@@ -6569,13 +6570,42 @@ $as_echo "$as_me: WARNING: trying to boo
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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for default BUILD_CONFIG" >&5
+$as_echo_n "checking for default BUILD_CONFIG... " >&6; }
+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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $BUILD_CONFIG" >&5
+$as_echo "$BUILD_CONFIG" >&6; }
+
+
for module in ${build_configdirs} ; do
if test -z "${no_recursion}" \
&& test -f ${build_subdir}/${module}/Makefile; then
Index: configure.ac
===================================================================
--- configure.ac.orig 2009-09-03 02:42:45.000000000 -0300
+++ configure.ac 2009-09-03 02:46:00.000000000 -0300
@@ -2459,13 +2459,40 @@ case "$have_compiler:$host:$target:$enab
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)
+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)
+
for module in ${build_configdirs} ; do
if test -z "${no_recursion}" \
&& test -f ${build_subdir}/${module}/Makefile; then
Index: config/bootstrap-debug-big.mk
===================================================================
--- config/bootstrap-debug-big.mk.orig 2009-09-03 02:42:45.000000000 -0300
+++ config/bootstrap-debug-big.mk 2009-09-03 02:46:00.000000000 -0300
@@ -3,6 +3,6 @@
# stage3, it generates dumps during stage2 and stage3, saving them all
# until the final compare.
-STAGE2_CFLAGS += -gtoggle -fdump-final-insns
+STAGE2_CFLAGS += -fdump-final-insns
STAGE3_CFLAGS += -fdump-final-insns
do-compare = $(SHELL) $(srcdir)/contrib/compare-debug $$f1 $$f2
Index: config/bootstrap-debug-lean.mk
===================================================================
--- config/bootstrap-debug-lean.mk.orig 2009-09-03 02:42:45.000000000 -0300
+++ config/bootstrap-debug-lean.mk 2009-09-03 02:47:20.000000000 -0300
@@ -1,11 +1,11 @@
-# This BUILD_CONFIG option is a bit like bootstrap-debug, but in
-# addition to comparing stripped object files, it also compares
-# compiler internal state during stage3.
+# This BUILD_CONFIG option is a bit like bootstrap-debug, but rather
+# than comparing stripped object files, it compares compiler internal
+# state during stage3. Both can be used simultaneously.
-# This makes it slower than bootstrap-debug, for there's additional
-# dumping and recompilation during stage3. bootstrap-debug-big can
-# avoid the recompilation, if plenty of disk space is available.
+# This makes it slower than bootstrap-debug alone, for there's
+# additional dumping and recompilation during stage3.
+# bootstrap-debug-big can avoid the recompilation, if plenty of disk
+# space is available.
-STAGE2_CFLAGS += -gtoggle -fcompare-debug=
+STAGE2_CFLAGS += -fcompare-debug=
STAGE3_CFLAGS += -fcompare-debug
-do-compare = $(SHELL) $(srcdir)/contrib/compare-debug $$f1 $$f2
Index: gcc/doc/install.texi
===================================================================
--- gcc/doc/install.texi.orig 2009-09-03 02:42:45.000000000 -0300
+++ gcc/doc/install.texi 2009-09-03 02:46:00.000000000 -0300
@@ -2080,11 +2080,13 @@ the one you are building on: for example
@code{powerpc64-unknown-linux-gnu} host. In this case, pass
@option{--enable-bootstrap} to the configure script.
-@code{BUILD_CONFIG} can be used to bring in additional customization to
-the build. It can be set to a whitespace-separated list of names. For
-each such @code{NAME}, top-level @file{config/@code{NAME}.mk} will be
-included by the top-level @file{Makefile}, bringing in any settings it
-contains. Some examples are:
+@code{BUILD_CONFIG} can be used to bring in additional customization
+to the build. It can be set to a whitespace-separated list of names.
+For each such @code{NAME}, top-level @file{config/@code{NAME}.mk} will
+be included by the top-level @file{Makefile}, bringing in any settings
+it contains. The default @code{BUILD_CONFIG} can be set using the
+configure option @option{--with-build-config=@code{NAME}...}. Some
+examples of supported build configurations are:
@table @asis
@item @samp{bootstrap-O1}
@@ -2097,19 +2099,22 @@ Analogous to @code{bootstrap-O1}.
@item @samp{bootstrap-debug}
Verifies that the compiler generates the same executable code, whether
-or not it is asked to emit debug information. To this end, this option
-builds stage2 host programs without debug information, and uses
+or not it is asked to emit debug information. To this end, this
+option builds stage2 host programs without debug information, and uses
@file{contrib/compare-debug} to compare them with the stripped stage3
object files. If @code{BOOT_CFLAGS} is overridden so as to not enable
debug information, stage2 will have it, and stage3 won't. This option
-is enabled by default when GCC bootstrapping is enabled: in addition to
-better test coverage, it makes default bootstraps faster and leaner.
+is enabled by default when GCC bootstrapping is enabled, if
+@code{strip} can turn object files compiled with and without debug
+info into identical object files. In addition to better test
+coverage, this option makes default bootstraps faster and leaner.
@item @samp{bootstrap-debug-big}
-In addition to the checking performed by @code{bootstrap-debug}, this
-option saves internal compiler dumps during stage2 and stage3 and
-compares them as well, which helps catch additional potential problems,
-but at a great cost in terms of disk space.
+Rather than comparing stripped object files, as in
+@code{bootstrap-debug}, this option saves internal compiler dumps
+during stage2 and stage3 and compares them as well, which helps catch
+additional potential problems, but at a great cost in terms of disk
+space. It can be specified in addition to @samp{bootstrap-debug}.
@item @samp{bootstrap-debug-lean}
This option saves disk space compared with @code{bootstrap-debug-big},
--
Alexandre Oliva, freedom fighter http://FSFLA.org/~lxoliva/
You must be the change you wish to see in the world. -- Gandhi
Be Free! -- http://FSFLA.org/ FSF Latin America board member
Free Software Evangelist Red Hat Brazil Compiler Engineer