* [PATCH v3 1/5] kbuild: add test-{le,ge,lt,gt} macros
@ 2022-11-26 22:56 ` Masahiro Yamada
0 siblings, 0 replies; 11+ messages in thread
From: Masahiro Yamada @ 2022-11-26 22:56 UTC (permalink / raw)
To: linux-kbuild
Cc: linux-kernel, Masahiro Yamada, Nicolas Schier, Albert Ou,
Borislav Petkov, Dave Hansen, H. Peter Anvin, Ingo Molnar,
Nathan Chancellor, Nick Desaulniers, Palmer Dabbelt,
Paul Walmsley, Thomas Gleixner, Tom Rix, linux-riscv, llvm, x86
Because GNU Make is handle strings, it is very hard to perform math in
Makefiles.
When we compare two integers, we invokes shell. One example is in the
top Makefile:
ifeq ($(shell test $(CONFIG_LLD_VERSION) -lt 130000; echo $$?),0)
This is more expensive than using built-in functions since it forks a
process.
If we know the two have the same number of digits, we can do better.
This commit adds four macros, test-le, test-ge, test-lt, test-gt.
$(call test-lt, A, B) is evaluated to 'y' if A is less than B, or
empty otherwise. This will replace $(call shell test A -lt B).
Again, the limitation is that A and B must have the same number of
digits because these macros are based on $(sort ) function.
$(call test-lt, 1, 9) --> y (Works!)
$(call test-lt, 10, 9) --> y (Not work...)
To make the latter work, you need to add '0' prefix to align the number
of digits:
$(call test-lt, 10, 09) --> empty (Works!)
Actually, we can live with this limitation in many places. As for the
example above, we know $(CONFIG_LLD_VERSION) is 6-digits because the
minimal supported version of LLVM is 11.0.0 (or CONFIG_LLD_VERSION=0
if the linker is not LLD, this case also works.)
So, the shell invocation can be replaced with more efficient code:
ifeq ($(call test-lt, $(CONFIG_LLD_VERSION), 130000),y)
Of course, this assumption will break when LLVM 100 is released, but it
will be far in the future.
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Reviewed-by: Nicolas Schier <nicolas@fjasle.eu>
---
Changes in v3:
- Ensure the given parameters are not empty
Makefile | 2 +-
arch/riscv/Makefile | 2 +-
arch/x86/Makefile | 2 +-
scripts/Kbuild.include | 10 ++++++++++
4 files changed, 13 insertions(+), 3 deletions(-)
diff --git a/Makefile b/Makefile
index 6f846b1f2618..eb80332f7b51 100644
--- a/Makefile
+++ b/Makefile
@@ -986,7 +986,7 @@ KBUILD_LDFLAGS += -mllvm -import-instr-limit=5
# Check for frame size exceeding threshold during prolog/epilog insertion
# when using lld < 13.0.0.
ifneq ($(CONFIG_FRAME_WARN),0)
-ifeq ($(shell test $(CONFIG_LLD_VERSION) -lt 130000; echo $$?),0)
+ifeq ($(call test-lt, $(CONFIG_LLD_VERSION), 130000),y)
KBUILD_LDFLAGS += -plugin-opt=-warn-stack-size=$(CONFIG_FRAME_WARN)
endif
endif
diff --git a/arch/riscv/Makefile b/arch/riscv/Makefile
index 0d13b597cb55..faf2c2177094 100644
--- a/arch/riscv/Makefile
+++ b/arch/riscv/Makefile
@@ -37,7 +37,7 @@ else
endif
ifeq ($(CONFIG_LD_IS_LLD),y)
-ifeq ($(shell test $(CONFIG_LLD_VERSION) -lt 150000; echo $$?),0)
+ifeq ($(call test-lt, $(CONFIG_LLD_VERSION), 150000),y)
KBUILD_CFLAGS += -mno-relax
KBUILD_AFLAGS += -mno-relax
ifndef CONFIG_AS_IS_LLVM
diff --git a/arch/x86/Makefile b/arch/x86/Makefile
index 415a5d138de4..e72c7a49cd59 100644
--- a/arch/x86/Makefile
+++ b/arch/x86/Makefile
@@ -211,7 +211,7 @@ endif
KBUILD_LDFLAGS += -m elf_$(UTS_MACHINE)
ifdef CONFIG_LTO_CLANG
-ifeq ($(shell test $(CONFIG_LLD_VERSION) -lt 130000; echo $$?),0)
+ifeq ($(call test-lt, $(CONFIG_LLD_VERSION), 130000),y)
KBUILD_LDFLAGS += -plugin-opt=-stack-alignment=$(if $(CONFIG_X86_32),4,8)
endif
endif
diff --git a/scripts/Kbuild.include b/scripts/Kbuild.include
index cbe28744637b..4b8cf464b53b 100644
--- a/scripts/Kbuild.include
+++ b/scripts/Kbuild.include
@@ -11,6 +11,16 @@ space := $(empty) $(empty)
space_escape := _-_SPACE_-_
pound := \#
+###
+# Comparison macros.
+# Usage: $(call test-le, A, B)
+# works like shell's "test A -le B", use with care bacause it is ASCII sort.
+# If A and B have the same number of digits, it works as expected.
+test-le = $(and $(strip $1),$(strip $2),$(filter $1, $(firstword $(sort $1 $2))),y)
+test-ge = $(call test-le, $2, $1)
+test-lt = $(and $(strip $1),$(strip $2),$(filter-out $2, $(firstword $(sort $1 $2))),y)
+test-gt = $(call test-lt, $2, $1)
+
###
# Name of target with a '.' as filename prefix. foo/bar.o => foo/.bar.o
dot-target = $(dir $@).$(notdir $@)
--
2.34.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v3 1/5] kbuild: add test-{le,ge,lt,gt} macros
@ 2022-11-26 22:56 ` Masahiro Yamada
0 siblings, 0 replies; 11+ messages in thread
From: Masahiro Yamada @ 2022-11-26 22:56 UTC (permalink / raw)
To: linux-kbuild
Cc: linux-kernel, Masahiro Yamada, Nicolas Schier, Albert Ou,
Borislav Petkov, Dave Hansen, H. Peter Anvin, Ingo Molnar,
Nathan Chancellor, Nick Desaulniers, Palmer Dabbelt,
Paul Walmsley, Thomas Gleixner, Tom Rix, linux-riscv, llvm, x86
Because GNU Make is handle strings, it is very hard to perform math in
Makefiles.
When we compare two integers, we invokes shell. One example is in the
top Makefile:
ifeq ($(shell test $(CONFIG_LLD_VERSION) -lt 130000; echo $$?),0)
This is more expensive than using built-in functions since it forks a
process.
If we know the two have the same number of digits, we can do better.
This commit adds four macros, test-le, test-ge, test-lt, test-gt.
$(call test-lt, A, B) is evaluated to 'y' if A is less than B, or
empty otherwise. This will replace $(call shell test A -lt B).
Again, the limitation is that A and B must have the same number of
digits because these macros are based on $(sort ) function.
$(call test-lt, 1, 9) --> y (Works!)
$(call test-lt, 10, 9) --> y (Not work...)
To make the latter work, you need to add '0' prefix to align the number
of digits:
$(call test-lt, 10, 09) --> empty (Works!)
Actually, we can live with this limitation in many places. As for the
example above, we know $(CONFIG_LLD_VERSION) is 6-digits because the
minimal supported version of LLVM is 11.0.0 (or CONFIG_LLD_VERSION=0
if the linker is not LLD, this case also works.)
So, the shell invocation can be replaced with more efficient code:
ifeq ($(call test-lt, $(CONFIG_LLD_VERSION), 130000),y)
Of course, this assumption will break when LLVM 100 is released, but it
will be far in the future.
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Reviewed-by: Nicolas Schier <nicolas@fjasle.eu>
---
Changes in v3:
- Ensure the given parameters are not empty
Makefile | 2 +-
arch/riscv/Makefile | 2 +-
arch/x86/Makefile | 2 +-
scripts/Kbuild.include | 10 ++++++++++
4 files changed, 13 insertions(+), 3 deletions(-)
diff --git a/Makefile b/Makefile
index 6f846b1f2618..eb80332f7b51 100644
--- a/Makefile
+++ b/Makefile
@@ -986,7 +986,7 @@ KBUILD_LDFLAGS += -mllvm -import-instr-limit=5
# Check for frame size exceeding threshold during prolog/epilog insertion
# when using lld < 13.0.0.
ifneq ($(CONFIG_FRAME_WARN),0)
-ifeq ($(shell test $(CONFIG_LLD_VERSION) -lt 130000; echo $$?),0)
+ifeq ($(call test-lt, $(CONFIG_LLD_VERSION), 130000),y)
KBUILD_LDFLAGS += -plugin-opt=-warn-stack-size=$(CONFIG_FRAME_WARN)
endif
endif
diff --git a/arch/riscv/Makefile b/arch/riscv/Makefile
index 0d13b597cb55..faf2c2177094 100644
--- a/arch/riscv/Makefile
+++ b/arch/riscv/Makefile
@@ -37,7 +37,7 @@ else
endif
ifeq ($(CONFIG_LD_IS_LLD),y)
-ifeq ($(shell test $(CONFIG_LLD_VERSION) -lt 150000; echo $$?),0)
+ifeq ($(call test-lt, $(CONFIG_LLD_VERSION), 150000),y)
KBUILD_CFLAGS += -mno-relax
KBUILD_AFLAGS += -mno-relax
ifndef CONFIG_AS_IS_LLVM
diff --git a/arch/x86/Makefile b/arch/x86/Makefile
index 415a5d138de4..e72c7a49cd59 100644
--- a/arch/x86/Makefile
+++ b/arch/x86/Makefile
@@ -211,7 +211,7 @@ endif
KBUILD_LDFLAGS += -m elf_$(UTS_MACHINE)
ifdef CONFIG_LTO_CLANG
-ifeq ($(shell test $(CONFIG_LLD_VERSION) -lt 130000; echo $$?),0)
+ifeq ($(call test-lt, $(CONFIG_LLD_VERSION), 130000),y)
KBUILD_LDFLAGS += -plugin-opt=-stack-alignment=$(if $(CONFIG_X86_32),4,8)
endif
endif
diff --git a/scripts/Kbuild.include b/scripts/Kbuild.include
index cbe28744637b..4b8cf464b53b 100644
--- a/scripts/Kbuild.include
+++ b/scripts/Kbuild.include
@@ -11,6 +11,16 @@ space := $(empty) $(empty)
space_escape := _-_SPACE_-_
pound := \#
+###
+# Comparison macros.
+# Usage: $(call test-le, A, B)
+# works like shell's "test A -le B", use with care bacause it is ASCII sort.
+# If A and B have the same number of digits, it works as expected.
+test-le = $(and $(strip $1),$(strip $2),$(filter $1, $(firstword $(sort $1 $2))),y)
+test-ge = $(call test-le, $2, $1)
+test-lt = $(and $(strip $1),$(strip $2),$(filter-out $2, $(firstword $(sort $1 $2))),y)
+test-gt = $(call test-lt, $2, $1)
+
###
# Name of target with a '.' as filename prefix. foo/bar.o => foo/.bar.o
dot-target = $(dir $@).$(notdir $@)
--
2.34.1
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v3 2/5] kbuild: implement {gcc,clang}-min-version only with built-in functions
2022-11-26 22:56 ` Masahiro Yamada
(?)
@ 2022-11-26 22:56 ` Masahiro Yamada
-1 siblings, 0 replies; 11+ messages in thread
From: Masahiro Yamada @ 2022-11-26 22:56 UTC (permalink / raw)
To: linux-kbuild
Cc: linux-kernel, Masahiro Yamada, Nicolas Schier, Nathan Chancellor,
Nick Desaulniers, Tom Rix, llvm
Converting clang-min-version is straightforward because the versions
are always 6-digit.
gcc-min-version is somewhat tricky because the minimal GCC version
is GCC 5.1; prepend '0' to the version that is less than 10 so that
test-ge is always passed with 6-digit versions.
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Reviewed-by: Nicolas Schier <nicolas@fjasle.eu>
---
Changes in v3:
- Add comments
Changes in v2:
- Covert gcc-min-version in a different way
scripts/Makefile.compiler | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/scripts/Makefile.compiler b/scripts/Makefile.compiler
index 20d353dcabfb..4c095beda093 100644
--- a/scripts/Makefile.compiler
+++ b/scripts/Makefile.compiler
@@ -63,11 +63,16 @@ cc-disable-warning = $(call try-run,\
# gcc-min-version
# Usage: cflags-$(call gcc-min-version, 70100) += -foo
-gcc-min-version = $(shell [ $(CONFIG_GCC_VERSION)0 -ge $(1)0 ] && echo y)
+
+# Preprend 0 to the version that is less than 10 so test-ge works.
+# This will break when GCC 20 is released. Remove this workaround until then.
+gcc-min-version = $(call test-ge, \
+ $(or $(filter 1%, $(CONFIG_GCC_VERSION)), 0$(CONFIG_GCC_VERSION)), \
+ $(or $(filter 1%, $1), 0$(strip $1)))
# clang-min-version
# Usage: cflags-$(call clang-min-version, 110000) += -foo
-clang-min-version = $(shell [ $(CONFIG_CLANG_VERSION)0 -ge $(1)0 ] && echo y)
+clang-min-version = $(call test-ge, $(CONFIG_CLANG_VERSION), $1)
# ld-option
# Usage: KBUILD_LDFLAGS += $(call ld-option, -X, -Y)
--
2.34.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v3 3/5] kbuild: add read-file macro
2022-11-26 22:56 ` Masahiro Yamada
(?)
(?)
@ 2022-11-26 22:56 ` Masahiro Yamada
2022-12-07 15:40 ` Alexander Lobakin
-1 siblings, 1 reply; 11+ messages in thread
From: Masahiro Yamada @ 2022-11-26 22:56 UTC (permalink / raw)
To: linux-kbuild
Cc: linux-kernel, Masahiro Yamada, Nicolas Schier, Nathan Chancellor,
Nick Desaulniers
Since GNU Make 4.2, $(file ...) supports the read operater '<', which
is useful to read a file without forking any process. No warning is
shown even if the input file is missing.
For older Make versions, it falls back to the cat command.
The added ifeq will break when GNU Make 4.10 or 10.0 is released.
It will take a long time if the current release pace continues.
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Reviewed-by: Nicolas Schier <nicolas@fjasle.eu>
---
(no changes since v1)
Makefile | 2 +-
scripts/Kbuild.include | 15 +++++++++++++++
scripts/Makefile.modfinal | 2 +-
scripts/Makefile.modinst | 2 +-
4 files changed, 18 insertions(+), 3 deletions(-)
diff --git a/Makefile b/Makefile
index eb80332f7b51..60ce9dcafc72 100644
--- a/Makefile
+++ b/Makefile
@@ -369,7 +369,7 @@ else # !mixed-build
include $(srctree)/scripts/Kbuild.include
# Read KERNELRELEASE from include/config/kernel.release (if it exists)
-KERNELRELEASE = $(shell cat include/config/kernel.release 2> /dev/null)
+KERNELRELEASE = $(call read-file, include/config/kernel.release)
KERNELVERSION = $(VERSION)$(if $(PATCHLEVEL),.$(PATCHLEVEL)$(if $(SUBLEVEL),.$(SUBLEVEL)))$(EXTRAVERSION)
export VERSION PATCHLEVEL SUBLEVEL KERNELRELEASE KERNELVERSION
diff --git a/scripts/Kbuild.include b/scripts/Kbuild.include
index 4b8cf464b53b..55c2243f91c8 100644
--- a/scripts/Kbuild.include
+++ b/scripts/Kbuild.include
@@ -10,6 +10,10 @@ empty :=
space := $(empty) $(empty)
space_escape := _-_SPACE_-_
pound := \#
+define newline
+
+
+endef
###
# Comparison macros.
@@ -55,6 +59,17 @@ stringify = $(squote)$(quote)$1$(quote)$(squote)
kbuild-dir = $(if $(filter /%,$(src)),$(src),$(srctree)/$(src))
kbuild-file = $(or $(wildcard $(kbuild-dir)/Kbuild),$(kbuild-dir)/Makefile)
+###
+# Read a file, replacing newlines with spaces
+#
+# This ifeq will break when GNU Make 4.10 is released.
+# Remove this conditional until then.
+ifeq ($(call test-ge, $(MAKE_VERSION), 4.2),y)
+read-file = $(subst $(newline),$(space),$(file < $1))
+else
+read-file = $(shell cat $1 2>/dev/null)
+endif
+
###
# Easy method for doing a status message
kecho := :
diff --git a/scripts/Makefile.modfinal b/scripts/Makefile.modfinal
index 25bedd83644b..7252f6cf7837 100644
--- a/scripts/Makefile.modfinal
+++ b/scripts/Makefile.modfinal
@@ -13,7 +13,7 @@ include $(srctree)/scripts/Kbuild.include
include $(srctree)/scripts/Makefile.lib
# find all modules listed in modules.order
-modules := $(sort $(shell cat $(MODORDER)))
+modules := $(sort $(call read-file, $(MODORDER)))
__modfinal: $(modules)
@:
diff --git a/scripts/Makefile.modinst b/scripts/Makefile.modinst
index a4c987c23750..509d424dbbd2 100644
--- a/scripts/Makefile.modinst
+++ b/scripts/Makefile.modinst
@@ -9,7 +9,7 @@ __modinst:
include include/config/auto.conf
include $(srctree)/scripts/Kbuild.include
-modules := $(sort $(shell cat $(MODORDER)))
+modules := $(sort $(call read-file, $(MODORDER)))
ifeq ($(KBUILD_EXTMOD),)
dst := $(MODLIB)/kernel
--
2.34.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v3 4/5] kconfig: refactor Makefile to reduce process forks
2022-11-26 22:56 ` Masahiro Yamada
` (2 preceding siblings ...)
(?)
@ 2022-11-26 22:56 ` Masahiro Yamada
-1 siblings, 0 replies; 11+ messages in thread
From: Masahiro Yamada @ 2022-11-26 22:56 UTC (permalink / raw)
To: linux-kbuild; +Cc: linux-kernel, Masahiro Yamada, Nicolas Schier
Refactor Makefile and use read-file macro. For Make >= 4.2, it can read
out a file by using the built-in function.
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Reviewed-by: Nicolas Schier <nicolas@fjasle.eu>
---
(no changes since v1)
scripts/kconfig/.gitignore | 4 +++-
scripts/kconfig/Makefile | 43 +++++++++++++++++++-----------------
scripts/kconfig/gconf-cfg.sh | 7 ++++--
scripts/kconfig/mconf-cfg.sh | 25 ++++++++++++---------
scripts/kconfig/nconf-cfg.sh | 23 ++++++++++---------
scripts/kconfig/qconf-cfg.sh | 10 ++++++---
scripts/remove-stale-files | 2 ++
7 files changed, 67 insertions(+), 47 deletions(-)
diff --git a/scripts/kconfig/.gitignore b/scripts/kconfig/.gitignore
index 500e7424b3ef..c8a3f9cd52f0 100644
--- a/scripts/kconfig/.gitignore
+++ b/scripts/kconfig/.gitignore
@@ -1,5 +1,7 @@
# SPDX-License-Identifier: GPL-2.0-only
/conf
/[gmnq]conf
-/[gmnq]conf-cfg
+/[gmnq]conf-cflags
+/[gmnq]conf-libs
+/qconf-bin
/qconf-moc.cc
diff --git a/scripts/kconfig/Makefile b/scripts/kconfig/Makefile
index b8ef0fb4bbef..da7da9775a4b 100644
--- a/scripts/kconfig/Makefile
+++ b/scripts/kconfig/Makefile
@@ -159,11 +159,12 @@ conf-objs := conf.o $(common-objs)
hostprogs += nconf
nconf-objs := nconf.o nconf.gui.o $(common-objs)
-HOSTLDLIBS_nconf = $(shell . $(obj)/nconf-cfg && echo $$libs)
-HOSTCFLAGS_nconf.o = $(shell . $(obj)/nconf-cfg && echo $$cflags)
-HOSTCFLAGS_nconf.gui.o = $(shell . $(obj)/nconf-cfg && echo $$cflags)
+HOSTLDLIBS_nconf = $(call read-file, $(obj)/nconf-libs)
+HOSTCFLAGS_nconf.o = $(call read-file, $(obj)/nconf-cflags)
+HOSTCFLAGS_nconf.gui.o = $(call read-file, $(obj)/nconf-cflags)
-$(obj)/nconf.o $(obj)/nconf.gui.o: $(obj)/nconf-cfg
+$(obj)/nconf: | $(obj)/nconf-libs
+$(obj)/nconf.o $(obj)/nconf.gui.o: | $(obj)/nconf-cflags
# mconf: Used for the menuconfig target based on lxdialog
hostprogs += mconf
@@ -171,27 +172,28 @@ lxdialog := $(addprefix lxdialog/, \
checklist.o inputbox.o menubox.o textbox.o util.o yesno.o)
mconf-objs := mconf.o $(lxdialog) $(common-objs)
-HOSTLDLIBS_mconf = $(shell . $(obj)/mconf-cfg && echo $$libs)
+HOSTLDLIBS_mconf = $(call read-file, $(obj)/mconf-libs)
$(foreach f, mconf.o $(lxdialog), \
- $(eval HOSTCFLAGS_$f = $$(shell . $(obj)/mconf-cfg && echo $$$$cflags)))
+ $(eval HOSTCFLAGS_$f = $$(call read-file, $(obj)/mconf-cflags)))
-$(addprefix $(obj)/, mconf.o $(lxdialog)): $(obj)/mconf-cfg
+$(obj)/mconf: | $(obj)/mconf-libs
+$(addprefix $(obj)/, mconf.o $(lxdialog)): | $(obj)/mconf-cflags
# qconf: Used for the xconfig target based on Qt
hostprogs += qconf
qconf-cxxobjs := qconf.o qconf-moc.o
qconf-objs := images.o $(common-objs)
-HOSTLDLIBS_qconf = $(shell . $(obj)/qconf-cfg && echo $$libs)
-HOSTCXXFLAGS_qconf.o = $(shell . $(obj)/qconf-cfg && echo $$cflags)
-HOSTCXXFLAGS_qconf-moc.o = $(shell . $(obj)/qconf-cfg && echo $$cflags)
-
-$(obj)/qconf.o: $(obj)/qconf-cfg
+HOSTLDLIBS_qconf = $(call read-file, $(obj)/qconf-libs)
+HOSTCXXFLAGS_qconf.o = -std=c++11 -fPIC $(call read-file, $(obj)/qconf-cflags)
+HOSTCXXFLAGS_qconf-moc.o = -std=c++11 -fPIC $(call read-file, $(obj)/qconf-cflags)
+$(obj)/qconf: | $(obj)/qconf-libs
+$(obj)/qconf.o $(obj)/qconf-moc.o: | $(obj)/qconf-cflags
quiet_cmd_moc = MOC $@
- cmd_moc = $(shell . $(obj)/qconf-cfg && echo $$moc) $< -o $@
+ cmd_moc = $(call read-file, $(obj)/qconf-bin)/moc $< -o $@
-$(obj)/qconf-moc.cc: $(src)/qconf.h $(obj)/qconf-cfg FORCE
+$(obj)/qconf-moc.cc: $(src)/qconf.h FORCE | $(obj)/qconf-bin
$(call if_changed,moc)
targets += qconf-moc.cc
@@ -200,15 +202,16 @@ targets += qconf-moc.cc
hostprogs += gconf
gconf-objs := gconf.o images.o $(common-objs)
-HOSTLDLIBS_gconf = $(shell . $(obj)/gconf-cfg && echo $$libs)
-HOSTCFLAGS_gconf.o = $(shell . $(obj)/gconf-cfg && echo $$cflags)
+HOSTLDLIBS_gconf = $(call read-file, $(obj)/gconf-libs)
+HOSTCFLAGS_gconf.o = $(call read-file, $(obj)/gconf-cflags)
-$(obj)/gconf.o: $(obj)/gconf-cfg
+$(obj)/gconf: | $(obj)/gconf-libs
+$(obj)/gconf.o: | $(obj)/gconf-cflags
# check if necessary packages are available, and configure build flags
-filechk_conf_cfg = $(CONFIG_SHELL) $<
+cmd_conf_cfg = $< $(addprefix $(obj)/$*conf-, cflags libs bin)
-$(obj)/%conf-cfg: $(src)/%conf-cfg.sh FORCE
- $(call filechk,conf_cfg)
+$(obj)/%conf-cflags $(obj)/%conf-libs $(obj)/%conf-bin: $(src)/%conf-cfg.sh
+ $(call cmd,conf_cfg)
clean-files += *conf-cfg
diff --git a/scripts/kconfig/gconf-cfg.sh b/scripts/kconfig/gconf-cfg.sh
index cbd90c28c05f..040d8f338820 100755
--- a/scripts/kconfig/gconf-cfg.sh
+++ b/scripts/kconfig/gconf-cfg.sh
@@ -1,6 +1,9 @@
#!/bin/sh
# SPDX-License-Identifier: GPL-2.0
+cflags=$1
+libs=$2
+
PKG="gtk+-2.0 gmodule-2.0 libglade-2.0"
if [ -z "$(command -v ${HOSTPKG_CONFIG})" ]; then
@@ -26,5 +29,5 @@ if ! ${HOSTPKG_CONFIG} --atleast-version=2.0.0 gtk+-2.0; then
exit 1
fi
-echo cflags=\"$(${HOSTPKG_CONFIG} --cflags $PKG)\"
-echo libs=\"$(${HOSTPKG_CONFIG} --libs $PKG)\"
+${HOSTPKG_CONFIG} --cflags ${PKG} > ${cflags}
+${HOSTPKG_CONFIG} --libs ${PKG} > ${libs}
diff --git a/scripts/kconfig/mconf-cfg.sh b/scripts/kconfig/mconf-cfg.sh
index 025b565e0b7c..1e61f50a5905 100755
--- a/scripts/kconfig/mconf-cfg.sh
+++ b/scripts/kconfig/mconf-cfg.sh
@@ -1,19 +1,22 @@
#!/bin/sh
# SPDX-License-Identifier: GPL-2.0
+cflags=$1
+libs=$2
+
PKG="ncursesw"
PKG2="ncurses"
if [ -n "$(command -v ${HOSTPKG_CONFIG})" ]; then
if ${HOSTPKG_CONFIG} --exists $PKG; then
- echo cflags=\"$(${HOSTPKG_CONFIG} --cflags $PKG)\"
- echo libs=\"$(${HOSTPKG_CONFIG} --libs $PKG)\"
+ ${HOSTPKG_CONFIG} --cflags ${PKG} > ${cflags}
+ ${HOSTPKG_CONFIG} --libs ${PKG} > ${libs}
exit 0
fi
- if ${HOSTPKG_CONFIG} --exists $PKG2; then
- echo cflags=\"$(${HOSTPKG_CONFIG} --cflags $PKG2)\"
- echo libs=\"$(${HOSTPKG_CONFIG} --libs $PKG2)\"
+ if ${HOSTPKG_CONFIG} --exists ${PKG2}; then
+ ${HOSTPKG_CONFIG} --cflags ${PKG2} > ${cflags}
+ ${HOSTPKG_CONFIG} --libs ${PKG2} > ${libs}
exit 0
fi
fi
@@ -22,22 +25,22 @@ fi
# (Even if it is installed, some distributions such as openSUSE cannot
# find ncurses by pkg-config.)
if [ -f /usr/include/ncursesw/ncurses.h ]; then
- echo cflags=\"-D_GNU_SOURCE -I/usr/include/ncursesw\"
- echo libs=\"-lncursesw\"
+ echo -D_GNU_SOURCE -I/usr/include/ncursesw > ${cflags}
+ echo -lncursesw > ${libs}
exit 0
fi
if [ -f /usr/include/ncurses/ncurses.h ]; then
- echo cflags=\"-D_GNU_SOURCE -I/usr/include/ncurses\"
- echo libs=\"-lncurses\"
+ echo -D_GNU_SOURCE -I/usr/include/ncurses > ${cflags}
+ echo -lncurses > ${libs}
exit 0
fi
# As a final fallback before giving up, check if $HOSTCC knows of a default
# ncurses installation (e.g. from a vendor-specific sysroot).
if echo '#include <ncurses.h>' | ${HOSTCC} -E - >/dev/null 2>&1; then
- echo cflags=\"-D_GNU_SOURCE\"
- echo libs=\"-lncurses\"
+ echo -D_GNU_SOURCE > ${cflags}
+ echo -lncurses > ${libs}
exit 0
fi
diff --git a/scripts/kconfig/nconf-cfg.sh b/scripts/kconfig/nconf-cfg.sh
index 3a10bac2adb3..f871a2160e36 100755
--- a/scripts/kconfig/nconf-cfg.sh
+++ b/scripts/kconfig/nconf-cfg.sh
@@ -1,19 +1,22 @@
#!/bin/sh
# SPDX-License-Identifier: GPL-2.0
+cflags=$1
+libs=$2
+
PKG="ncursesw menuw panelw"
PKG2="ncurses menu panel"
if [ -n "$(command -v ${HOSTPKG_CONFIG})" ]; then
if ${HOSTPKG_CONFIG} --exists $PKG; then
- echo cflags=\"$(${HOSTPKG_CONFIG} --cflags $PKG)\"
- echo libs=\"$(${HOSTPKG_CONFIG} --libs $PKG)\"
+ ${HOSTPKG_CONFIG} --cflags ${PKG} > ${cflags}
+ ${HOSTPKG_CONFIG} --libs ${PKG} > ${libs}
exit 0
fi
if ${HOSTPKG_CONFIG} --exists $PKG2; then
- echo cflags=\"$(${HOSTPKG_CONFIG} --cflags $PKG2)\"
- echo libs=\"$(${HOSTPKG_CONFIG} --libs $PKG2)\"
+ ${HOSTPKG_CONFIG} --cflags ${PKG2} > ${cflags}
+ ${HOSTPKG_CONFIG} --libs ${PKG2} > ${libs}
exit 0
fi
fi
@@ -22,20 +25,20 @@ fi
# (Even if it is installed, some distributions such as openSUSE cannot
# find ncurses by pkg-config.)
if [ -f /usr/include/ncursesw/ncurses.h ]; then
- echo cflags=\"-D_GNU_SOURCE -I/usr/include/ncursesw\"
- echo libs=\"-lncursesw -lmenuw -lpanelw\"
+ echo -D_GNU_SOURCE -I/usr/include/ncursesw > ${cflags}
+ echo -lncursesw -lmenuw -lpanelw > ${libs}
exit 0
fi
if [ -f /usr/include/ncurses/ncurses.h ]; then
- echo cflags=\"-D_GNU_SOURCE -I/usr/include/ncurses\"
- echo libs=\"-lncurses -lmenu -lpanel\"
+ echo -D_GNU_SOURCE -I/usr/include/ncurses > ${cflags}
+ echo -lncurses -lmenu -lpanel > ${libs}
exit 0
fi
if [ -f /usr/include/ncurses.h ]; then
- echo cflags=\"-D_GNU_SOURCE\"
- echo libs=\"-lncurses -lmenu -lpanel\"
+ echo -D_GNU_SOURCE > ${cflags}
+ echo -lncurses -lmenu -lpanel > ${libs}
exit 0
fi
diff --git a/scripts/kconfig/qconf-cfg.sh b/scripts/kconfig/qconf-cfg.sh
index ad652cb53947..117f36e568fc 100755
--- a/scripts/kconfig/qconf-cfg.sh
+++ b/scripts/kconfig/qconf-cfg.sh
@@ -1,6 +1,10 @@
#!/bin/sh
# SPDX-License-Identifier: GPL-2.0
+cflags=$1
+libs=$2
+bin=$3
+
PKG="Qt5Core Qt5Gui Qt5Widgets"
if [ -z "$(command -v ${HOSTPKG_CONFIG})" ]; then
@@ -11,9 +15,9 @@ if [ -z "$(command -v ${HOSTPKG_CONFIG})" ]; then
fi
if ${HOSTPKG_CONFIG} --exists $PKG; then
- echo cflags=\"-std=c++11 -fPIC $(${HOSTPKG_CONFIG} --cflags $PKG)\"
- echo libs=\"$(${HOSTPKG_CONFIG} --libs $PKG)\"
- echo moc=\"$(${HOSTPKG_CONFIG} --variable=host_bins Qt5Core)/moc\"
+ ${HOSTPKG_CONFIG} --cflags ${PKG} > ${cflags}
+ ${HOSTPKG_CONFIG} --libs ${PKG} > ${libs}
+ ${HOSTPKG_CONFIG} --variable=host_bins Qt5Core > ${bin}
exit 0
fi
diff --git a/scripts/remove-stale-files b/scripts/remove-stale-files
index ccadfa3afb2b..64b14aa5aebf 100755
--- a/scripts/remove-stale-files
+++ b/scripts/remove-stale-files
@@ -47,3 +47,5 @@ rm -f arch/riscv/purgatory/kexec-purgatory.c
rm -f scripts/extract-cert
rm -f arch/x86/purgatory/kexec-purgatory.c
+
+rm -f scripts/kconfig/[gmnq]conf-cfg
--
2.34.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v3 5/5] kbuild: check Make version
2022-11-26 22:56 ` Masahiro Yamada
` (3 preceding siblings ...)
(?)
@ 2022-11-26 22:56 ` Masahiro Yamada
-1 siblings, 0 replies; 11+ messages in thread
From: Masahiro Yamada @ 2022-11-26 22:56 UTC (permalink / raw)
To: linux-kbuild
Cc: linux-kernel, Masahiro Yamada, Nicolas Schier, Nathan Chancellor,
Nick Desaulniers
This is implemented based on test-le. It will work until GNU Make 10
is released.
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Reviewed-by: Nicolas Schier <nicolas@fjasle.eu>
---
(no changes since v1)
Makefile | 3 +++
1 file changed, 3 insertions(+)
diff --git a/Makefile b/Makefile
index 60ce9dcafc72..797fafbc1b45 100644
--- a/Makefile
+++ b/Makefile
@@ -368,6 +368,9 @@ else # !mixed-build
include $(srctree)/scripts/Kbuild.include
+# Check for the minimal Make version
+$(if $(call test-lt, $(MAKE_VERSION), 3.82), $(error Make $(MAKE_VERSION) is too old))
+
# Read KERNELRELEASE from include/config/kernel.release (if it exists)
KERNELRELEASE = $(call read-file, include/config/kernel.release)
KERNELVERSION = $(VERSION)$(if $(PATCHLEVEL),.$(PATCHLEVEL)$(if $(SUBLEVEL),.$(SUBLEVEL)))$(EXTRAVERSION)
--
2.34.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH v3 3/5] kbuild: add read-file macro
2022-11-26 22:56 ` [PATCH v3 3/5] kbuild: add read-file macro Masahiro Yamada
@ 2022-12-07 15:40 ` Alexander Lobakin
2022-12-07 16:22 ` Alexander Lobakin
0 siblings, 1 reply; 11+ messages in thread
From: Alexander Lobakin @ 2022-12-07 15:40 UTC (permalink / raw)
To: Masahiro Yamada
Cc: Alexander Lobakin, linux-kbuild, linux-kernel, Nicolas Schier,
Nathan Chancellor, Nick Desaulniers
From: Masahiro Yamada <masahiroy@kernel.org>
Date: Sun, 27 Nov 2022 07:56:22 +0900
> Since GNU Make 4.2, $(file ...) supports the read operater '<', which
> is useful to read a file without forking any process. No warning is
> shown even if the input file is missing.
>
> For older Make versions, it falls back to the cat command.
>
> The added ifeq will break when GNU Make 4.10 or 10.0 is released.
> It will take a long time if the current release pace continues.
>
> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
> Reviewed-by: Nicolas Schier <nicolas@fjasle.eu>
> ---
>
> (no changes since v1)
>
> Makefile | 2 +-
> scripts/Kbuild.include | 15 +++++++++++++++
> scripts/Makefile.modfinal | 2 +-
> scripts/Makefile.modinst | 2 +-
> 4 files changed, 18 insertions(+), 3 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index eb80332f7b51..60ce9dcafc72 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -369,7 +369,7 @@ else # !mixed-build
> include $(srctree)/scripts/Kbuild.include
>
> # Read KERNELRELEASE from include/config/kernel.release (if it exists)
> -KERNELRELEASE = $(shell cat include/config/kernel.release 2> /dev/null)
> +KERNELRELEASE = $(call read-file, include/config/kernel.release)
> KERNELVERSION = $(VERSION)$(if $(PATCHLEVEL),.$(PATCHLEVEL)$(if $(SUBLEVEL),.$(SUBLEVEL)))$(EXTRAVERSION)
> export VERSION PATCHLEVEL SUBLEVEL KERNELRELEASE KERNELVERSION
>
> diff --git a/scripts/Kbuild.include b/scripts/Kbuild.include
> index 4b8cf464b53b..55c2243f91c8 100644
> --- a/scripts/Kbuild.include
> +++ b/scripts/Kbuild.include
> @@ -10,6 +10,10 @@ empty :=
> space := $(empty) $(empty)
> space_escape := _-_SPACE_-_
> pound := \#
> +define newline
> +
> +
> +endef
>
> ###
> # Comparison macros.
> @@ -55,6 +59,17 @@ stringify = $(squote)$(quote)$1$(quote)$(squote)
> kbuild-dir = $(if $(filter /%,$(src)),$(src),$(srctree)/$(src))
> kbuild-file = $(or $(wildcard $(kbuild-dir)/Kbuild),$(kbuild-dir)/Makefile)
>
> +###
> +# Read a file, replacing newlines with spaces
> +#
> +# This ifeq will break when GNU Make 4.10 is released.
> +# Remove this conditional until then.
> +ifeq ($(call test-ge, $(MAKE_VERSION), 4.2),y)
> +read-file = $(subst $(newline),$(space),$(file < $1))
> +else
> +read-file = $(shell cat $1 2>/dev/null)
> +endif
> +
Great stuff. Used it in my upcoming series to simplify things, works
as expected.
sed-syms = $(subst $(space),\|,$(foreach file,$(sym-files-y),$(call read-file,$(file))))
The only thing that came to my mind while I was implementing the
oneliner above: maybe add ability to read multiple files? For now,
I used a foreach, could it be somehow incorporated into read-file
already?
Besides that:
Reviewed-and-tested-by: Alexander Lobakin <alexandr.lobakin@intel.com>
> ###
> # Easy method for doing a status message
> kecho := :
> diff --git a/scripts/Makefile.modfinal b/scripts/Makefile.modfinal
> index 25bedd83644b..7252f6cf7837 100644
> --- a/scripts/Makefile.modfinal
> +++ b/scripts/Makefile.modfinal
> @@ -13,7 +13,7 @@ include $(srctree)/scripts/Kbuild.include
> include $(srctree)/scripts/Makefile.lib
>
> # find all modules listed in modules.order
> -modules := $(sort $(shell cat $(MODORDER)))
> +modules := $(sort $(call read-file, $(MODORDER)))
>
> __modfinal: $(modules)
> @:
> diff --git a/scripts/Makefile.modinst b/scripts/Makefile.modinst
> index a4c987c23750..509d424dbbd2 100644
> --- a/scripts/Makefile.modinst
> +++ b/scripts/Makefile.modinst
> @@ -9,7 +9,7 @@ __modinst:
> include include/config/auto.conf
> include $(srctree)/scripts/Kbuild.include
>
> -modules := $(sort $(shell cat $(MODORDER)))
> +modules := $(sort $(call read-file, $(MODORDER)))
>
> ifeq ($(KBUILD_EXTMOD),)
> dst := $(MODLIB)/kernel
> --
> 2.34.1
Thanks,
Olek
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v3 3/5] kbuild: add read-file macro
2022-12-07 15:40 ` Alexander Lobakin
@ 2022-12-07 16:22 ` Alexander Lobakin
2022-12-10 14:10 ` Masahiro Yamada
0 siblings, 1 reply; 11+ messages in thread
From: Alexander Lobakin @ 2022-12-07 16:22 UTC (permalink / raw)
To: Masahiro Yamada
Cc: Alexander Lobakin, linux-kbuild, linux-kernel, Nicolas Schier,
Nathan Chancellor, Nick Desaulniers
From: Alexander Lobakin <alexandr.lobakin@intel.com>
Date: Wed, 7 Dec 2022 16:40:44 +0100
> From: Masahiro Yamada <masahiroy@kernel.org>
> Date: Sun, 27 Nov 2022 07:56:22 +0900
>
> > Since GNU Make 4.2, $(file ...) supports the read operater '<', which
> > is useful to read a file without forking any process. No warning is
> > shown even if the input file is missing.
[...]
> Great stuff. Used it in my upcoming series to simplify things, works
> as expected.
>
> sed-syms = $(subst $(space),\|,$(foreach file,$(sym-files-y),$(call read-file,$(file))))
>
> The only thing that came to my mind while I was implementing the
> oneliner above: maybe add ability to read multiple files? For now,
> I used a foreach, could it be somehow incorporated into read-file
> already?
Oh, nevermind. This one also works:
sed-syms = $(subst $(space),\|,$(call read-file,$(sym-files-y)))
So I believe read-file works for an arbitrary number of files.
>
> Besides that:
>
> Reviewed-and-tested-by: Alexander Lobakin <alexandr.lobakin@intel.com>
[...]
> > --
> > 2.34.1
>
> Thanks,
> Olek
Thanks!
Olek
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v3 3/5] kbuild: add read-file macro
2022-12-07 16:22 ` Alexander Lobakin
@ 2022-12-10 14:10 ` Masahiro Yamada
2022-12-10 21:02 ` Nicolas Schier
0 siblings, 1 reply; 11+ messages in thread
From: Masahiro Yamada @ 2022-12-10 14:10 UTC (permalink / raw)
To: Alexander Lobakin
Cc: linux-kbuild, linux-kernel, Nicolas Schier, Nathan Chancellor,
Nick Desaulniers
On Thu, Dec 8, 2022 at 1:25 AM Alexander Lobakin
<alexandr.lobakin@intel.com> wrote:
>
> From: Alexander Lobakin <alexandr.lobakin@intel.com>
> Date: Wed, 7 Dec 2022 16:40:44 +0100
>
> > From: Masahiro Yamada <masahiroy@kernel.org>
> > Date: Sun, 27 Nov 2022 07:56:22 +0900
> >
> > > Since GNU Make 4.2, $(file ...) supports the read operater '<', which
> > > is useful to read a file without forking any process. No warning is
> > > shown even if the input file is missing.
>
> [...]
>
> > Great stuff. Used it in my upcoming series to simplify things, works
> > as expected.
> >
> > sed-syms = $(subst $(space),\|,$(foreach file,$(sym-files-y),$(call read-file,$(file))))
> >
> > The only thing that came to my mind while I was implementing the
> > oneliner above: maybe add ability to read multiple files? For now,
> > I used a foreach, could it be somehow incorporated into read-file
> > already?
>
> Oh, nevermind. This one also works:
>
> sed-syms = $(subst $(space),\|,$(call read-file,$(sym-files-y)))
>
> So I believe read-file works for an arbitrary number of files.
Really?
In my understanding, $(call read-file, foo bar) reads a single file "foo bar".
(a space in the file name).
>
> >
> > Besides that:
> >
> > Reviewed-and-tested-by: Alexander Lobakin <alexandr.lobakin@intel.com>
>
> [...]
>
> > > --
> > > 2.34.1
> >
> > Thanks,
> > Olek
>
> Thanks!
> Olek
--
Best Regards
Masahiro Yamada
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v3 3/5] kbuild: add read-file macro
2022-12-10 14:10 ` Masahiro Yamada
@ 2022-12-10 21:02 ` Nicolas Schier
2022-12-12 14:37 ` Alexander Lobakin
0 siblings, 1 reply; 11+ messages in thread
From: Nicolas Schier @ 2022-12-10 21:02 UTC (permalink / raw)
To: Masahiro Yamada
Cc: Alexander Lobakin, linux-kbuild, linux-kernel, Nathan Chancellor,
Nick Desaulniers
On Sat, Dec 10, 2022 at 11:10:12PM +0900 Masahiro Yamada wrote:
> On Thu, Dec 8, 2022 at 1:25 AM Alexander Lobakin
> <alexandr.lobakin@intel.com> wrote:
> >
> > From: Alexander Lobakin <alexandr.lobakin@intel.com>
> > Date: Wed, 7 Dec 2022 16:40:44 +0100
> >
> > > From: Masahiro Yamada <masahiroy@kernel.org>
> > > Date: Sun, 27 Nov 2022 07:56:22 +0900
> > >
> > > > Since GNU Make 4.2, $(file ...) supports the read operater '<', which
> > > > is useful to read a file without forking any process. No warning is
> > > > shown even if the input file is missing.
> >
> > [...]
> >
> > > Great stuff. Used it in my upcoming series to simplify things, works
> > > as expected.
> > >
> > > sed-syms = $(subst $(space),\|,$(foreach file,$(sym-files-y),$(call read-file,$(file))))
> > >
> > > The only thing that came to my mind while I was implementing the
> > > oneliner above: maybe add ability to read multiple files? For now,
> > > I used a foreach, could it be somehow incorporated into read-file
> > > already?
> >
> > Oh, nevermind. This one also works:
> >
> > sed-syms = $(subst $(space),\|,$(call read-file,$(sym-files-y)))
> >
> > So I believe read-file works for an arbitrary number of files.
>
>
>
> Really?
>
>
> In my understanding, $(call read-file, foo bar) reads a single file "foo bar".
> (a space in the file name).
yes, except for make < 4.2, due to:
read-file = $(shell cat $1 2>/dev/null)
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v3 3/5] kbuild: add read-file macro
2022-12-10 21:02 ` Nicolas Schier
@ 2022-12-12 14:37 ` Alexander Lobakin
0 siblings, 0 replies; 11+ messages in thread
From: Alexander Lobakin @ 2022-12-12 14:37 UTC (permalink / raw)
To: Nicolas Schier
Cc: Alexander Lobakin, Masahiro Yamada, linux-kbuild, linux-kernel,
Nathan Chancellor, Nick Desaulniers
From: Nicolas Schier <nicolas@fjasle.eu>
Date: Sat, 10 Dec 2022 22:02:48 +0100
> On Sat, Dec 10, 2022 at 11:10:12PM +0900 Masahiro Yamada wrote:
> > On Thu, Dec 8, 2022 at 1:25 AM Alexander Lobakin
> > <alexandr.lobakin@intel.com> wrote:
> > >
> > > From: Alexander Lobakin <alexandr.lobakin@intel.com>
> > > Date: Wed, 7 Dec 2022 16:40:44 +0100
> > >
> > > > From: Masahiro Yamada <masahiroy@kernel.org>
> > > > Date: Sun, 27 Nov 2022 07:56:22 +0900
> > > >
> > > > > Since GNU Make 4.2, $(file ...) supports the read operater '<', which
> > > > > is useful to read a file without forking any process. No warning is
> > > > > shown even if the input file is missing.
> > >
> > > [...]
> > >
> > > > Great stuff. Used it in my upcoming series to simplify things, works
> > > > as expected.
> > > >
> > > > sed-syms = $(subst $(space),\|,$(foreach file,$(sym-files-y),$(call read-file,$(file))))
> > > >
> > > > The only thing that came to my mind while I was implementing the
> > > > oneliner above: maybe add ability to read multiple files? For now,
> > > > I used a foreach, could it be somehow incorporated into read-file
> > > > already?
> > >
> > > Oh, nevermind. This one also works:
> > >
> > > sed-syms = $(subst $(space),\|,$(call read-file,$(sym-files-y)))
> > >
> > > So I believe read-file works for an arbitrary number of files.
> >
> >
> >
> > Really?
> >
> >
> > In my understanding, $(call read-file, foo bar) reads a single file "foo bar".
> > (a space in the file name).
>
> yes, except for make < 4.2, due to:
>
> read-file = $(shell cat $1 2>/dev/null)
$ make --version
GNU Make 4.3
Built for x86_64-redhat-linux-gnu
But breh, I forgot to port test-ge, so Kbuild was always calling
cat :D :clownface:
Correct, current implementation (as of v3) reads only single file.
Not sure whether read-file should handle multiple at a time.
Thanks,
Olek
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2022-12-12 14:38 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-11-26 22:56 [PATCH v3 1/5] kbuild: add test-{le,ge,lt,gt} macros Masahiro Yamada
2022-11-26 22:56 ` Masahiro Yamada
2022-11-26 22:56 ` [PATCH v3 2/5] kbuild: implement {gcc,clang}-min-version only with built-in functions Masahiro Yamada
2022-11-26 22:56 ` [PATCH v3 3/5] kbuild: add read-file macro Masahiro Yamada
2022-12-07 15:40 ` Alexander Lobakin
2022-12-07 16:22 ` Alexander Lobakin
2022-12-10 14:10 ` Masahiro Yamada
2022-12-10 21:02 ` Nicolas Schier
2022-12-12 14:37 ` Alexander Lobakin
2022-11-26 22:56 ` [PATCH v3 4/5] kconfig: refactor Makefile to reduce process forks Masahiro Yamada
2022-11-26 22:56 ` [PATCH v3 5/5] kbuild: check Make version Masahiro Yamada
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.