From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from condef-02.nifty.com (condef-02.nifty.com [202.248.20.67]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 05D6817D3 for ; Tue, 5 Apr 2022 11:44:59 +0000 (UTC) Received: from conuserg-12.nifty.com ([10.126.8.75])by condef-02.nifty.com with ESMTP id 235BZ3Qr014399 for ; Tue, 5 Apr 2022 20:35:03 +0900 Received: from grover.. (133-32-177-133.west.xps.vectant.ne.jp [133.32.177.133]) (authenticated) by conuserg-12.nifty.com with ESMTP id 235BYCGv000464; Tue, 5 Apr 2022 20:34:18 +0900 DKIM-Filter: OpenDKIM Filter v2.10.3 conuserg-12.nifty.com 235BYCGv000464 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nifty.com; s=dec2015msa; t=1649158459; bh=dJWl8ojIyORclruErwON0RrHfXvcLP2fynkVmPN0hbY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=c1lJuwxNsCFcvhaVqHpTfXivtbScy9J7jZCuY6BemLqdxgLCsO858AV1f5MBe4SWf h92Qwq1gYGNuKxqkI7vXTPMhujVeNcXd2zEbC/03iSyRxGeNzrwSv/hUOlEavBrQV9 yKfc1/EAYPKMrNfHi9aM955Y3jQIEWK32rpfA6FsBjYvw5TOZE+6Fzl7OFWgMQIkEd 8Oa6ErvPDVrV1iGn5mh6ftuJkYAaszl61BXV+jjTaozNBim+rrKZ0i2Ot18K31NCF5 I90Ao5JQGcPEOe7DrktkOEhl2DHQsR0Tt8TZ03FJjkeGG8NXs+7dK0t9AIMKOfTgvx 5KhBjObXJrw4A== X-Nifty-SrcIP: [133.32.177.133] From: Masahiro Yamada To: linux-kbuild@vger.kernel.org Cc: linux-kernel@vger.kernel.org, Masahiro Yamada , Michal Marek , Nathan Chancellor , Nick Desaulniers , llvm@lists.linux.dev Subject: [PATCH v2 09/10] kbuild: refactor cmd_modversions_c Date: Tue, 5 Apr 2022 20:33:57 +0900 Message-Id: <20220405113359.2880241-10-masahiroy@kernel.org> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20220405113359.2880241-1-masahiroy@kernel.org> References: <20220405113359.2880241-1-masahiroy@kernel.org> Precedence: bulk X-Mailing-List: llvm@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit cmd_modversions_c implements two parts; run genksyms to calculate CRCs of exported symbols, run $(LD) to update the object with the CRCs. The latter is not executed for CONFIG_LTO_CLANG=y since the object is not ELF but LLVM bit code at this point. The first part can be unified because we can always use $(NM) instead of "$(OBJDUMP) -h" to dump the symbols. Split the code into the two macros, cmd_gen_symversions_c and cmd_modversions. Signed-off-by: Masahiro Yamada --- Changes in v2: - new scripts/Makefile.build | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/scripts/Makefile.build b/scripts/Makefile.build index d934bdf84de4..ba2be555f942 100644 --- a/scripts/Makefile.build +++ b/scripts/Makefile.build @@ -169,29 +169,25 @@ ifdef CONFIG_MODVERSIONS # the actual value of the checksum generated by genksyms # o remove .tmp_.o to .o -ifdef CONFIG_LTO_CLANG # Generate .o.symversions files for each .o with exported symbols, and link these # to the kernel and/or modules at the end. -cmd_modversions_c = \ +gen_symversions = \ if $(NM) $@ 2>/dev/null | grep -q __ksymtab; then \ - $(call cmd_gensymtypes_c,$(KBUILD_SYMTYPES),$(@:.o=.symtypes)) \ + $(call cmd_gensymtypes_$(1),$(KBUILD_SYMTYPES),$(@:.o=.symtypes)) \ > $@.symversions; \ else \ rm -f $@.symversions; \ - fi; -else -cmd_modversions_c = \ - if $(OBJDUMP) -h $@ | grep -q __ksymtab; then \ - $(call cmd_gensymtypes_c,$(KBUILD_SYMTYPES),$(@:.o=.symtypes)) \ - > $(@D)/.tmp_$(@F:.o=.ver); \ - \ + fi + +cmd_gen_symversions_c = $(call gen_symversions,c) + +cmd_modversions = \ + if [ -r $@.symversions ]; then \ $(LD) $(KBUILD_LDFLAGS) -r -o $(@D)/.tmp_$(@F) $@ \ - -T $(@D)/.tmp_$(@F:.o=.ver); \ + -T $@.symversions; \ mv -f $(@D)/.tmp_$(@F) $@; \ - rm -f $(@D)/.tmp_$(@F:.o=.ver); \ fi endif -endif ifdef CONFIG_FTRACE_MCOUNT_USE_RECORDMCOUNT # compiler will not generate __mcount_loc use recordmcount or recordmcount.pl @@ -269,7 +265,8 @@ define rule_cc_o_c $(call cmd,checksrc) $(call cmd,checkdoc) $(call cmd,gen_objtooldep) - $(call cmd,modversions_c) + $(call cmd,gen_symversions_c) + $(if $(CONFIG_LTO_CLANG),,$(call cmd,modversions)) $(call cmd,record_mcount) endef -- 2.32.0