[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20210701092841.1419-1-lecopzer.chen@mediatek.com>
Date: Thu, 1 Jul 2021 17:28:38 +0800
From: Lecopzer Chen <lecopzer.chen@...iatek.com>
To: <keescook@...omium.org>, <samitolvanen@...gle.com>,
<linux-kbuild@...r.kernel.org>, <nathan@...nel.org>
CC: <clang-built-linux@...glegroups.com>,
<linux-kernel@...r.kernel.org>, <yj.chiang@...iatek.com>,
<masahiroy@...nel.org>, <michal.lkml@...kovi.net>,
Lecopzer Chen <lecopzer.chen@...iatek.com>
Subject: [RESEND PATCH v2 0/2] Kbuild: lto: add make version checking for MODVERSIONS
Resend becasue subject is incorrect.
LTO with MODVERSIONS will fail in generating correct CRC because
the makefile rule doesn't work for make with version 3.8X.
Refer to [1]:
> When building modules(CONFIG_...=m), I found some of module versions
> are incorrect and set to 0.
> This can be found in build log for first clean build which shows
> WARNING: EXPORT symbol "XXXX" [drivers/XXX/XXX.ko] version generation failed,
> symbol will not be versioned.
> But in second build(incremental build), the WARNING disappeared and the
> module version becomes valid CRC and make someone who want to change
> modules without updating kernel image can't insert their modules.
> The problematic code is
> + $(foreach n, $(filter-out FORCE,$^), \
> + $(if $(wildcard $(n).symversions), \
> + ; cat $(n).symversions >> $@...mversions))
The issue is fixed when make version upgrading to 4.2.
Thus we need to check make version during selecting on LTO Kconfig.
Add CONFIG_MAKE_VERSION which means MAKE_VERSION in canonical digits
for arithmetic comparisons.
[1] https://lore.kernel.org/lkml/20210616080252.32046-1-lecopzer.chen@mediatek.com/
Signed-off-by: Lecopzer Chen <lecopzer.chen@...iatek.com>
----
v2:
- change MAKE_VERSION_INT to MAKE_VERSION
- remove $(make-version)
- tweak commit message
v1:
https://lore.kernel.org/lkml/20210630121436.19581-1-lecopzer.chen@mediatek.com/
----
Lecopzer Chen (2):
Kbuild: lto: add CONFIG_MAKE_VERSION
Kbuild: lto: add make version checking
Makefile | 2 +-
arch/Kconfig | 1 +
init/Kconfig | 4 ++++
scripts/make-version.sh | 13 +++++++++++++
4 files changed, 19 insertions(+), 1 deletion(-)
create mode 100755 scripts/make-version.sh
--
2.18.0
Powered by blists - more mailing lists