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: bootstrap-debug-lean + flags in producer vs compare


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


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