This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Work around PR bootstrap/62077


On April 17, 2015 2:37:08 PM GMT+02:00, Jakub Jelinek <jakub@redhat.com> wrote:
>Hi!
>
>As discussed in the PR, during LTO bootstrap we have some hard to debug
>issues where different gc checking values between stage1 and stage2
>result
>in different GC collections and occassionally we generate different
>code for
>that.  The stated workaround is --enable-stage1-checking=release,
>I've narrowed it down to just the gc checking that should if possible
>for
>lto bootstraps match between stage1 and later checking, and
>--enable-checking=yes,types that we want to use by default for stage1
>minus gc checking is
>--enable-checking=release,misc,gimple,rtlflag,tree,types
>
>This patch arranges to do that by default, i.e. for e.g.
>--disable-checking --with-build-config=bootstrap-lto
>--with-build-config=bootstrap-lto-noplugin
>(the latter only on the release branches).  When --enable-checking is
>used
>explicitly, gc matches between the stages, as we use then
>--enable-checking=$enable_checking,types
>and for explicit --enable-stage1-checking of course we should honor
>whatever
>the user asked for.
>
>Bootstrapped/regtested on x86_64-linux on the GCC 5 branch
>with
>--with-build-config=bootstrap-lto
>and tested with just running configure and inspecting config.status on
>both
>GCC 5 branch and trunk for
>default
>--with-build-config=bootstrap-lto
>--disable-checking
>--disable-checking --with-build-config=bootstrap-lto
>--enable-checking=release
>--enable-checking=release --with-build-config=bootstrap-lto
>--enable-checking=yes
>--enable-checking=yes --with-build-config=bootstrap-lto
>--enable-checking=misc
>--enable-checking=misc --with-build-config=bootstrap-lto
>
>Ok for trunk/5.1?

OK.

Thanks,
Richard.

>2015-04-17  Jakub Jelinek  <jakub@redhat.com>
>
>	PR bootstrap/62077
>	* configure.ac (--enable-stage1-checking): Default to
>	release,misc,gimple,rtlflag,tree,types if --disable-checking
>	or --enable-checking is not specified and DEV-PHASE is not
>	experimental.
>	* configure: Regenerated.
>
>--- configure.ac.jj	2015-04-12 21:48:10.891076088 +0200
>+++ configure.ac	2015-04-17 13:48:00.591972993 +0200
>@@ -3482,7 +3482,19 @@ AC_ARG_ENABLE(stage1-checking,
> 		[choose additional checking for stage1 of the compiler])],
> [stage1_checking=--enable-checking=${enable_stage1_checking}],
>[if test "x$enable_checking" = xno || test "x$enable_checking" = x;
>then
>-  stage1_checking=--enable-checking=yes,types
>+  # For --disable-checking or implicit --enable-checking=release,
>avoid
>+  # setting --enable-checking=gc in the default stage1 checking for
>LTO
>+  # bootstraps.  See PR62077.
>+ 
>stage1_checking=--enable-checking=release,misc,gimple,rtlflag,tree,types
>+  case $BUILD_CONFIG in
>+    *lto*)
>+      if test "x$enable_checking" = x && \
>+	 test -d ${srcdir}/gcc && \
>+	 test x"`cat ${srcdir}/gcc/DEV-PHASE`" = xexperimental; then
>+	stage1_checking=--enable-checking=yes,types
>+      fi;;
>+    *) stage1_checking=--enable-checking=yes,types;;
>+  esac
> else
>   stage1_checking=--enable-checking=$enable_checking,types
> fi])
>--- configure.jj	2015-04-12 21:48:53.000000000 +0200
>+++ configure	2015-04-17 13:48:14.674745554 +0200
>@@ -14761,7 +14761,19 @@ if test "${enable_stage1_checking+set}"
>enableval=$enable_stage1_checking;
>stage1_checking=--enable-checking=${enable_stage1_checking}
> else
>if test "x$enable_checking" = xno || test "x$enable_checking" = x; then
>-  stage1_checking=--enable-checking=yes,types
>+  # For --disable-checking or implicit --enable-checking=release,
>avoid
>+  # setting --enable-checking=gc in the default stage1 checking for
>LTO
>+  # bootstraps.  See PR62077.
>+ 
>stage1_checking=--enable-checking=release,misc,gimple,rtlflag,tree,types
>+  case $BUILD_CONFIG in
>+    *lto*)
>+      if test "x$enable_checking" = x && \
>+	 test -d ${srcdir}/gcc && \
>+	 test x"`cat ${srcdir}/gcc/DEV-PHASE`" = xexperimental; then
>+	stage1_checking=--enable-checking=yes,types
>+      fi;;
>+    *) stage1_checking=--enable-checking=yes,types;;
>+  esac
> else
>   stage1_checking=--enable-checking=$enable_checking,types
> fi
>
>	Jakub



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]