This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: bootstrap-debug-lean + flags in producer vs compare
- From: Jeff Law <law at redhat dot com>
- To: Alexandre Oliva <aoliva at redhat dot com>, gcc-patches at gcc dot gnu dot org
- Date: Mon, 30 Oct 2017 17:12:59 -0600
- Subject: Re: bootstrap-debug-lean + flags in producer vs compare
- Authentication-results: sourceware.org; auth=none
- Authentication-results: ext-mx08.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com
- Authentication-results: ext-mx08.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=law at redhat dot com
- Dmarc-filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 6EC23C0568F9
- References: <or1smh5b6i.fsf@lxoliva.fsfla.org>
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