On Mon, 2 May 2016, Jeff Law wrote: > On 04/29/2016 05:36 AM, Richard Biener wrote: > > On Thu, 28 Apr 2016, Jeff Law wrote: > > > > > On 04/28/2016 02:49 AM, Richard Biener wrote: > > > > > > > > The following prototype patch re-uses cc1-checksum.c from the > > > > previous stage when compiling stage-final. This eventually > > > > allows to compare cc1 from the last two stages to fix the > > > > lack of a true comparison when doing LTO bootstrap (it > > > > compiles LTO bytecode from the compile-stage there, not the > > > > final optimization result). > > > > > > > > Bootstrapped on x86_64-unknown-linux-gnu. > > > > > > > > When stripping gcc/cc1 and prev-gcc/cc1 after the bootstrap > > > > they now compare identical (with LTO bootstrap it should > > > > not require stripping as that doesn't do a bootstrap-debug AFAIK). > > > > > > > > Is sth like this acceptable? (consider it also done for > > > > cp/Make-lang.in) > > > > > > > > In theory we can compare all stage1 languages but I guess comparing > > > > the required ones for a LTO bootstrap, cc1, cc1plus and lto1 would > > > > be sufficient (or even just comparing one binary in which case > > > > comparing lto1 would not require any patches). > > > > > > > > This also gets rid of the annoying warning that cc1-checksum.o > > > > differs (obviously). > > > > > > > > Thanks, > > > > Richard. > > > > > > > > 2016-04-28 Richard Biener <rguent...@suse.de> > > > > > > > > c/ > > > > * Make-lang.in (cc1-checksum.c): For stage-final re-use > > > > the checksum from the previous stage. > > > I won't object if you add a comment into the fragment indicating why > > > you're > > > doing this. > > > > So the following is a complete patch (not considering people may > > add objc or obj-c++ to stage1 languages). Build with --disable-bootstrap, > > bootstrapped and profilebootstrapped with verifying it works as > > intended (looks like we don't compare with profiledbootstrap - huh, > > we're building stagefeedback only once) > > > > Ok for trunk? > > > > Step 2 will now be to figure out how to also compare cc1 (for example) > > when using bootstrap-lto ... (we don't want to do this unconditionally > > as it is a waste of time when the objects are not only LTO bytecode). > > > > Thanks, > > Richard. > > > > 2016-04-29 Richard Biener <rguent...@suse.de> > > > > c/ > > * Make-lang.in (cc1-checksum.c): For stage-final re-use > > the checksum from the previous stage. > > > > cp/ > > * Make-lang.in (cc1plus-checksum.c): For stage-final re-use > > the checksum from the previous stage. > LGTM. > jeff
Thanks - applied as rev. 235804. I'll now play with some way to add additional compare objects. Thinking of adding sth like EXTRA_COMPARE_OBJS = lto1 cc1 cc1plus to bootstrap-lto.mk for example. Richard.