On 10/05/2017 07:15 PM, Alexandre Oliva wrote: > Unlike bootstrap-debug, bootstrap-debug-lean used to pass compare using > the traditional compare command, because it compiled both stage2 and > stage3 with options that used to generate identical output > (-fcompare-debug= in stage2 vs -fcompare-debug in stage3). > > Since we started adding relevant command-line flags to DW_AT_producer, > this is no longer the case, and stages 2 and 3 object files that differ > in nothing but the DW_AT_producer strings. > > > -fcompare-debug is short for -fcompare-debug=-gtoggle, so stage3 > compiles twice, once with the normal options, once with toggled -g, to > then compare the temporary final dumps. When enabled, both compilations > get from the driver an additional -frandom-seed flag (if none is given > explicitly). > > -fcompare-debug= is short for -fno-compare-debug, disabling the second > compilation. > > > The difference between the DW_AT_producer lines are the different > -fcompare-debug flags, and the presence of the -frandom-seed flag in the > stage3 compilation. > > It should be easy and sensible enough to filter the -fcompare-debug > flags out of the DW_AT_producer string. This option should never affect > the compilation output, it just determines whether or not to perform an > additional compilation that should produce the same executable output. > > However, doing that but that won't get us rid of the -frandom-seed > option. We could drop -frandom-seed from the DW_AT_producer output too, > but I don't think we should do that when the option is given by the > user, rather than implicitly introduced by -fcompare-debug. We could > introduce an option that causes the subsequent option to be omitted from > the DW_AT_producer string, and arrange for -fcompare-debug to issue that > option before the -frandom-seed option it issues. The problem with this > approach is that I can't decide whether it's an option prone to abuse, > or one that can have other legitimate uses. > > > Another approach to fix (or rather hide) this failure mode is to allow > the debug information to differ under bootstrap-debug-lean, by using the > same compare-debug script we use for bootstrap-debug. The first > patchlet below does just that. The second drops -fcompare-debug from > DW_AT_producer. A third (not written yet :-) might somehow deal with > the -frandom-seed added by -fcompare-debug, and either the first or the > others would be posted as a single, fully tested patch, once we decide > how we want to deal with -frandom-seed. > > > Thoughts? Thanks in advance, I'd support either or both. Your call.
jeff