From patchwork Tue Nov 1 19:22:10 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wei Liu X-Patchwork-Id: 9407867 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id AAC7160234 for ; Tue, 1 Nov 2016 19:25:00 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 99FF129A7D for ; Tue, 1 Nov 2016 19:25:00 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 8A02A29A87; Tue, 1 Nov 2016 19:25:00 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.2 required=2.0 tests=BAYES_00, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 6236F29A7D for ; Tue, 1 Nov 2016 19:24:59 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1c1edU-0007AS-Nt; Tue, 01 Nov 2016 19:22:16 +0000 Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1c1edT-00079l-CE for xen-devel@lists.xenproject.org; Tue, 01 Nov 2016 19:22:15 +0000 Received: from [193.109.254.147] by server-3.bemta-6.messagelabs.com id D2/25-18083-66BE8185; Tue, 01 Nov 2016 19:22:14 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrJLMWRWlGSWpSXmKPExsXitHRDpG7aa4k IgzXtjBbft0xmcmD0OPzhCksAYxRrZl5SfkUCa8byQx2sBbOUKza9WsrUwNgq18XIySEh4C9x Y+ULNhCbTUBZ4mdnL5gtIqAn0XTgOWMXIxcHs8BHJok9LW9YQBLCAnYSP460g9ksAioSnWu3M ILYvALOErP3nmKBGConcf74T2YQW0hAQaJj+jEmiBpBiZMzn4DVMAtISBx88YIZop5b4vbpqc wTGHlmISmbhaRsASPTKkb14tSistQiXSO9pKLM9IyS3MTMHF1DAzO93NTi4sT01JzEpGK95Pz cTYzAIGEAgh2My/46HWKU5GBSEuWteiURIcSXlJ9SmZFYnBFfVJqTWnyIUYaDQ0mCdxJITrAo NT21Ii0zBxiuMGkJDh4lEd4+kDRvcUFibnFmOkTqFKOilDjvXJCEAEgiozQPrg0WI5cYZaWEe RmBDhHiKUgtys0sQZV/xSjOwagkzDsdZApPZl4J3PRXQIuZgBabJ4EtLklESEk1MCaFPTjTxR N0SY1n+nrGNLl/2b7RU2+b/2z1Tn19f61/zMPp71+eeLn+fpzJsdUi70y/++5tSuFedIeV9cb LbWIGl+5VaTw8sUShccOGvz6lWZdYcmQTl0zaMLdT6tom8e91NiuPz1K647ftMeN05sXVXpz/ AjeGT27se1Rj5Ky4YNKRLra4lVxKLMUZiYZazEXFiQDg+IQljAIAAA== X-Env-Sender: prvs=1065afaf3=wei.liu2@citrix.com X-Msg-Ref: server-14.tower-27.messagelabs.com!1478028132!56568660!1 X-Originating-IP: [66.165.176.89] X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n, received_headers: No Received headers X-StarScan-Received: X-StarScan-Version: 9.0.13; banners=-,-,- X-VirusChecked: Checked Received: (qmail 20563 invoked from network); 1 Nov 2016 19:22:13 -0000 Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89) by server-14.tower-27.messagelabs.com with RC4-SHA encrypted SMTP; 1 Nov 2016 19:22:13 -0000 X-IronPort-AV: E=Sophos;i="5.31,580,1473120000"; d="scan'208";a="387241570" From: Wei Liu To: Xen-devel Date: Tue, 1 Nov 2016 19:22:10 +0000 Message-ID: <1478028130-27500-1-git-send-email-wei.liu2@citrix.com> X-Mailer: git-send-email 2.1.4 MIME-Version: 1.0 X-DLP: MIA2 Cc: Stefano Stabellini , Wei Liu , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , Jan Beulich , Samuel Thibault Subject: [Xen-devel] [PATCH v2] build: make debug option affect tools only X-BeenThere: xen-devel@lists.xen.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" X-Virus-Scanned: ClamAV using ClamSMTP The debug option in Config.mk affects hypervisor, tools and stubdom by appending different flags to CFLAGS. Mini-os under extra is not affected because it already has its own build system when it is separated from xen.git. It is undesirable because now hypervisor build is affected by both Kconfig and debug. Disentangle the semantics of debug by pushing relevant options to individual sub-systems. For hypervisor, the flags previously added by debug option is now controlled by CONFIG_DEBUG. For tools, flags are moved from config/*.mk into tools/Rules.mk. For stubdom, because it unilaterally sets debug=y before including top-level Config.mk, we only need to move the debug build set of flags into stubdom Makefile. Specifically there are some considerations on what flags are picked: 1. we don't need -fno-optimize-sibling-calls anymore because gcc doc indicates that it is not enabled for -O1, which we already set in the debug build. 2. for tools we use -O0 -g3 in Rules.mk because they already take precedence over the flags set in config/*.mk. 3. for hypervisor we don't add -fno-omit-frame-pointer to debug build because that's controlled by CONFIG_FRAME_POINTER. This patch doesn't intend to tune those flags, but to provide identical set of effective flags as before. The debug option in Config.mk will only affect tools components after this patch is applied. Signed-off-by: Wei Liu Acked-by: Jan Beulich --- Cc: Andrew Cooper Cc: George Dunlap Cc: Ian Jackson Cc: Jan Beulich Cc: Konrad Rzeszutek Wilk Cc: Stefano Stabellini Cc: Tim Deegan Cc: Wei Liu Cc: Samuel Thibault --- config/StdGNU.mk | 8 -------- config/SunOS.mk | 7 ------- stubdom/Makefile | 2 ++ tools/Rules.mk | 4 +++- xen/Rules.mk | 6 ++++++ 5 files changed, 11 insertions(+), 16 deletions(-) diff --git a/config/StdGNU.mk b/config/StdGNU.mk index 39d36b2..6be8233 100644 --- a/config/StdGNU.mk +++ b/config/StdGNU.mk @@ -35,14 +35,6 @@ UTIL_LIBS = -lutil SONAME_LDFLAG = -soname SHLIB_LDFLAGS = -shared -ifneq ($(debug),y) -CFLAGS += -O2 -fomit-frame-pointer -else -# Less than -O1 produces bad code and large stack frames -CFLAGS += -O1 -fno-omit-frame-pointer -CFLAGS-$(gcc) += -fno-optimize-sibling-calls -endif - ifeq ($(lto),y) CFLAGS += -flto LDFLAGS-$(clang) += -plugin LLVMgold.so diff --git a/config/SunOS.mk b/config/SunOS.mk index 86a384d..0fe5f45 100644 --- a/config/SunOS.mk +++ b/config/SunOS.mk @@ -31,12 +31,5 @@ UTIL_LIBS = SONAME_LDFLAG = -h SHLIB_LDFLAGS = -R $(SunOS_LIBDIR) -shared -ifneq ($(debug),y) -CFLAGS += -O2 -fno-omit-frame-pointer -else -# Less than -O1 produces bad code and large stack frames -CFLAGS += -O1 -fno-omit-frame-pointer -endif - CFLAGS += -Wa,--divide -D_POSIX_C_SOURCE=200112L -D__EXTENSIONS__ diff --git a/stubdom/Makefile b/stubdom/Makefile index 571704d..2921f30 100644 --- a/stubdom/Makefile +++ b/stubdom/Makefile @@ -6,6 +6,8 @@ export XEN_OS=MiniOS export stubdom=y export debug=y +# Moved from config/StdGNU.mk +CFLAGS += -O1 -fno-omit-frame-pointer ifeq (,$(findstring clean,$(MAKECMDGOALS))) ifeq ($(wildcard $(MINI_OS)/Config.mk),) diff --git a/tools/Rules.mk b/tools/Rules.mk index 5a80fec..0e73690 100644 --- a/tools/Rules.mk +++ b/tools/Rules.mk @@ -138,9 +138,11 @@ SHLIB_libxenvchan = $(SHDEPS_libxenvchan) -Wl,-rpath-link=$(XEN_LIBVCHAN) ifeq ($(debug),y) # Disable optimizations and enable debugging information for macros -CFLAGS += -O0 -g3 +CFLAGS += -O0 -g3 -fno-omit-frame-pointer # But allow an override to -O0 in case Python enforces -D_FORTIFY_SOURCE=. PY_CFLAGS += $(PY_NOOPT_CFLAGS) +else +CFLAGS += -O2 -fomit-frame-pointer endif LIBXL_BLKTAP ?= $(CONFIG_BLKTAP2) diff --git a/xen/Rules.mk b/xen/Rules.mk index a9fda71..08cc776 100644 --- a/xen/Rules.mk +++ b/xen/Rules.mk @@ -46,6 +46,12 @@ ALL_OBJS-y += $(BASEDIR)/xsm/built_in.o ALL_OBJS-y += $(BASEDIR)/arch/$(TARGET_ARCH)/built_in.o ALL_OBJS-$(CONFIG_CRYPTO) += $(BASEDIR)/crypto/built_in.o +ifeq ($(CONFIG_DEBUG),y) +CFLAGS += -O1 +else +CFLAGS += -O2 -fomit-frame-pointer +endif + CFLAGS += -nostdinc -fno-builtin -fno-common CFLAGS += -Werror -Wredundant-decls -Wno-pointer-arith CFLAGS += -pipe -g -D__XEN__ -include $(BASEDIR)/include/xen/config.h