This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: VTA merge - buildopts
- From: Alexandre Oliva <aoliva at redhat dot com>
- To: gcc-patches at gcc dot gnu dot org
- Date: Fri, 05 Jun 2009 07:22:07 -0300
- Subject: Re: VTA merge - buildopts
- References: <orws7r6lmg.fsf@free.oliva.athome.lsd.ic.unicamp.br> <orskif6lc9.fsf@free.oliva.athome.lsd.ic.unicamp.br>
buildopts (4K) - new BUILD_CONFIG options that can test VTA more thoroughly
Index: gcc/doc/install.texi
===================================================================
--- gcc/doc/install.texi.orig 2009-06-05 04:56:43.000000000 -0300
+++ gcc/doc/install.texi 2009-06-05 05:03:03.000000000 -0300
@@ -2041,7 +2041,32 @@ Analogous to @code{bootstrap-O1}.
@item @samp{bootstrap-debug}
Builds stage2 without debug information, and uses
-@file{contrib/compare-debug} to compare object files.
+@file{contrib/compare-debug} to compare object files. If
+@code{BOOT_CFLAGS} is overridden so as to not enable debug information,
+stage2 will have it, and stage3 won't.
+
+@item @samp{bootstrap-debug-lib}
+Toggles debug information generation in stage2, like
+@file{bootstrap-debug}, and enables internal comparison
+(@option{-fcompare-debug}) with and without debug information in stage3,
+and internal comparison with and without variable tracking at
+assignments (VTA) on stage4. As for libraries, it toggles debug
+information generation for libraries on stage1, enables internal
+comparison with and without VTA on stage2, internal comparison with and
+without debug information in stage3 (all libraries, unlike previous
+stages that only build libgcc), and internal comparison with and without
+VTA on stage4.
+
+@item @samp{bootstrap-debug-ckovw}
+Arranges for error messages to be issued if the compiler built on any
+stage is run without the option @option{-fcompare-debug}. This is
+useful to verify the full coverage of the @code{bootstrap-debug-lib}
+option.
+
+@item @samp{bootstrap-time}
+Arranges for the run time of each program started by the GCC driver,
+built in any stage, to be logged to @file{time.log}, in the top level of
+the build tree.
@end table
Index: config/bootstrap-debug.mk
===================================================================
--- config/bootstrap-debug.mk.orig 2009-06-05 04:56:43.000000000 -0300
+++ config/bootstrap-debug.mk 2009-06-05 05:03:04.000000000 -0300
@@ -1,2 +1,2 @@
-STAGE2_CFLAGS += -g0
+STAGE2_CFLAGS += -gtoggle
do-compare = $(SHELL) $(srcdir)/contrib/compare-debug $$f1 $$f2
Index: config/bootstrap-time.mk
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ config/bootstrap-time.mk 2009-06-05 05:03:04.000000000 -0300
@@ -0,0 +1,2 @@
+BOOT_CFLAGS += -time=$(shell pwd)/time.log
+TFLAGS += -time=$(shell pwd)/time.log
Index: config/bootstrap-debug-ckovw.mk
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ config/bootstrap-debug-ckovw.mk 2009-06-05 05:03:04.000000000 -0300
@@ -0,0 +1,12 @@
+# These arrange for a simple warning to be issued if -fcompare-debug
+# is not given.
+# BOOT_CFLAGS += -fcompare-debug="-w%n-fcompare-debug not overridden"
+# TFLAGS += -fcompare-debug="-w%n-fcompare-debug not overridden"
+
+# GCC_COMPARE_DEBUG="-w%n-fcompare-debug not overridden";
+
+FORCE_COMPARE_DEBUG = \
+ GCC_COMPARE_DEBUG=$${GCC_COMPARE_DEBUG--fcompare-debug-not-overridden}; \
+ export GCC_COMPARE_DEBUG;
+POSTSTAGE1_HOST_EXPORTS += $(FORCE_COMPARE_DEBUG)
+BASE_TARGET_EXPORTS += $(FORCE_COMPARE_DEBUG)
Index: config/bootstrap-debug-lib.mk
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ config/bootstrap-debug-lib.mk 2009-06-05 05:03:04.000000000 -0300
@@ -0,0 +1,13 @@
+# Stage1 compiler may not support this flag.
+# STAGE1_CFLAGS += -fcompare-debug=-gtoggle
+STAGE2_CFLAGS += -gtoggle -fcompare-debug=
+STAGE3_CFLAGS += -fcompare-debug=-gtoggle
+STAGE4_CFLAGS += -fcompare-debug=-fvar-tracking-assignments-toggle
+# This might be enough after testing:
+# TFLAGS += -fcompare-debug=-g0
+# Don't use -gtoggle for target libs, this breaks crtstuff on ppc.
+STAGE1_TFLAGS += -fcompare-debug=
+STAGE2_TFLAGS += -fcompare-debug=-fvar-tracking-assignments-toggle
+STAGE3_TFLAGS += -fcompare-debug=-g0
+STAGE4_TFLAGS += -fcompare-debug=-fvar-tracking-assignments-toggle
+do-compare = $(SHELL) $(srcdir)/contrib/compare-debug $$f1 $$f2
--
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