Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp2697846imm; Thu, 9 Aug 2018 18:42:36 -0700 (PDT) X-Google-Smtp-Source: AA+uWPzAWiTp1UMPT1D8Ri8t3dZtsM2jxiMIjgkM1TNpQbwTRoKR+A/+Gf6ZKPvEqjaWxLJVDVfL X-Received: by 2002:a63:e056:: with SMTP id n22-v6mr4386214pgj.205.1533865356169; Thu, 09 Aug 2018 18:42:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1533865356; cv=none; d=google.com; s=arc-20160816; b=qNCMupawKq0KAjgKiWHZgDOqkbaGJ9Ktyf3yYNgAyn/GSKzaiFcnC4tjmobNoDHB/t s1SmCX0mpJW5oIP0STqnpPXrqe1APzRKnXpSumRa6+c4PvLjCHuu21qaKfFBK+a7hFzB iiuBgYiP3tcZJBdO8t/uKVlh5IHLx1wpdLu/SnhzYbD/iPVEj9fQSrgOvrSp9ma8uXYk B4i6V6bMGFgbmnN/CyGxSKt3jYBsZjUYBW7EQA86hFMkqfbbfsh3RYpf4jAWDFhkY+He QNjch+sR3uCQHh3YDx9wrJSYRJjAYBAheSo7NkO03MjnCYYRaxrucKKZWSz3pt2kNE0y N6Sw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :references:in-reply-to:mime-version:dkim-signature:dkim-filter :arc-authentication-results; bh=ZMC7X7IRqnL4wJfRTIDYw7XpButkDZb3WCYLW4dSCFc=; b=oMABsm+0r3qXgTdap4Lt3sPtm9dsBqzRqwSnmTrLc/l8h+K20Ks6BbCntP68OrRsPE Ghg99X6iTb2HUjTFJ3fRN2S6TnlX/fbbRViW4+ABvk1lbldW05SyM06anXwpjXXRL/vX Co2XotCS6b/bTpu/R82LqCMTAUyQ65QXoEnzXiDJTJaUGGKPA/KKK8SVa94710hQlC33 2bgO3b84XngruYrZsCLFRI4/UfPafatuy3cO+fA8sPgavJhhKUEUUK3KbPtWeNB7Xj86 kJgUtBw1XHBvexh+59r8w3c6idikmlAH0zvauJ383EirZS+aSryRdW/VWiqG5Bu1D7oO 0MJg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@nifty.com header.s=dec2015msa header.b=VSUPvNAx; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id p77-v6si9441769pfj.294.2018.08.09.18.42.21; Thu, 09 Aug 2018 18:42:36 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@nifty.com header.s=dec2015msa header.b=VSUPvNAx; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727268AbeHJEHj (ORCPT + 99 others); Fri, 10 Aug 2018 00:07:39 -0400 Received: from conssluserg-03.nifty.com ([210.131.2.82]:34572 "EHLO conssluserg-03.nifty.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725724AbeHJEHi (ORCPT ); Fri, 10 Aug 2018 00:07:38 -0400 Received: from mail-yw1-f48.google.com (mail-yw1-f48.google.com [209.85.161.48]) (authenticated) by conssluserg-03.nifty.com with ESMTP id w7A1dtEq015463; Fri, 10 Aug 2018 10:39:55 +0900 DKIM-Filter: OpenDKIM Filter v2.10.3 conssluserg-03.nifty.com w7A1dtEq015463 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nifty.com; s=dec2015msa; t=1533865196; bh=ZMC7X7IRqnL4wJfRTIDYw7XpButkDZb3WCYLW4dSCFc=; h=In-Reply-To:References:From:Date:Subject:To:Cc:From; b=VSUPvNAx4SYCV+jdwr8JeeheA0pJCJ+ixMoz7VhiE/9Wcsts5MSRzoEETv6NBEzBz oUByUl88Nx0sTWR5I4nN7wJl2eIeZg4+ahzxKxD32VNPo8Dq5A63Zjzg95+oWtW4KW W6B3Qt6TfUum5T5VMNdLSLmwEzWKLuyzd56/QMa7xnsuKeTRB9QXFLf87CPqDZUJox tY3+Je9KFGl6LcbfRJts/7iP0srrh3p4s2/iy+xm8kJ75PrZmslcgKtEgzsnmdR1W9 f6QHrUno9yPOZppCmZPMA0fOy/qz8VcaMkGVhNq2ZrZJoQK49kbVKKNWcBU+iIJ1uA IbsM9ijbNEH9g== X-Nifty-SrcIP: [209.85.161.48] Received: by mail-yw1-f48.google.com with SMTP id j68-v6so7418541ywg.1; Thu, 09 Aug 2018 18:39:55 -0700 (PDT) X-Gm-Message-State: AOUpUlEIr9lGuQX1vKqaD5rngD3/aGTpRKTkN7uNlxDI0TNfXt9o6ImG au3caHZSC5bYAFtNB9VTszCV1DfSNjtSUB81Ah4= X-Received: by 2002:a1f:9004:: with SMTP id s4-v6mr84767vkd.10.1533865194453; Thu, 09 Aug 2018 18:39:54 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:ab0:2642:0:0:0:0:0 with HTTP; Thu, 9 Aug 2018 18:39:13 -0700 (PDT) In-Reply-To: <20180809201554.168804-3-namit@vmware.com> References: <20180809201554.168804-1-namit@vmware.com> <20180809201554.168804-3-namit@vmware.com> From: Masahiro Yamada Date: Fri, 10 Aug 2018 10:39:13 +0900 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v7 02/10] Makefile: Prepare for using macros for inline asm To: Nadav Amit Cc: Ingo Molnar , X86 ML , Peter Zijlstra , Thomas Gleixner , Linux Kernel Mailing List , Sam Ravnborg , Michal Marek , "H. Peter Anvin" , Linux Kbuild mailing list Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Nadav, 2018-08-10 5:15 GMT+09:00 Nadav Amit : > Using macros for inline assembly improves both readability and > compilation decisions that are distorted by big assembly blocks that use > alternative sections. Compile macros.S and use it to assemble all C > files. Currently, only x86 will use it. > > Cc: Sam Ravnborg > Cc: Masahiro Yamada I added this in the previous version. Acked-by: Masahiro Yamada When you send a new version, please make sure to add Acked-by/Reviewed-by reviewers have given. Thanks. > Cc: Michal Marek > Cc: Thomas Gleixner > Cc: Ingo Molnar > Cc: "H. Peter Anvin" > Cc: x86@kernel.org > Cc: linux-kbuild@vger.kernel.org > Acked-by: Peter Zijlstra (Intel) > Signed-off-by: Nadav Amit > --- > Makefile | 9 +++++++-- > arch/x86/Makefile | 11 +++++++++-- > arch/x86/kernel/macros.S | 7 +++++++ > scripts/Kbuild.include | 4 +++- > scripts/mod/Makefile | 2 ++ > 5 files changed, 28 insertions(+), 5 deletions(-) > create mode 100644 arch/x86/kernel/macros.S > > diff --git a/Makefile b/Makefile > index 7a3c4548162b..39d790e74e0d 100644 > --- a/Makefile > +++ b/Makefile > @@ -1051,7 +1051,7 @@ scripts: scripts_basic include/config/auto.conf include/config/tristate.conf \ > # version.h and scripts_basic is processed / created. > > # Listed in dependency order > -PHONY += prepare archprepare prepare0 prepare1 prepare2 prepare3 > +PHONY += prepare archprepare macroprepare prepare0 prepare1 prepare2 prepare3 > > # prepare3 is used to check if we are building in a separate output directory, > # and if so do: > @@ -1075,7 +1075,9 @@ prepare1: prepare2 $(version_h) $(autoksyms_h) include/generated/utsrelease.h \ > include/config/auto.conf > $(cmd_crmodverdir) > > -archprepare: archheaders archscripts prepare1 scripts_basic > +macroprepare: prepare1 archmacros > + > +archprepare: archheaders archscripts macroprepare scripts_basic > > prepare0: archprepare gcc-plugins > $(Q)$(MAKE) $(build)=. > @@ -1143,6 +1145,9 @@ archheaders: > PHONY += archscripts > archscripts: > > +PHONY += archmacros > +archmacros: > + > PHONY += __headers > __headers: $(version_h) scripts_basic uapi-asm-generic archheaders archscripts > $(Q)$(MAKE) $(build)=scripts build_unifdef > diff --git a/arch/x86/Makefile b/arch/x86/Makefile > index a08e82856563..a4b90ac1629b 100644 > --- a/arch/x86/Makefile > +++ b/arch/x86/Makefile > @@ -235,8 +235,8 @@ ifdef CONFIG_X86_64 > LDFLAGS += $(call ld-option, -z max-page-size=0x200000) > endif > > -# Speed up the build > -KBUILD_CFLAGS += -pipe > +# We cannot use -pipe flag since we give an additional .s file to the compiler > +#KBUILD_CFLAGS += -pipe > # Workaround for a gcc prelease that unfortunately was shipped in a suse release > KBUILD_CFLAGS += -Wno-sign-compare > # > @@ -258,6 +258,13 @@ archscripts: scripts_basic > archheaders: > $(Q)$(MAKE) $(build)=arch/x86/entry/syscalls all > > +archmacros: > + $(Q)$(MAKE) $(build)=arch/x86/kernel arch/x86/kernel/macros.s > + > +ASM_MACRO_FLAGS = -Wa,arch/x86/kernel/macros.s > +export ASM_MACRO_FLAGS > +KBUILD_CFLAGS += $(ASM_MACRO_FLAGS) > + > ### > # Kernel objects > > diff --git a/arch/x86/kernel/macros.S b/arch/x86/kernel/macros.S > new file mode 100644 > index 000000000000..cfc1c7d1a6eb > --- /dev/null > +++ b/arch/x86/kernel/macros.S > @@ -0,0 +1,7 @@ > +/* SPDX-License-Identifier: GPL-2.0 */ > + > +/* > + * This file includes headers whose assembly part includes macros which are > + * commonly used. The macros are precompiled into assmebly file which is later > + * assembled together with each compiled file. > + */ > diff --git a/scripts/Kbuild.include b/scripts/Kbuild.include > index 86321f06461e..d7b7aadb6cd8 100644 > --- a/scripts/Kbuild.include > +++ b/scripts/Kbuild.include > @@ -115,7 +115,9 @@ __cc-option = $(call try-run,\ > > # Do not attempt to build with gcc plugins during cc-option tests. > # (And this uses delayed resolution so the flags will be up to date.) > -CC_OPTION_CFLAGS = $(filter-out $(GCC_PLUGINS_CFLAGS),$(KBUILD_CFLAGS)) > +# In addition, do not include the asm macros which are built later. > +CC_OPTION_FILTERED = $(GCC_PLUGINS_CFLAGS) $(ASM_MACRO_FLAGS) > +CC_OPTION_CFLAGS = $(filter-out $(CC_OPTION_FILTERED),$(KBUILD_CFLAGS)) > > # cc-option > # Usage: cflags-y += $(call cc-option,-march=winchip-c6,-march=i586) > diff --git a/scripts/mod/Makefile b/scripts/mod/Makefile > index 42c5d50f2bcc..a5b4af47987a 100644 > --- a/scripts/mod/Makefile > +++ b/scripts/mod/Makefile > @@ -4,6 +4,8 @@ OBJECT_FILES_NON_STANDARD := y > hostprogs-y := modpost mk_elfconfig > always := $(hostprogs-y) empty.o > > +CFLAGS_REMOVE_empty.o := $(ASM_MACRO_FLAGS) > + > modpost-objs := modpost.o file2alias.o sumversion.o > > devicetable-offsets-file := devicetable-offsets.h > -- > 2.17.1 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html -- Best Regards Masahiro Yamada