From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 123143 invoked by alias); 29 May 2019 10:10:09 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 123133 invoked by uid 89); 29 May 2019 10:10:09 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-14.6 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,KAM_SHORT,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.1 spammy=HX-Received:a0c, las X-HELO: mail-qt1-f179.google.com Received: from mail-qt1-f179.google.com (HELO mail-qt1-f179.google.com) (209.85.160.179) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 29 May 2019 10:10:06 +0000 Received: by mail-qt1-f179.google.com with SMTP id u12so1814731qth.3 for ; Wed, 29 May 2019 03:10:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=sy0Ev2QsMAyNaX6MEslemeeN8cCQKLiIJB0MoEYYYEM=; b=Og8wB97yTBL6WlrBvReCBl+sSagZ+OA6J4rR16xOwr3E8IiYLBjaVSkjpNYVuMPckh Z3bkPM7bEMAY9jLXRCK3uEacm2uyi7Zt86tOuYtuiiwE7C32hsPPcCAtqb3qOwHhmeRG +AbEfw2ffAktQUhKw0CtZq1CfDcAIARtQZs+r3n3ssbOmG/9L8G/5nDRxDiW0UiQJdUA D11z3JoBbcbIE7DdNZRikf4Ms8AP7mLAOcAcJMXST83zoVSHrWLc9OZptci+/0RaNKEL x9maMQV5xDr8M091bDx4JcOeeKKUWpYKetf7uInGKMN2gEA5v/fZw99dx+sAq8NG3lC5 o7Hg== MIME-Version: 1.0 References: <20190521145911.3330-1-patrickdepinguin@gmail.com> In-Reply-To: <20190521145911.3330-1-patrickdepinguin@gmail.com> From: Thomas De Schampheleire Date: Wed, 29 May 2019 10:55:00 -0000 Message-ID: Subject: Re: [PATCHv2] debug: make -feliminate-unused-debug-symbols the default [PR debug/86964] To: Richard Biener Cc: Thomas De Schampheleire , gcc-patches@gcc.gnu.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-IsSubscribed: yes X-SW-Source: 2019-05/txt/msg01880.txt.bz2 Hi Richard, El mar., 21 may. 2019 a las 16:57, Thomas De Schampheleire () escribi=C3=B3: > > From: Thomas De Schampheleire > > In addition to making -feliminate-unused-debug-symbols work for the DWARF > format (see [1]), make this option the default. This behavior was the case > before, e.g. under gcc 4.9.x. > [1] https://gcc.gnu.org/viewcvs/gcc?view=3Drevision&revision=3D269925 > > This change requires some updates to test cases, which expected the previ= ous > default of not eliminating unused debug symbols. > > gcc/ChangeLog: > > 2019-05-21 Thomas De Schampheleire > > PR debug/86964 > * common.opt (feliminate-unused-debug-symbols): Enable by default. > * doc/invoke.texi (Debugging Options): Document new default of > -feliminate-unused-debug-symbols and remove restriction to 'stabs= '. > > gcc/testsuite/ChangeLog: > > 2019-05-21 Thomas De Schampheleire > > PR debug/86964 > * g++.dg/debug/dwarf2/fesd-any.C: Use > -fno-eliminate-unused-debug-symbols. > * g++.dg/debug/dwarf2/fesd-baseonly.C: Likewise. > * g++.dg/debug/dwarf2/fesd-none.C: Likewise. > * g++.dg/debug/dwarf2/fesd-reduced.C: Likewise. > * g++.dg/debug/dwarf2/fesd-sys.C: Likewise. > * g++.dg/debug/dwarf2/inline-var-1.C: Likewise. > * g++.dg/debug/enum-2.C: Likewise. > * gcc.dg/debug/dwarf2/fesd-any.c: Likewise. > * gcc.dg/debug/dwarf2/fesd-baseonly.c: Likewise. > * gcc.dg/debug/dwarf2/fesd-none.c: Likewise. > * gcc.dg/debug/dwarf2/fesd-reduced.c: Likewise. > * gcc.dg/debug/dwarf2/fesd-sys.c: Likewise. > --- > gcc/common.opt | 2 +- > gcc/doc/invoke.texi | 9 +++++---- > gcc/testsuite/g++.dg/debug/dwarf2/fesd-any.C | 2 +- > gcc/testsuite/g++.dg/debug/dwarf2/fesd-baseonly.C | 2 +- > gcc/testsuite/g++.dg/debug/dwarf2/fesd-none.C | 2 +- > gcc/testsuite/g++.dg/debug/dwarf2/fesd-reduced.C | 2 +- > gcc/testsuite/g++.dg/debug/dwarf2/fesd-sys.C | 2 +- > gcc/testsuite/g++.dg/debug/dwarf2/inline-var-1.C | 2 +- > gcc/testsuite/g++.dg/debug/enum-2.C | 1 + > gcc/testsuite/gcc.dg/debug/dwarf2/fesd-any.c | 2 +- > gcc/testsuite/gcc.dg/debug/dwarf2/fesd-baseonly.c | 2 +- > gcc/testsuite/gcc.dg/debug/dwarf2/fesd-none.c | 2 +- > gcc/testsuite/gcc.dg/debug/dwarf2/fesd-reduced.c | 2 +- > gcc/testsuite/gcc.dg/debug/dwarf2/fesd-sys.c | 2 +- > 14 files changed, 18 insertions(+), 16 deletions(-) > > diff --git a/gcc/common.opt b/gcc/common.opt > index d342c4f3749..0e72fd08ec4 100644 > --- a/gcc/common.opt > +++ b/gcc/common.opt > @@ -1379,7 +1379,7 @@ Common Report Var(flag_ipa_sra) Init(0) Optimization > Perform interprocedural reduction of aggregates. > > feliminate-unused-debug-symbols > -Common Report Var(flag_debug_only_used_symbols) > +Common Report Var(flag_debug_only_used_symbols) Init(1) > Perform unused symbol elimination in debug info. > > feliminate-unused-debug-types > diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi > index 5e3e8873d35..06c8c60f19e 100644 > --- a/gcc/doc/invoke.texi > +++ b/gcc/doc/invoke.texi > @@ -388,7 +388,7 @@ Objective-C and Objective-C++ Dialects}. > -fno-eliminate-unused-debug-types @gol > -femit-struct-debug-baseonly -femit-struct-debug-reduced @gol > -femit-struct-debug-detailed@r{[}=3D@var{spec-list}@r{]} @gol > --feliminate-unused-debug-symbols -femit-class-debug-always @gol > +-fno-eliminate-unused-debug-symbols -femit-class-debug-always @gol > -fno-merge-debug-strings -fno-dwarf2-cfi-asm @gol > -fvar-tracking -fvar-tracking-assignments} > > @@ -7827,10 +7827,11 @@ confusion with @option{-gdwarf-@var{level}}. > Instead use an additional @option{-g@var{level}} option to change the > debug level for DWARF. > > -@item -feliminate-unused-debug-symbols > +@item -fno-eliminate-unused-debug-symbols > @opindex feliminate-unused-debug-symbols > -Produce debugging information in stabs format (if that is supported), > -for only symbols that are actually used. > +@opindex fno-eliminate-unused-debug-symbols > +By default, no debug information is produced for symbols that are not ac= tually > +used. Use this option if you want debug information for all symbols. > > @item -femit-class-debug-always > @opindex femit-class-debug-always > diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/fesd-any.C b/gcc/testsuite= /g++.dg/debug/dwarf2/fesd-any.C > index a4a0b50ee50..5868ebc9c85 100644 > --- a/gcc/testsuite/g++.dg/debug/dwarf2/fesd-any.C > +++ b/gcc/testsuite/g++.dg/debug/dwarf2/fesd-any.C > @@ -1,5 +1,5 @@ > // { dg-do compile } > -// { dg-options "-gdwarf-2 -dA -femit-struct-debug-detailed=3Dany" } > +// { dg-options "-gdwarf-2 -dA -femit-struct-debug-detailed=3Dany -fno-e= liminate-unused-debug-symbols" } > // { dg-final { scan-assembler "timespec.*DW_AT_name" } } > // { dg-final { scan-assembler "tv_sec.*DW_AT_name" } } > // { dg-final { scan-assembler "tv_nsec.*DW_AT_name" } } > diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/fesd-baseonly.C b/gcc/test= suite/g++.dg/debug/dwarf2/fesd-baseonly.C > index 4f580ebd361..fe0016a4563 100644 > --- a/gcc/testsuite/g++.dg/debug/dwarf2/fesd-baseonly.C > +++ b/gcc/testsuite/g++.dg/debug/dwarf2/fesd-baseonly.C > @@ -1,5 +1,5 @@ > // { dg-do compile } > -// { dg-options "-gdwarf-2 -dA -femit-struct-debug-baseonly" } > +// { dg-options "-gdwarf-2 -dA -femit-struct-debug-baseonly -fno-elimina= te-unused-debug-symbols" } > // { dg-final { scan-assembler "timespec.*DW_AT_name" } } > // { dg-final { scan-assembler-not "tv_sec.*DW_AT_name" } } > // { dg-final { scan-assembler-not "tv_nsec.*DW_AT_name" } } > diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/fesd-none.C b/gcc/testsuit= e/g++.dg/debug/dwarf2/fesd-none.C > index 0af0a83d85f..c5a33967426 100644 > --- a/gcc/testsuite/g++.dg/debug/dwarf2/fesd-none.C > +++ b/gcc/testsuite/g++.dg/debug/dwarf2/fesd-none.C > @@ -1,5 +1,5 @@ > // { dg-do compile } > -// { dg-options "-gdwarf-2 -dA -femit-struct-debug-detailed=3Dnone" } > +// { dg-options "-gdwarf-2 -dA -femit-struct-debug-detailed=3Dnone -fno-= eliminate-unused-debug-symbols" } > // { dg-final { scan-assembler "timespec.*DW_AT_name" } } > // { dg-final { scan-assembler-not "tv_sec.*DW_AT_name" } } > // { dg-final { scan-assembler-not "tv_nsec.*DW_AT_name" } } > diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/fesd-reduced.C b/gcc/tests= uite/g++.dg/debug/dwarf2/fesd-reduced.C > index a93b90f05ad..ba40f176375 100644 > --- a/gcc/testsuite/g++.dg/debug/dwarf2/fesd-reduced.C > +++ b/gcc/testsuite/g++.dg/debug/dwarf2/fesd-reduced.C > @@ -1,5 +1,5 @@ > // { dg-do compile } > -// { dg-options "-gdwarf-2 -dA -femit-struct-debug-reduced" } > +// { dg-options "-gdwarf-2 -dA -femit-struct-debug-reduced -fno-eliminat= e-unused-debug-symbols" } > // { dg-final { scan-assembler "timespec.*DW_AT_name" } } > // { dg-final { scan-assembler "tv_sec.*DW_AT_name" } } > // { dg-final { scan-assembler "tv_nsec.*DW_AT_name" } } > diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/fesd-sys.C b/gcc/testsuite= /g++.dg/debug/dwarf2/fesd-sys.C > index 95a9a31ff60..86eeb21cf10 100644 > --- a/gcc/testsuite/g++.dg/debug/dwarf2/fesd-sys.C > +++ b/gcc/testsuite/g++.dg/debug/dwarf2/fesd-sys.C > @@ -1,5 +1,5 @@ > // { dg-do compile } > -// { dg-options "-gdwarf-2 -dA -femit-struct-debug-detailed=3Dsys" } > +// { dg-options "-gdwarf-2 -dA -femit-struct-debug-detailed=3Dsys -fno-e= liminate-unused-debug-symbols" } > // { dg-final { scan-assembler "timespec.*DW_AT_name" } } > // { dg-final { scan-assembler "tv_sec.*DW_AT_name" } } > // { dg-final { scan-assembler "tv_nsec.*DW_AT_name" } } > diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/inline-var-1.C b/gcc/tests= uite/g++.dg/debug/dwarf2/inline-var-1.C > index fc3e6fd435f..3b1c913edfc 100644 > --- a/gcc/testsuite/g++.dg/debug/dwarf2/inline-var-1.C > +++ b/gcc/testsuite/g++.dg/debug/dwarf2/inline-var-1.C > @@ -1,5 +1,5 @@ > // { dg-do compile { target c++17 } } > -// { dg-options "-O -g -dA -gno-strict-dwarf" } > +// { dg-options "-O -g -dA -gno-strict-dwarf -fno-eliminate-unused-debug= -symbols" } > // { dg-require-weak "" } > // { dg-final { scan-assembler-times "0x3\[^\n\r]* DW_AT_inline" 6 { xfa= il *-*-aix* } } } > // { dg-final { scan-assembler-times "0x1\[^\n\r]* DW_AT_inline" 2 { xfa= il *-*-aix* } } } > diff --git a/gcc/testsuite/g++.dg/debug/enum-2.C b/gcc/testsuite/g++.dg/d= ebug/enum-2.C > index d5501313d93..554de37c40a 100644 > --- a/gcc/testsuite/g++.dg/debug/enum-2.C > +++ b/gcc/testsuite/g++.dg/debug/enum-2.C > @@ -1,5 +1,6 @@ > /* Verify that used enums are output. */ > /* { dg-do compile } */ > +/* { dg-options "-fno-eliminate-unused-debug-symbols" } */ > /* { dg-final { scan-assembler "JTI_MAX" } } */ > > int var; > diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-any.c b/gcc/testsuite= /gcc.dg/debug/dwarf2/fesd-any.c > index 810788ae6e3..4062268e54c 100644 > --- a/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-any.c > +++ b/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-any.c > @@ -1,5 +1,5 @@ > // { dg-do compile } > -// { dg-options "-gdwarf -dA -femit-struct-debug-detailed=3Dany" } > +// { dg-options "-gdwarf -dA -femit-struct-debug-detailed=3Dany -fno-eli= minate-unused-debug-symbols" } > // { dg-final { scan-assembler "timespec.*DW_AT_name" } } > // { dg-final { scan-assembler "tv_sec.*DW_AT_name" } } > // { dg-final { scan-assembler "tv_nsec.*DW_AT_name" } } > diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-baseonly.c b/gcc/test= suite/gcc.dg/debug/dwarf2/fesd-baseonly.c > index aefcb871509..fffdf04cfb6 100644 > --- a/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-baseonly.c > +++ b/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-baseonly.c > @@ -1,5 +1,5 @@ > // { dg-do compile } > -// { dg-options "-gdwarf -dA -femit-struct-debug-baseonly" } > +// { dg-options "-gdwarf -dA -femit-struct-debug-baseonly -fno-eliminate= -unused-debug-symbols" } > // { dg-final { scan-assembler "timespec.*DW_AT_name" } } > // { dg-final { scan-assembler-not "tv_sec.*DW_AT_name" } } > // { dg-final { scan-assembler-not "tv_nsec.*DW_AT_name" } } > diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-none.c b/gcc/testsuit= e/gcc.dg/debug/dwarf2/fesd-none.c > index 193c05d6155..6fba51287ef 100644 > --- a/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-none.c > +++ b/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-none.c > @@ -1,5 +1,5 @@ > // { dg-do compile } > -// { dg-options "-gdwarf -dA -femit-struct-debug-detailed=3Dnone" } > +// { dg-options "-gdwarf -dA -femit-struct-debug-detailed=3Dnone -fno-el= iminate-unused-debug-symbols" } > // { dg-final { scan-assembler "timespec.*DW_AT_name" } } > // { dg-final { scan-assembler-not "tv_sec.*DW_AT_name" } } > // { dg-final { scan-assembler-not "tv_nsec.*DW_AT_name" } } > diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-reduced.c b/gcc/tests= uite/gcc.dg/debug/dwarf2/fesd-reduced.c > index ebbfc36672b..4209e30e3f9 100644 > --- a/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-reduced.c > +++ b/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-reduced.c > @@ -1,5 +1,5 @@ > // { dg-do compile } > -// { dg-options "-gdwarf -dA -femit-struct-debug-reduced" } > +// { dg-options "-gdwarf -dA -femit-struct-debug-reduced -fno-eliminate-= unused-debug-symbols" } > // { dg-final { scan-assembler "timespec.*DW_AT_name" } } > // { dg-final { scan-assembler "tv_sec.*DW_AT_name" } } > // { dg-final { scan-assembler "tv_nsec.*DW_AT_name" } } > diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-sys.c b/gcc/testsuite= /gcc.dg/debug/dwarf2/fesd-sys.c > index ad0a44a95b3..9c100d7cf91 100644 > --- a/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-sys.c > +++ b/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-sys.c > @@ -1,5 +1,5 @@ > // { dg-do compile } > -// { dg-options "-gdwarf -dA -femit-struct-debug-detailed=3Dsys" } > +// { dg-options "-gdwarf -dA -femit-struct-debug-detailed=3Dsys -fno-eli= minate-unused-debug-symbols" } > // { dg-final { scan-assembler "timespec.*DW_AT_name" } } > // { dg-final { scan-assembler "tv_sec.*DW_AT_name" } } > // { dg-final { scan-assembler "tv_nsec.*DW_AT_name" } } > -- Does this patch look better to you? Thanks, Thomas