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(-)
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
--
2.11.0
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
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>
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.
© 2016 - 2026 Red Hat, Inc.