Re: [PATCHv2] debug: make -feliminate-unused-debug-symbols the default [PR debug/86964]
On Fri, May 31, 2019, 10:23 Richard Biener wrote: > On Wed, May 29, 2019 at 12:10 PM Thomas De Schampheleire > wrote: > > > > Hi Richard, > > Sorry for the delay - I have bootstrapped/tested the patch and > installed it on trunk. > If there will be no complaints I plan to backport it for GCC 9.2 (you > may need to > remind me in a few weeks). > Thanks. I think I read somewhere that 7.4 is the last 7.x release, is that correct? But what about 8.x? If there will be a new release I think these patches should be backported too, no? After all, it's part of a regression. In what location can you see such info about which branches and releases are expected, latest release in a stream, etc? Best regards Thomas
Re: [PATCHv2] debug: make -feliminate-unused-debug-symbols the default [PR debug/86964]
Hi Richard, El mar., 21 may. 2019 a las 16:57, Thomas De Schampheleire () escribió: > > 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=revision&revision=269925 > > This change requires some updates to test cases, which expected the previous > 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{[}=@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 > actually > +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-o
[PATCHv2] debug: make -feliminate-unused-debug-symbols the default [PR debug/86964]
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=revision&revision=269925 This change requires some updates to test cases, which expected the previous 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{[}=@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 actually +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=any" } +// { dg-options "-gdwarf-2 -dA -femit-struct-debug-detailed=any -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/g++.dg/debug/dwarf2/fesd-baseonly.C b/gcc/testsuite/g++.dg/debug/dwarf2/fesd-baseonly.C index 4f580ebd361..fe0016a4563 100644 --- a/gcc/testsuite/g++.dg/debug/dwarf2/fesd-ba
Re: [PATCH] debug: make -feliminate-unused-debug-symbols the default [PR debug/86964]
On Fri, May 17, 2019, 11:57 Richard Biener wrote: > On Fri, May 17, 2019 at 9:42 AM Thomas De Schampheleire > wrote: > > > > Hi Richard, > > > > El jue., 16 may. 2019 a las 14:41, Richard Biener > > () escribió: > > > > > > On Thu, May 16, 2019 at 11:20 AM Thomas De Schampheleire > > > wrote: > > > > > > > > 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=revision&revision=269925 > > > > > > I have tested this patch and it causes a few FAILs, eventually hinting > > > at implementation issues: > > > > > > === g++ tests === > > > > > > > > > Running target unix > > > FAIL: g++.dg/debug/enum-2.C -gstabs -O2 scan-assembler JTI_MAX > > > FAIL: g++.dg/debug/enum-2.C -gstabs -O3 scan-assembler JTI_MAX > > > FAIL: g++.dg/debug/enum-2.C -gstabs+ -O2 scan-assembler JTI_MAX > > > FAIL: g++.dg/debug/enum-2.C -gstabs+ -O3 scan-assembler JTI_MAX > > > FAIL: g++.dg/debug/enum-2.C -gstabs+3 -O2 scan-assembler JTI_MAX > > > FAIL: g++.dg/debug/enum-2.C -gstabs+3 -O3 scan-assembler JTI_MAX > > > FAIL: g++.dg/debug/enum-2.C -gstabs3 -O2 scan-assembler JTI_MAX > > > FAIL: g++.dg/debug/enum-2.C -gstabs3 -O3 scan-assembler JTI_MAX > > > > > > maybe expected (stabs) > > > > > > FAIL: g++.dg/debug/dwarf2/fesd-any.C -std=gnu++14 scan-assembler > field_head_or > > > dy_defn_fld_head.*DW_AT_name > > > FAIL: g++.dg/debug/dwarf2/fesd-any.C -std=gnu++14 scan-assembler > field_head_or > > > dy_defn_ptr_head.*DW_AT_name > > > FAIL: g++.dg/debug/dwarf2/fesd-any.C -std=gnu++14 scan-assembler > field_head_or > > > dy_defn_ref_head.*DW_AT_name > > > FAIL: g++.dg/debug/dwarf2/fesd-any.C -std=gnu++14 scan-assembler > field_head_or > > > dy_defn_var_head_fld.*DW_AT_name > > > ... more ... > > > FAIL: g++.dg/debug/dwarf2/fesd-baseonly.C -std=gnu++14 > scan-assembler gstruct_ > > > head_ordy_defn_var_head.*DW_AT_name > > > FAIL: g++.dg/debug/dwarf2/fesd-baseonly.C -std=gnu++14 > scan-assembler gstruct_ > > > head_tmpl_defn_var_head.*DW_AT_name > > > FAIL: g++.dg/debug/dwarf2/fesd-baseonly.C -std=gnu++17 > scan-assembler gstruct_ > > > head_ordy_defn_var_head.*DW_AT_name > > > FAIL: g++.dg/debug/dwarf2/fesd-baseonly.C -std=gnu++17 > scan-assembler gstruct_ > > > head_tmpl_defn_var_head.*DW_AT_name > > > FAIL: g++.dg/debug/dwarf2/fesd-baseonly.C -std=gnu++98 > scan-assembler gstruct_ > > > head_ordy_defn_var_head.*DW_AT_name > > > FAIL: g++.dg/debug/dwarf2/fesd-baseonly.C -std=gnu++98 > > > scan-assembler gstruct_head_tmpl_defn_var_head.*DW_AT_name > > > FAIL: g++.dg/debug/dwarf2/fesd-none.C -std=gnu++14 scan-assembler > > > gstruct_head_ordy_defn_var_head.*DW_AT_name > > > FAIL: g++.dg/debug/dwarf2/fesd-none.C -std=gnu++14 scan-assembler > > > gstruct_head_tmpl_defn_var_head.*DW_AT_name > > > ... more fesd-* testcases FAIL ... > > > FAIL: g++.dg/debug/dwarf2/inline-var-1.C -std=gnu++17 > > > scan-assembler-times DW_AT_[^\\n\\r]*linkage_name 7 > > > FAIL: g++.dg/debug/dwarf2/inline-var-1.C -std=gnu++17 > > > scan-assembler-times DW_AT_specification 6 > > > FAIL: g++.dg/debug/dwarf2/inline-var-1.C -std=gnu++17 > > > scan-assembler-times 0x3[^\\n\\r]* DW_AT_inline 6 > > > > > > C variants of the fesd-* testcases also FAIL. Those testcases are > > > huge, a quick look didn't > > > reveal whether those are expected FAILs or not. > > > > > > I tried reproducing these failures, using 'make bootstrap && make > > check', but I see many many test failures: > > > > === gcc Summary === > > > > # of expected passes144268 > > # of unexpected failures113 > > # of unexpected successes28 > > # of expected failures593 > > # of unresolved testcases2 > > # of unsupported tests2279 > > > > === g++ Summary === > > > > # of expected passes134673 > > # of unexpected failures137 > > # of expected failures527 > > # of unsupported tests5944 > > > > /home/tdescham/repo/contrib/gc
Re: [PATCH] debug: make -feliminate-unused-debug-symbols the default [PR debug/86964]
Hi Richard, El jue., 16 may. 2019 a las 14:41, Richard Biener () escribió: > > On Thu, May 16, 2019 at 11:20 AM Thomas De Schampheleire > wrote: > > > > 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=revision&revision=269925 > > I have tested this patch and it causes a few FAILs, eventually hinting > at implementation issues: > > === g++ tests === > > > Running target unix > FAIL: g++.dg/debug/enum-2.C -gstabs -O2 scan-assembler JTI_MAX > FAIL: g++.dg/debug/enum-2.C -gstabs -O3 scan-assembler JTI_MAX > FAIL: g++.dg/debug/enum-2.C -gstabs+ -O2 scan-assembler JTI_MAX > FAIL: g++.dg/debug/enum-2.C -gstabs+ -O3 scan-assembler JTI_MAX > FAIL: g++.dg/debug/enum-2.C -gstabs+3 -O2 scan-assembler JTI_MAX > FAIL: g++.dg/debug/enum-2.C -gstabs+3 -O3 scan-assembler JTI_MAX > FAIL: g++.dg/debug/enum-2.C -gstabs3 -O2 scan-assembler JTI_MAX > FAIL: g++.dg/debug/enum-2.C -gstabs3 -O3 scan-assembler JTI_MAX > > maybe expected (stabs) > > FAIL: g++.dg/debug/dwarf2/fesd-any.C -std=gnu++14 scan-assembler > field_head_or > dy_defn_fld_head.*DW_AT_name > FAIL: g++.dg/debug/dwarf2/fesd-any.C -std=gnu++14 scan-assembler > field_head_or > dy_defn_ptr_head.*DW_AT_name > FAIL: g++.dg/debug/dwarf2/fesd-any.C -std=gnu++14 scan-assembler > field_head_or > dy_defn_ref_head.*DW_AT_name > FAIL: g++.dg/debug/dwarf2/fesd-any.C -std=gnu++14 scan-assembler > field_head_or > dy_defn_var_head_fld.*DW_AT_name > ... more ... > FAIL: g++.dg/debug/dwarf2/fesd-baseonly.C -std=gnu++14 scan-assembler > gstruct_ > head_ordy_defn_var_head.*DW_AT_name > FAIL: g++.dg/debug/dwarf2/fesd-baseonly.C -std=gnu++14 scan-assembler > gstruct_ > head_tmpl_defn_var_head.*DW_AT_name > FAIL: g++.dg/debug/dwarf2/fesd-baseonly.C -std=gnu++17 scan-assembler > gstruct_ > head_ordy_defn_var_head.*DW_AT_name > FAIL: g++.dg/debug/dwarf2/fesd-baseonly.C -std=gnu++17 scan-assembler > gstruct_ > head_tmpl_defn_var_head.*DW_AT_name > FAIL: g++.dg/debug/dwarf2/fesd-baseonly.C -std=gnu++98 scan-assembler > gstruct_ > head_ordy_defn_var_head.*DW_AT_name > FAIL: g++.dg/debug/dwarf2/fesd-baseonly.C -std=gnu++98 > scan-assembler gstruct_head_tmpl_defn_var_head.*DW_AT_name > FAIL: g++.dg/debug/dwarf2/fesd-none.C -std=gnu++14 scan-assembler > gstruct_head_ordy_defn_var_head.*DW_AT_name > FAIL: g++.dg/debug/dwarf2/fesd-none.C -std=gnu++14 scan-assembler > gstruct_head_tmpl_defn_var_head.*DW_AT_name > ... more fesd-* testcases FAIL ... > FAIL: g++.dg/debug/dwarf2/inline-var-1.C -std=gnu++17 > scan-assembler-times DW_AT_[^\\n\\r]*linkage_name 7 > FAIL: g++.dg/debug/dwarf2/inline-var-1.C -std=gnu++17 > scan-assembler-times DW_AT_specification 6 > FAIL: g++.dg/debug/dwarf2/inline-var-1.C -std=gnu++17 > scan-assembler-times 0x3[^\\n\\r]* DW_AT_inline 6 > > C variants of the fesd-* testcases also FAIL. Those testcases are > huge, a quick look didn't > reveal whether those are expected FAILs or not. I tried reproducing these failures, using 'make bootstrap && make check', but I see many many test failures: === gcc Summary === # of expected passes144268 # of unexpected failures113 # of unexpected successes28 # of expected failures593 # of unresolved testcases2 # of unsupported tests2279 === g++ Summary === # of expected passes134673 # of unexpected failures137 # of expected failures527 # of unsupported tests5944 /home/tdescham/repo/contrib/gcc/host-x86_64-pc-linux-gnu/gcc/xgcc version 10.0.0 20190516 (experimental) (GCC) Is it expected that 'master' (gcc 10) has such failures? Should I test on another branch, if so which? And is there a way to run only specific tests, e.g. the ones that you pointed out? Thanks, Thomas
[PATCH] debug: make -feliminate-unused-debug-symbols the default [PR debug/86964]
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=revision&revision=269925 gcc/ChangeLog: 2019-05-16 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/common.opt | 2 +- gcc/doc/invoke.texi | 9 + 2 files changed, 6 insertions(+), 5 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{[}=@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 actually +used. Use this option if you want debug information for all symbols. @item -femit-class-debug-always @opindex femit-class-debug-always -- 2.21.0