All of lore.kernel.org
 help / color / mirror / Atom feed
* [RESEND PATCH v2 0/2] Kbuild: lto: add make version checking for MODVERSIONS
@ 2021-07-01  9:28 Lecopzer Chen
  2021-07-01  9:28 ` [RESEND PATCH v2 1/2] Kbuild: lto: add CONFIG_MAKE_VERSION Lecopzer Chen
  2021-07-01  9:28 ` [RESEND PATCH v2 2/2] Kbuild: lto: add make version checking Lecopzer Chen
  0 siblings, 2 replies; 5+ messages in thread
From: Lecopzer Chen @ 2021-07-01  9:28 UTC (permalink / raw)
  To: keescook, samitolvanen, linux-kbuild, nathan
  Cc: clang-built-linux, linux-kernel, yj.chiang, masahiroy,
	michal.lkml, Lecopzer Chen

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 >> $@.symversions))

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@mediatek.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


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2021-07-02  3:21 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-01  9:28 [RESEND PATCH v2 0/2] Kbuild: lto: add make version checking for MODVERSIONS Lecopzer Chen
2021-07-01  9:28 ` [RESEND PATCH v2 1/2] Kbuild: lto: add CONFIG_MAKE_VERSION Lecopzer Chen
2021-07-01 17:42   ` Nick Desaulniers
2021-07-02  3:21     ` Lecopzer Chen
2021-07-01  9:28 ` [RESEND PATCH v2 2/2] Kbuild: lto: add make version checking Lecopzer Chen

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.