Message ID | 20210212153953.4582-8-andrew.cooper3@citrix.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | tools: Support to use abi-dumper on libraries | expand |
On 12.02.2021 16:39, Andrew Cooper wrote: > The recommended optimisation level for debugging is -Og, and is what tools > such as gdb prefer. In practice, it equates to -01 with a few specific > optimisations turned off. > > abi-dumper in particular wants the libraries it inspects in this form. > > Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com> Reviewed-by: Jan Beulich <jbeulich@suse.com> > --- a/tools/Rules.mk > +++ b/tools/Rules.mk > @@ -106,8 +106,9 @@ endif > CFLAGS_libxenlight += $(CFLAGS_libxenctrl) > > ifeq ($(debug),y) > -# Disable optimizations > -CFLAGS += -O0 -fno-omit-frame-pointer > +# Use -Og if available, -O0 otherwise > +dbg_opt_level := $(call cc-option,$(CC),-Og,-O0) > +CFLAGS += $(dbg_opt_level) -fno-omit-frame-pointer I wonder if we shouldn't do something similar for the hypervisor, where we use -O1 for debug builds right now. At least when DEBUG_INFO is also enabled, -Og may be better. Jan
On 12/02/2021 16:04, Jan Beulich wrote: > On 12.02.2021 16:39, Andrew Cooper wrote: >> The recommended optimisation level for debugging is -Og, and is what tools >> such as gdb prefer. In practice, it equates to -01 with a few specific >> optimisations turned off. >> >> abi-dumper in particular wants the libraries it inspects in this form. >> >> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com> > Reviewed-by: Jan Beulich <jbeulich@suse.com> Thanks, > >> --- a/tools/Rules.mk >> +++ b/tools/Rules.mk >> @@ -106,8 +106,9 @@ endif >> CFLAGS_libxenlight += $(CFLAGS_libxenctrl) >> >> ifeq ($(debug),y) >> -# Disable optimizations >> -CFLAGS += -O0 -fno-omit-frame-pointer >> +# Use -Og if available, -O0 otherwise >> +dbg_opt_level := $(call cc-option,$(CC),-Og,-O0) >> +CFLAGS += $(dbg_opt_level) -fno-omit-frame-pointer > I wonder if we shouldn't do something similar for the hypervisor, > where we use -O1 for debug builds right now. At least when > DEBUG_INFO is also enabled, -Og may be better. I also made that work... its rather more invasive in terms of changes - all for "maybe uninitialised" warnings. $ git diff e2bab84984^ --stat xen/Makefile | 3 ++- xen/arch/arm/domain_build.c | 2 +- xen/arch/x86/irq.c | 2 +- xen/arch/x86/mm/shadow/common.c | 2 +- xen/arch/x86/pv/shim.c | 6 +++--- xen/arch/x86/sysctl.c | 4 ++-- xen/common/efi/boot.c | 2 +- 7 files changed, 11 insertions(+), 10 deletions(-) is what is required to make Gitlab happy. I was planning to defer it to 4.16 at this point. ~Andrew
On 12.02.2021 17:09, Andrew Cooper wrote: > On 12/02/2021 16:04, Jan Beulich wrote: >> On 12.02.2021 16:39, Andrew Cooper wrote: >>> --- a/tools/Rules.mk >>> +++ b/tools/Rules.mk >>> @@ -106,8 +106,9 @@ endif >>> CFLAGS_libxenlight += $(CFLAGS_libxenctrl) >>> >>> ifeq ($(debug),y) >>> -# Disable optimizations >>> -CFLAGS += -O0 -fno-omit-frame-pointer >>> +# Use -Og if available, -O0 otherwise >>> +dbg_opt_level := $(call cc-option,$(CC),-Og,-O0) >>> +CFLAGS += $(dbg_opt_level) -fno-omit-frame-pointer >> I wonder if we shouldn't do something similar for the hypervisor, >> where we use -O1 for debug builds right now. At least when >> DEBUG_INFO is also enabled, -Og may be better. > > I also made that work... its rather more invasive in terms of changes - > all for "maybe uninitialised" warnings. > > $ git diff e2bab84984^ --stat > xen/Makefile | 3 ++- > xen/arch/arm/domain_build.c | 2 +- > xen/arch/x86/irq.c | 2 +- > xen/arch/x86/mm/shadow/common.c | 2 +- > xen/arch/x86/pv/shim.c | 6 +++--- > xen/arch/x86/sysctl.c | 4 ++-- > xen/common/efi/boot.c | 2 +- > 7 files changed, 11 insertions(+), 10 deletions(-) > > is what is required to make Gitlab happy. Oh, good to know. Thanks! > I was planning to defer it to 4.16 at this point. Of course. Jan
Andrew Cooper writes ("[PATCH 07/10] tools: Use -Og for debug builds when available"): > The recommended optimisation level for debugging is -Og, and is what tools > such as gdb prefer. In practice, it equates to -01 with a few specific > optimisations turned off. > > abi-dumper in particular wants the libraries it inspects in this form. Release-Acked-by: Ian Jackson <iwj@xenproject.org> I would prefer to have this in 4.15 now than to backport it later... Ian.
Jan Beulich writes ("Re: [PATCH 07/10] tools: Use -Og for debug builds when available"): > On 12.02.2021 16:39, Andrew Cooper wrote: > > The recommended optimisation level for debugging is -Og, and is what tools > > such as gdb prefer. In practice, it equates to -01 with a few specific > > optimisations turned off. > > > > abi-dumper in particular wants the libraries it inspects in this form. > > > > Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com> > > Reviewed-by: Jan Beulich <jbeulich@suse.com> Acked-by: Ian Jackson <iwj@xenproject.org>
diff --git a/tools/Rules.mk b/tools/Rules.mk index f61da81f4a..2907ed2d39 100644 --- a/tools/Rules.mk +++ b/tools/Rules.mk @@ -106,8 +106,9 @@ endif CFLAGS_libxenlight += $(CFLAGS_libxenctrl) ifeq ($(debug),y) -# Disable optimizations -CFLAGS += -O0 -fno-omit-frame-pointer +# Use -Og if available, -O0 otherwise +dbg_opt_level := $(call cc-option,$(CC),-Og,-O0) +CFLAGS += $(dbg_opt_level) -fno-omit-frame-pointer # But allow an override to -O0 in case Python enforces -D_FORTIFY_SOURCE=<n>. PY_CFLAGS += $(PY_NOOPT_CFLAGS) else
The recommended optimisation level for debugging is -Og, and is what tools such as gdb prefer. In practice, it equates to -01 with a few specific optimisations turned off. abi-dumper in particular wants the libraries it inspects in this form. Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com> --- CC: Ian Jackson <iwj@xenproject.org> CC: Wei Liu <wl@xen.org> CC: Juergen Gross <jgross@suse.com> --- tools/Rules.mk | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)