This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: GCC 4.2 branch comparision failure building Java
- From: "Joseph S. Myers" <joseph at codesourcery dot com>
- To: Mark Mitchell <mark at codesourcery dot com>
- Cc: gcc at gcc dot gnu dot org
- Date: Fri, 16 Mar 2007 20:02:01 +0000 (UTC)
- Subject: Re: GCC 4.2 branch comparision failure building Java
- References: <200703140043.l2E0h0nU023972@sethra.codesourcery.com>
On Tue, 13 Mar 2007, Mark Mitchell wrote:
> The GCC 4.2.0 RC1 build has failed (on x86_64-unknown-linux-gnu) with:
>
> Comparing stages 2 and 3
> Bootstrap comparison failure!
> ./java/parse.o differs
> ./java/parse-scan.o differs
This is caused by --enable-generated-files-in-srcdir, as used by the
release script, hence not being seen by people configuring normally
without that option. The first time Java is built (stage 2), the file
java/parse.c is generated in the build directory and compiled from the
build directory; only some time after parse.o is built does parse.c get
copied to the source directory. The second time (stage 3) it's built from
the source directory because of the VPATH setting. Building from
different paths means different debug info.
This didn't apply with 4.1 because then, without toplevel bootstrap, all
files to be copied to the source directory were generated and copied in
stage 1, so stage 2 and stage 3 both built them from the source directory.
Now, stage 1 is not only built as C only but the whole stage 1 build
directory is configured as C only, and so Java generated files don't get
copied until stage 2.
I have no suggested solution, other than ceasing to include files
generated with bison, flex and makeinfo in releases for 4.2 and later.
(The GNU Coding Standards describe such generated files with "We commonly
include" rather than with a requirement to include them.)
I've found another issue that can cause comparison failures in some
circumstances; I'll file a PR for that.
--
Joseph S. Myers
joseph@codesourcery.com