From: Olaf Hering <olaf@aepfle.de>
To: xen-devel@lists.xen.org
Cc: Wei Liu <wei.liu2@citrix.com>, Olaf Hering <olaf@aepfle.de>,
Keir Fraser <keir@xen.org>,
David Scott <dave.scott@eu.citrix.com>,
Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
Tim Deegan <tim@xen.org>, Ian Jackson <ian.jackson@eu.citrix.com>,
Jan Beulich <jbeulich@suse.com>,
Samuel Thibault <samuel.thibault@ens-lyon.org>,
Ian Campbell <ian.campbell@citrix.com>
Subject: [PATCH 28/28 v2] Separate runtime debug output from debug symbols
Date: Fri, 26 Sep 2014 13:40:31 +0200 [thread overview]
Message-ID: <1411731631-26415-1-git-send-email-olaf@aepfle.de> (raw)
In-Reply-To: <1411658423-18877-29-git-send-email-olaf@aepfle.de>
With this change debug and debug_symbols is used consistently.
With 'make debug=yn debug_symbols=yn' my rebuild time and diskspace
usage goes down:
105275K clean xen.git checkout.
y 1247041K build time: 5:57
n 812112K build time: 5:34
Add make variable debug_(stubdom|tools|xen)= to control debug= for
runtime debug. Add make variable debuginfo_(stubdom|tools|xen)= to
control debug_symbols= for gcc -g. Add configure --enable-debuginfo
to set debuginf_(stubdom|tools) once at configure time. The existing
--enable-debug will set debug_(stubdom|tools) once at configure time.
Currently two variables control runtime and compiletime debug info:
debug= for tools,stubdom selects either -O1 or -O2 builds, and passes
the flag down to qemu-upstream to enable additional runtime debugging.
debug= for xen enables some asserts and extra checks in the code.
debug_symbols= is used in few places to pass -g to gcc. Other places
still pass -g unconditionally to gcc.
Wrap all -g assigments to CFLAGS into debug_symbols==y.
Pass --enable-debug-info --disable-strip to qemu-upstream build.
No change in behaviour is expected by that patch for tools and xen.
For stubdom CFLAGS change from -O1 to O2 with debug=n.
It is still possible to use 'make debug=N debug_symbols=N'. But with
this patch it is now possible to do 'configure --disable-debug
--enable-debuginfo && make rpmbuild debug_xen=n'.
Please rerun autogen.sh after applying this patch.
Signed-off-by: Olaf Hering <olaf@aepfle.de>
Cc: David Scott <dave.scott@eu.citrix.com>
Cc: Ian Campbell <ian.campbell@citrix.com>
Cc: Ian Jackson <ian.jackson@eu.citrix.com>
Cc: Jan Beulich <jbeulich@suse.com>
Cc: Keir Fraser <keir@xen.org>
Cc: Samuel Thibault <samuel.thibault@ens-lyon.org>
Cc: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Cc: Tim Deegan <tim@xen.org>
Cc: Wei Liu <wei.liu2@citrix.com>
---
Config.mk | 3 +++
config/Stubdom.mk.in | 8 +++++---
config/Tools.mk.in | 8 +++++---
stubdom/Makefile | 3 +--
stubdom/configure.ac | 3 ++-
tools/Makefile | 7 +++++++
tools/configure.ac | 3 ++-
tools/ocaml/common.make | 5 ++++-
tools/tests/vhpet/Makefile | 2 +-
tools/tests/x86_emulator/Makefile | 4 ++--
xen/Rules.mk | 9 ++++++++-
xen/arch/x86/Makefile | 2 +-
12 files changed, 41 insertions(+), 16 deletions(-)
diff --git a/Config.mk b/Config.mk
index dff71b3..8a65adf 100644
--- a/Config.mk
+++ b/Config.mk
@@ -39,6 +39,9 @@ SHELL ?= /bin/sh
HOSTCC = gcc
HOSTCFLAGS = -Wall -Werror -Wstrict-prototypes -O2 -fomit-frame-pointer
HOSTCFLAGS += -fno-strict-aliasing
+ifeq ($(debug_symbols),y)
+HOSTCFLAGS += -g
+endif
DISTDIR ?= $(XEN_ROOT)/dist
DESTDIR ?= /
diff --git a/config/Stubdom.mk.in b/config/Stubdom.mk.in
index 5990fc4..0576a2c 100644
--- a/config/Stubdom.mk.in
+++ b/config/Stubdom.mk.in
@@ -1,12 +1,14 @@
-include $(XEN_ROOT)/config/Paths.mk
+debug_stubdom := @debug@
+debuginfo_stubdom := @debuginfo@
+debug := $(debug_stubdom)
+debug_symbols := $(debuginfo_stubdom)
+
# Path Programs
CMAKE := @CMAKE@
FETCHER := @FETCHER@
-# A debug build of stubdom? //FIXME: Someone make this do something
-debug := @debug@
-
STUBDOM_TARGETS := @STUBDOM_TARGETS@
STUBDOM_BUILD := @STUBDOM_BUILD@
STUBDOM_INSTALL := @STUBDOM_INSTALL@
diff --git a/config/Tools.mk.in b/config/Tools.mk.in
index 5239f4e..ab7598c 100644
--- a/config/Tools.mk.in
+++ b/config/Tools.mk.in
@@ -1,13 +1,15 @@
-include $(XEN_ROOT)/config/Paths.mk
+debug_tools := @debug@
+debuginfo_tools := @debuginfo@
+debug := $(debug_tools)
+debug_symbols := $(debuginfo_tools)
+
CONFIG_RUMP := @CONFIG_RUMP@
ifeq ($(CONFIG_RUMP),y)
XEN_OS := NetBSDRump
endif
-# A debug build of tools?
-debug := @debug@
-
# Tools path
BISON := @BISON@
FLEX := @FLEX@
diff --git a/stubdom/Makefile b/stubdom/Makefile
index 9dac103..60dc0b8 100644
--- a/stubdom/Makefile
+++ b/stubdom/Makefile
@@ -4,9 +4,8 @@ MINI_OS = $(XEN_ROOT)/extras/mini-os
export XEN_OS=MiniOS
export stubdom=y
-export debug=y
-include $(XEN_ROOT)/Config.mk
-include $(XEN_ROOT)/config/Stubdom.mk
+include $(XEN_ROOT)/Config.mk
GNU_TARGET_ARCH:=$(XEN_TARGET_ARCH)
ifeq ($(XEN_TARGET_ARCH),x86_32)
diff --git a/stubdom/configure.ac b/stubdom/configure.ac
index 6468203..f2c9dfd 100644
--- a/stubdom/configure.ac
+++ b/stubdom/configure.ac
@@ -45,7 +45,8 @@ AS_IF([test "x$ioemu$qemu_traditional" = "xyn"], [
AC_MSG_ERROR(IOEMU stubdomain requires qemu-traditional)
])
-AX_ARG_DEFAULT_ENABLE([debug], [Disable debug build of stubdom])
+AX_ARG_DEFAULT_ENABLE([debug], [Disable runtime debug of stubdom])
+AX_ARG_DEFAULT_ENABLE([debuginfo], [Disable creation of debuginfo symbols during build of stubdom])
AX_ARG_DEFAULT_ENABLE([extfiles], [Use xen extfiles repository for libraries])
AC_ARG_VAR([CMAKE], [Path to the cmake program])
diff --git a/tools/Makefile b/tools/Makefile
index 4afadfd..9ae1ab1 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -189,6 +189,12 @@ else
QEMU_XEN_ENABLE_DEBUG :=
endif
+ifeq ($(debug_symbols),y)
+QEMU_XEN_ENABLE_DEBUG_SYMBOLS := --enable-debug-info --disable-strip
+else
+QEMU_XEN_ENABLE_DEBUG_SYMBOLS := --disable-debug-info
+endif
+
subdir-all-qemu-xen-dir: qemu-xen-dir-find
if test -d $(QEMU_UPSTREAM_LOC) ; then \
source=$(QEMU_UPSTREAM_LOC); \
@@ -198,6 +204,7 @@ subdir-all-qemu-xen-dir: qemu-xen-dir-find
cd qemu-xen-dir; \
$$source/configure --enable-xen --target-list=i386-softmmu \
$(QEMU_XEN_ENABLE_DEBUG) \
+ $(QEMU_XEN_ENABLE_DEBUG_SYMBOLS) \
--prefix=$(LIBEXEC) \
--libdir=$(LIBEXEC_LIB) \
--includedir=$(LIBEXEC_INC) \
diff --git a/tools/configure.ac b/tools/configure.ac
index 4595976..f896bbb 100644
--- a/tools/configure.ac
+++ b/tools/configure.ac
@@ -88,7 +88,8 @@ AX_ARG_DEFAULT_ENABLE([ocamltools], [Disable Ocaml tools])
AX_ARG_DEFAULT_ENABLE([xsmpolicy], [Disable XSM policy compilation])
AX_ARG_DEFAULT_DISABLE([ovmf], [Enable OVMF])
AX_ARG_DEFAULT_ENABLE([seabios], [Disable SeaBIOS])
-AX_ARG_DEFAULT_ENABLE([debug], [Disable debug build of tools])
+AX_ARG_DEFAULT_ENABLE([debug], [Disable runtime debug of tools])
+AX_ARG_DEFAULT_ENABLE([debuginfo], [Disable creation of debuginfo symbols during build of tools])
AX_ARG_DEFAULT_DISABLE([blktap1], [Enable blktap1 tools])
AC_ARG_WITH([linux-backend-modules],
diff --git a/tools/ocaml/common.make b/tools/ocaml/common.make
index d5478f6..33b3142 100644
--- a/tools/ocaml/common.make
+++ b/tools/ocaml/common.make
@@ -13,7 +13,10 @@ CFLAGS += -fPIC -Werror -I$(shell ocamlc -where)
OCAMLOPTFLAG_G := $(shell $(OCAMLOPT) -h 2>&1 | sed -n 's/^ *\(-g\) .*/\1/p')
OCAMLOPTFLAGS = $(OCAMLOPTFLAG_G) -ccopt "$(LDFLAGS)" -dtypes $(OCAMLINCLUDE) -cc $(CC) -w F -warn-error F
-OCAMLCFLAGS += -g $(OCAMLINCLUDE) -w F -warn-error F
+ifeq ($(debug_symbols),y)
+OCAMLCFLAGS += -g
+endif
+OCAMLCFLAGS += $(OCAMLINCLUDE) -w F -warn-error F
VERSION := 4.1
diff --git a/tools/tests/vhpet/Makefile b/tools/tests/vhpet/Makefile
index 763409d..e4f5c14 100644
--- a/tools/tests/vhpet/Makefile
+++ b/tools/tests/vhpet/Makefile
@@ -20,7 +20,7 @@ run: $(TARGET)
./$(TARGET) 200 1 0 20 0x0103 > $(TARGET).200.1.0.20.0x0103.out
$(TARGET): hpet.c main.c hpet.h emul.h Makefile
- $(HOSTCC) -g -o $@ hpet.c main.c
+ $(HOSTCC) $(HOSTCFLAGS) -o $@ hpet.c main.c
.PHONY: clean
clean:
diff --git a/tools/tests/x86_emulator/Makefile b/tools/tests/x86_emulator/Makefile
index 73517b7..edfd832 100644
--- a/tools/tests/x86_emulator/Makefile
+++ b/tools/tests/x86_emulator/Makefile
@@ -43,7 +43,7 @@ x86_emulate/x86_emulate.c x86_emulate/x86_emulate.h:
HOSTCFLAGS += $(CFLAGS_xeninclude)
x86_emulate.o: x86_emulate.c x86_emulate/x86_emulate.c x86_emulate/x86_emulate.h
- $(HOSTCC) $(HOSTCFLAGS) -c -g -o $@ $<
+ $(HOSTCC) $(HOSTCFLAGS) -c -o $@ $<
test_x86_emulator.o: test_x86_emulator.c blowfish.h x86_emulate/x86_emulate.h
- $(HOSTCC) $(HOSTCFLAGS) -c -g -o $@ $<
+ $(HOSTCC) $(HOSTCFLAGS) -c -o $@ $<
diff --git a/xen/Rules.mk b/xen/Rules.mk
index e2f9e36..442ffaa 100644
--- a/xen/Rules.mk
+++ b/xen/Rules.mk
@@ -10,6 +10,10 @@ lock_profile ?= n
crash_debug ?= n
frame_pointer ?= n
lto ?= n
+debug_xen ?= y
+debuginfo_xen ?= y
+debug := $(debug_xen)
+debug_symbols := $(debuginfo_xen)
include $(XEN_ROOT)/Config.mk
@@ -43,7 +47,10 @@ ALL_OBJS-$(x86) += $(BASEDIR)/crypto/built_in.o
CFLAGS += -fno-builtin -fno-common
CFLAGS += -Werror -Wredundant-decls -Wno-pointer-arith
-CFLAGS += -pipe -g -D__XEN__ -include $(BASEDIR)/include/xen/config.h
+ifeq ($(debug_symbols),y)
+CFLAGS += -g
+endif
+CFLAGS += -pipe -D__XEN__ -include $(BASEDIR)/include/xen/config.h
CFLAGS += -nostdinc
CFLAGS-$(XSM_ENABLE) += -DXSM_ENABLE
diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index c1e244d..b994bfa 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -163,7 +163,7 @@ boot/mkelf32: boot/mkelf32.c
$(HOSTCC) $(HOSTCFLAGS) -o $@ $<
efi/mkreloc: efi/mkreloc.c
- $(HOSTCC) $(HOSTCFLAGS) -g -o $@ $<
+ $(HOSTCC) $(HOSTCFLAGS) -o $@ $<
.PHONY: clean
clean::
next prev parent reply other threads:[~2014-09-26 11:40 UTC|newest]
Thread overview: 78+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-25 15:19 [PATCH 00/28 v4] tool changes to honor configure --prefix=DIR Olaf Hering
2014-09-25 15:19 ` [PATCH 01/28] Neutralize make uninstall Olaf Hering
2014-09-29 13:48 ` Ian Campbell
2014-09-30 12:07 ` Olaf Hering
2014-09-30 12:26 ` Ian Campbell
2014-09-29 13:49 ` Ian Campbell
2014-09-30 12:09 ` Olaf Hering
2014-09-30 12:26 ` Ian Campbell
2014-10-01 5:52 ` Olaf Hering
2014-10-01 10:44 ` Ian Campbell
2014-09-25 15:19 ` [PATCH 02/28] tools/hotplug: fix race during xen.conf creation Olaf Hering
2014-09-30 15:46 ` Ian Campbell
2014-09-25 15:19 ` [PATCH 03/28] tools/python: use also LDFLAGS for build Olaf Hering
2014-09-30 15:46 ` Ian Campbell
2014-09-25 15:19 ` [PATCH 04/28] Add configure --with-initddir=DIR Olaf Hering
2014-09-30 15:47 ` Ian Campbell
2014-09-25 15:20 ` [PATCH 05/28] tools/hotplug: use XEN_SCRIPT_DIR instead of hardcoded path Olaf Hering
2014-09-25 15:20 ` [PATCH 06/28] tools/configure.ac: sort AC_CONFIG_FILES Olaf Hering
2014-09-25 15:20 ` [PATCH 07/28] tools: use INITD_DIR instead of CONFIG_DIR/init.d|rc.d Olaf Hering
2014-09-30 16:06 ` Roger Pau Monné
2014-09-25 15:20 ` [PATCH 08/28] tools/hotplug: substitute XEN_SCRIPT_DIR on FreeBSD Olaf Hering
2014-09-30 16:06 ` Roger Pau Monné
2014-09-25 15:20 ` [PATCH 09/28] remove duplicate variables from config Olaf Hering
2014-09-30 16:11 ` Roger Pau Monné
2014-09-30 16:30 ` Olaf Hering
2014-09-25 15:20 ` [PATCH 10/28] Substitue configure variables in Paths.mk.in Olaf Hering
2014-09-30 15:48 ` Ian Campbell
2014-09-25 15:20 ` [PATCH 11/28] tools: substitute bindir instead of BINDIR Olaf Hering
2014-09-30 15:51 ` Ian Campbell
2014-09-30 15:55 ` Olaf Hering
2014-09-30 16:04 ` Ian Campbell
2014-09-25 15:20 ` [PATCH 12/28] Use configure --mandir=DIR to set MANDIR Olaf Hering
2014-09-30 15:51 ` Ian Campbell
2014-09-25 15:20 ` [PATCH 13/28] Use configure --docdir=DIR to set DOCDIR Olaf Hering
2014-09-30 15:52 ` Ian Campbell
2014-09-25 15:20 ` [PATCH 14/28] Use configure --includedir=DIR to set INCLUDEDIR Olaf Hering
2014-09-30 15:52 ` Ian Campbell
2014-09-25 15:20 ` [PATCH 15/28] Use configure --libexecdir=BASEDIR to set LIBEXEC Olaf Hering
2014-09-30 15:55 ` Ian Campbell
2014-09-30 15:58 ` Olaf Hering
2014-09-30 16:02 ` Ian Campbell
2014-09-25 15:20 ` [PATCH 16/28] Use configure --prefix=DIR to set PREFIX Olaf Hering
2014-09-25 15:20 ` [PATCH 17/28] Use configure --localstatedir=BASEDIR to set path to /var Olaf Hering
2014-09-30 15:55 ` Ian Campbell
2014-09-25 15:20 ` [PATCH 18/28] Add configure --enable-rpath Olaf Hering
2014-09-30 15:56 ` Ian Campbell
2014-09-25 15:20 ` [PATCH 19/28] Add configure --with-linux-backend-modules="mod1 mod2" Olaf Hering
2014-09-30 15:57 ` Ian Campbell
2014-09-25 15:20 ` [PATCH 20/28] Put bash_completion.d below --sysconfdir=DIR Olaf Hering
2014-09-30 15:58 ` Ian Campbell
2014-09-30 16:01 ` Olaf Hering
2014-09-25 15:20 ` [PATCH 21/28] Add configure --with-sysconfig-leaf-dir=SUBDIR to set CONFIG_LEAF_DIR Olaf Hering
2014-09-30 15:59 ` Ian Campbell
2014-09-25 15:20 ` [PATCH 22/28] Make XENFIRMWAREDIR a subdir of libexecdir Olaf Hering
2014-09-25 15:20 ` [PATCH 23/28] tools: remove private copies of includedir and libdir from libxenstat Olaf Hering
2014-09-25 15:20 ` [PATCH 24/28] Use Paths.mk for docs, stubdom and tools build Olaf Hering
2014-09-30 16:00 ` Ian Campbell
2014-09-25 15:20 ` [PATCH 25/28] tools: use XEN_LIB_STORED instead of /var/lib/xenstored Olaf Hering
2014-09-25 15:20 ` [PATCH 26/28] Use XEN_RUN_DIR instead of /var/run/xen Olaf Hering
2014-09-30 16:00 ` Ian Campbell
2014-09-25 15:20 ` [PATCH 27/28] move vtpmmgr helpers from tools to stubdom Olaf Hering
2014-09-30 16:02 ` Ian Campbell
2014-09-25 15:20 ` [PATCH 28/28] Separate runtime debug output from debug symbols Olaf Hering
2014-09-25 15:41 ` Andrew Cooper
2014-09-25 15:57 ` Jan Beulich
2014-09-26 6:07 ` Olaf Hering
2014-09-25 16:01 ` Jan Beulich
2014-09-26 8:17 ` Olaf Hering
2014-09-26 8:54 ` Olaf Hering
2014-09-26 9:06 ` Jan Beulich
2014-09-26 9:22 ` Olaf Hering
2014-09-26 9:37 ` Jan Beulich
2014-09-26 8:56 ` Jan Beulich
2014-09-26 11:40 ` Olaf Hering [this message]
2014-09-26 11:56 ` [PATCH 28/28 v2] " Jan Beulich
2014-09-26 14:02 ` Olaf Hering
2014-09-26 14:43 ` Jan Beulich
2014-09-26 19:12 ` Konrad Rzeszutek Wilk
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1411731631-26415-1-git-send-email-olaf@aepfle.de \
--to=olaf@aepfle.de \
--cc=dave.scott@eu.citrix.com \
--cc=ian.campbell@citrix.com \
--cc=ian.jackson@eu.citrix.com \
--cc=jbeulich@suse.com \
--cc=keir@xen.org \
--cc=samuel.thibault@ens-lyon.org \
--cc=stefano.stabellini@eu.citrix.com \
--cc=tim@xen.org \
--cc=wei.liu2@citrix.com \
--cc=xen-devel@lists.xen.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).