* [PATCH v2 0/2] KVM: selftests: Use $(SRCARCH) and share definition with top-level Makefile
@ 2025-07-24 21:31 David Matlack
2025-07-24 21:31 ` [PATCH v2 1/2] Revert "KVM: selftests: Override ARCH for x86_64 instead of using ARCH_DIR" David Matlack
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: David Matlack @ 2025-07-24 21:31 UTC (permalink / raw)
To: Paolo Bonzini
Cc: Albert Ou, Alexandre Ghiti, kvm, linux-riscv,
Muhammad Usama Anjum, Palmer Dabbelt, Paul Walmsley,
Sean Christopherson, David Matlack
This series switches the KVM selftests Makefile to use $(SRCARCH)
instead of $(ARCH) to fix a build issue when ARCH=x86_64 is specified on
the command line.
v1: https://lore.kernel.org/kvm/20250430224720.1882145-1-dmatlack@google.com/
- Split out the revert of commit 9af04539d474 ("KVM: selftests:
Override ARCH for x86_64 instead of using ARCH_DIR") from the rename
to SRCARCH
David Matlack (2):
Revert "KVM: selftests: Override ARCH for x86_64 instead of using
ARCH_DIR"
KVM: selftests: Rename $(ARCH_DIR) to $(SRCARCH)
tools/testing/selftests/kvm/Makefile | 8 +++++---
tools/testing/selftests/kvm/Makefile.kvm | 26 ++++++++++++------------
2 files changed, 18 insertions(+), 16 deletions(-)
base-commit: 79150772457f4d45e38b842d786240c36bb1f97f
--
2.50.1.470.g6ba607880d-goog
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v2 1/2] Revert "KVM: selftests: Override ARCH for x86_64 instead of using ARCH_DIR"
2025-07-24 21:31 [PATCH v2 0/2] KVM: selftests: Use $(SRCARCH) and share definition with top-level Makefile David Matlack
@ 2025-07-24 21:31 ` David Matlack
2025-07-24 21:31 ` [PATCH v2 2/2] KVM: selftests: Rename $(ARCH_DIR) to $(SRCARCH) David Matlack
2025-07-24 21:32 ` [PATCH v2 0/2] KVM: selftests: Use $(SRCARCH) and share definition with top-level Makefile David Matlack
2 siblings, 0 replies; 4+ messages in thread
From: David Matlack @ 2025-07-24 21:31 UTC (permalink / raw)
To: Paolo Bonzini
Cc: Albert Ou, Alexandre Ghiti, kvm, linux-riscv,
Muhammad Usama Anjum, Palmer Dabbelt, Paul Walmsley,
Sean Christopherson, David Matlack
This reverts commit 9af04539d474dda4984ff4909d4568e6123c8cba.
If ARCH is set on the command line then Make will skip the variable
assignment to convert x86_64 to x86. i.e. Revert this commit because it
breaks builds where ARCH=x86_64 is specified on the command line.
Fixes: 9af04539d474 ("KVM: selftests: Override ARCH for x86_64 instead of using ARCH_DIR")
Signed-off-by: David Matlack <dmatlack@google.com>
---
tools/testing/selftests/kvm/Makefile | 4 +++-
tools/testing/selftests/kvm/Makefile.kvm | 26 ++++++++++++------------
2 files changed, 16 insertions(+), 14 deletions(-)
diff --git a/tools/testing/selftests/kvm/Makefile b/tools/testing/selftests/kvm/Makefile
index d9fffe06d3ea..7aad782aeb1d 100644
--- a/tools/testing/selftests/kvm/Makefile
+++ b/tools/testing/selftests/kvm/Makefile
@@ -6,7 +6,9 @@ ARCH ?= $(SUBARCH)
ifeq ($(ARCH),$(filter $(ARCH),arm64 s390 riscv x86 x86_64 loongarch))
# Top-level selftests allows ARCH=x86_64 :-(
ifeq ($(ARCH),x86_64)
- ARCH := x86
+ ARCH_DIR := x86
+else
+ ARCH_DIR := $(ARCH)
endif
include Makefile.kvm
else
diff --git a/tools/testing/selftests/kvm/Makefile.kvm b/tools/testing/selftests/kvm/Makefile.kvm
index e11ed9e59ab5..d770c2f244da 100644
--- a/tools/testing/selftests/kvm/Makefile.kvm
+++ b/tools/testing/selftests/kvm/Makefile.kvm
@@ -215,10 +215,10 @@ TEST_GEN_PROGS_loongarch += set_memory_region_test
SPLIT_TESTS += arch_timer
SPLIT_TESTS += get-reg-list
-TEST_PROGS += $(TEST_PROGS_$(ARCH))
-TEST_GEN_PROGS += $(TEST_GEN_PROGS_$(ARCH))
-TEST_GEN_PROGS_EXTENDED += $(TEST_GEN_PROGS_EXTENDED_$(ARCH))
-LIBKVM += $(LIBKVM_$(ARCH))
+TEST_PROGS += $(TEST_PROGS_$(ARCH_DIR))
+TEST_GEN_PROGS += $(TEST_GEN_PROGS_$(ARCH_DIR))
+TEST_GEN_PROGS_EXTENDED += $(TEST_GEN_PROGS_EXTENDED_$(ARCH_DIR))
+LIBKVM += $(LIBKVM_$(ARCH_DIR))
OVERRIDE_TARGETS = 1
@@ -231,24 +231,24 @@ include ../cgroup/lib/libcgroup.mk
INSTALL_HDR_PATH = $(top_srcdir)/usr
LINUX_HDR_PATH = $(INSTALL_HDR_PATH)/include/
LINUX_TOOL_INCLUDE = $(top_srcdir)/tools/include
-LINUX_TOOL_ARCH_INCLUDE = $(top_srcdir)/tools/arch/$(ARCH)/include
+LINUX_TOOL_ARCH_INCLUDE = $(top_srcdir)/tools/arch/$(ARCH_DIR)/include
CFLAGS += -Wall -Wstrict-prototypes -Wuninitialized -O2 -g -std=gnu99 \
-Wno-gnu-variable-sized-type-not-at-end -MD -MP -DCONFIG_64BIT \
-fno-builtin-memcmp -fno-builtin-memcpy \
-fno-builtin-memset -fno-builtin-strnlen \
-fno-stack-protector -fno-PIE -fno-strict-aliasing \
-I$(LINUX_TOOL_INCLUDE) -I$(LINUX_TOOL_ARCH_INCLUDE) \
- -I$(LINUX_HDR_PATH) -Iinclude -I$(<D) -Iinclude/$(ARCH) \
+ -I$(LINUX_HDR_PATH) -Iinclude -I$(<D) -Iinclude/$(ARCH_DIR) \
-I ../rseq -I.. $(EXTRA_CFLAGS) $(KHDR_INCLUDES)
-ifeq ($(ARCH),s390)
+ifeq ($(ARCH_DIR),s390)
CFLAGS += -march=z10
endif
-ifeq ($(ARCH),x86)
+ifeq ($(ARCH_DIR),x86)
ifeq ($(shell echo "void foo(void) { }" | $(CC) -march=x86-64-v2 -x c - -c -o /dev/null 2>/dev/null; echo "$$?"),0)
CFLAGS += -march=x86-64-v2
endif
endif
-ifeq ($(ARCH),arm64)
+ifeq ($(ARCH_DIR),arm64)
tools_dir := $(top_srcdir)/tools
arm64_tools_dir := $(tools_dir)/arch/arm64/tools/
@@ -282,7 +282,7 @@ LIBKVM_S_OBJ := $(patsubst %.S, $(OUTPUT)/%.o, $(LIBKVM_S))
LIBKVM_STRING_OBJ := $(patsubst %.c, $(OUTPUT)/%.o, $(LIBKVM_STRING))
LIBKVM_OBJS = $(LIBKVM_C_OBJ) $(LIBKVM_S_OBJ) $(LIBKVM_STRING_OBJ) $(LIBCGROUP_O)
SPLIT_TEST_GEN_PROGS := $(patsubst %, $(OUTPUT)/%, $(SPLIT_TESTS))
-SPLIT_TEST_GEN_OBJ := $(patsubst %, $(OUTPUT)/$(ARCH)/%.o, $(SPLIT_TESTS))
+SPLIT_TEST_GEN_OBJ := $(patsubst %, $(OUTPUT)/$(ARCH_DIR)/%.o, $(SPLIT_TESTS))
TEST_GEN_OBJ = $(patsubst %, %.o, $(TEST_GEN_PROGS))
TEST_GEN_OBJ += $(patsubst %, %.o, $(TEST_GEN_PROGS_EXTENDED))
@@ -291,7 +291,7 @@ TEST_DEP_FILES += $(patsubst %.o, %.d, $(LIBKVM_OBJS))
TEST_DEP_FILES += $(patsubst %.o, %.d, $(SPLIT_TEST_GEN_OBJ))
-include $(TEST_DEP_FILES)
-$(shell mkdir -p $(sort $(OUTPUT)/$(ARCH) $(dir $(LIBKVM_C_OBJ) $(LIBKVM_S_OBJ))))
+$(shell mkdir -p $(sort $(OUTPUT)/$(ARCH_DIR) $(dir $(LIBKVM_C_OBJ) $(LIBKVM_S_OBJ))))
$(filter-out $(SPLIT_TEST_GEN_PROGS), $(TEST_GEN_PROGS)) \
$(TEST_GEN_PROGS_EXTENDED): %: %.o
@@ -299,9 +299,9 @@ $(TEST_GEN_PROGS_EXTENDED): %: %.o
$(TEST_GEN_OBJ): $(OUTPUT)/%.o: %.c
$(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c $< -o $@
-$(SPLIT_TEST_GEN_PROGS): $(OUTPUT)/%: $(OUTPUT)/%.o $(OUTPUT)/$(ARCH)/%.o
+$(SPLIT_TEST_GEN_PROGS): $(OUTPUT)/%: $(OUTPUT)/%.o $(OUTPUT)/$(ARCH_DIR)/%.o
$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $(TARGET_ARCH) $^ $(LDLIBS) -o $@
-$(SPLIT_TEST_GEN_OBJ): $(OUTPUT)/$(ARCH)/%.o: $(ARCH)/%.c
+$(SPLIT_TEST_GEN_OBJ): $(OUTPUT)/$(ARCH_DIR)/%.o: $(ARCH_DIR)/%.c
$(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c $< -o $@
EXTRA_CLEAN += $(GEN_HDRS) \
--
2.50.1.470.g6ba607880d-goog
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH v2 2/2] KVM: selftests: Rename $(ARCH_DIR) to $(SRCARCH)
2025-07-24 21:31 [PATCH v2 0/2] KVM: selftests: Use $(SRCARCH) and share definition with top-level Makefile David Matlack
2025-07-24 21:31 ` [PATCH v2 1/2] Revert "KVM: selftests: Override ARCH for x86_64 instead of using ARCH_DIR" David Matlack
@ 2025-07-24 21:31 ` David Matlack
2025-07-24 21:32 ` [PATCH v2 0/2] KVM: selftests: Use $(SRCARCH) and share definition with top-level Makefile David Matlack
2 siblings, 0 replies; 4+ messages in thread
From: David Matlack @ 2025-07-24 21:31 UTC (permalink / raw)
To: Paolo Bonzini
Cc: Albert Ou, Alexandre Ghiti, kvm, linux-riscv,
Muhammad Usama Anjum, Palmer Dabbelt, Paul Walmsley,
Sean Christopherson, David Matlack
Rename $(ARCH_DIR) to $(SRCARCH) to match the top-level kernel Makefile
which uses $(SRCARCH) to represent the same thing that $(ARCH_DIR)
represents in the KVM selftests.
This change also paves the way for eventually sharing the code construct
$(SRCARCH) with the top-level kernel Makefile instead of KVM having its
own logic e.g. to convert x86_64 to x86.
While here, drop the comment about the top-level selftests allowing
ARCH=x86_64. The kernel itself allows/expects ARCH=x86_64 so it's
reasonable to expect the KVM selftests to handle it as well.
Signed-off-by: David Matlack <dmatlack@google.com>
---
tools/testing/selftests/kvm/Makefile | 10 ++++-----
tools/testing/selftests/kvm/Makefile.kvm | 26 ++++++++++++------------
2 files changed, 18 insertions(+), 18 deletions(-)
diff --git a/tools/testing/selftests/kvm/Makefile b/tools/testing/selftests/kvm/Makefile
index 7aad782aeb1d..340657052fc3 100644
--- a/tools/testing/selftests/kvm/Makefile
+++ b/tools/testing/selftests/kvm/Makefile
@@ -1,15 +1,15 @@
# SPDX-License-Identifier: GPL-2.0-only
top_srcdir = ../../../..
+
include $(top_srcdir)/scripts/subarch.include
ARCH ?= $(SUBARCH)
+SRCARCH := $(ARCH)
-ifeq ($(ARCH),$(filter $(ARCH),arm64 s390 riscv x86 x86_64 loongarch))
-# Top-level selftests allows ARCH=x86_64 :-(
ifeq ($(ARCH),x86_64)
- ARCH_DIR := x86
-else
- ARCH_DIR := $(ARCH)
+ SRCARCH := x86
endif
+
+ifeq ($(SRCARCH),$(filter $(SRCARCH),arm64 s390 riscv x86 loongarch))
include Makefile.kvm
else
# Empty targets for unsupported architectures
diff --git a/tools/testing/selftests/kvm/Makefile.kvm b/tools/testing/selftests/kvm/Makefile.kvm
index d770c2f244da..d2729e678025 100644
--- a/tools/testing/selftests/kvm/Makefile.kvm
+++ b/tools/testing/selftests/kvm/Makefile.kvm
@@ -215,10 +215,10 @@ TEST_GEN_PROGS_loongarch += set_memory_region_test
SPLIT_TESTS += arch_timer
SPLIT_TESTS += get-reg-list
-TEST_PROGS += $(TEST_PROGS_$(ARCH_DIR))
-TEST_GEN_PROGS += $(TEST_GEN_PROGS_$(ARCH_DIR))
-TEST_GEN_PROGS_EXTENDED += $(TEST_GEN_PROGS_EXTENDED_$(ARCH_DIR))
-LIBKVM += $(LIBKVM_$(ARCH_DIR))
+TEST_PROGS += $(TEST_PROGS_$(SRCARCH))
+TEST_GEN_PROGS += $(TEST_GEN_PROGS_$(SRCARCH))
+TEST_GEN_PROGS_EXTENDED += $(TEST_GEN_PROGS_EXTENDED_$(SRCARCH))
+LIBKVM += $(LIBKVM_$(SRCARCH))
OVERRIDE_TARGETS = 1
@@ -231,24 +231,24 @@ include ../cgroup/lib/libcgroup.mk
INSTALL_HDR_PATH = $(top_srcdir)/usr
LINUX_HDR_PATH = $(INSTALL_HDR_PATH)/include/
LINUX_TOOL_INCLUDE = $(top_srcdir)/tools/include
-LINUX_TOOL_ARCH_INCLUDE = $(top_srcdir)/tools/arch/$(ARCH_DIR)/include
+LINUX_TOOL_ARCH_INCLUDE = $(top_srcdir)/tools/arch/$(SRCARCH)/include
CFLAGS += -Wall -Wstrict-prototypes -Wuninitialized -O2 -g -std=gnu99 \
-Wno-gnu-variable-sized-type-not-at-end -MD -MP -DCONFIG_64BIT \
-fno-builtin-memcmp -fno-builtin-memcpy \
-fno-builtin-memset -fno-builtin-strnlen \
-fno-stack-protector -fno-PIE -fno-strict-aliasing \
-I$(LINUX_TOOL_INCLUDE) -I$(LINUX_TOOL_ARCH_INCLUDE) \
- -I$(LINUX_HDR_PATH) -Iinclude -I$(<D) -Iinclude/$(ARCH_DIR) \
+ -I$(LINUX_HDR_PATH) -Iinclude -I$(<D) -Iinclude/$(SRCARCH) \
-I ../rseq -I.. $(EXTRA_CFLAGS) $(KHDR_INCLUDES)
-ifeq ($(ARCH_DIR),s390)
+ifeq ($(SRCARCH),s390)
CFLAGS += -march=z10
endif
-ifeq ($(ARCH_DIR),x86)
+ifeq ($(SRCARCH),x86)
ifeq ($(shell echo "void foo(void) { }" | $(CC) -march=x86-64-v2 -x c - -c -o /dev/null 2>/dev/null; echo "$$?"),0)
CFLAGS += -march=x86-64-v2
endif
endif
-ifeq ($(ARCH_DIR),arm64)
+ifeq ($(SRCARCH),arm64)
tools_dir := $(top_srcdir)/tools
arm64_tools_dir := $(tools_dir)/arch/arm64/tools/
@@ -282,7 +282,7 @@ LIBKVM_S_OBJ := $(patsubst %.S, $(OUTPUT)/%.o, $(LIBKVM_S))
LIBKVM_STRING_OBJ := $(patsubst %.c, $(OUTPUT)/%.o, $(LIBKVM_STRING))
LIBKVM_OBJS = $(LIBKVM_C_OBJ) $(LIBKVM_S_OBJ) $(LIBKVM_STRING_OBJ) $(LIBCGROUP_O)
SPLIT_TEST_GEN_PROGS := $(patsubst %, $(OUTPUT)/%, $(SPLIT_TESTS))
-SPLIT_TEST_GEN_OBJ := $(patsubst %, $(OUTPUT)/$(ARCH_DIR)/%.o, $(SPLIT_TESTS))
+SPLIT_TEST_GEN_OBJ := $(patsubst %, $(OUTPUT)/$(SRCARCH)/%.o, $(SPLIT_TESTS))
TEST_GEN_OBJ = $(patsubst %, %.o, $(TEST_GEN_PROGS))
TEST_GEN_OBJ += $(patsubst %, %.o, $(TEST_GEN_PROGS_EXTENDED))
@@ -291,7 +291,7 @@ TEST_DEP_FILES += $(patsubst %.o, %.d, $(LIBKVM_OBJS))
TEST_DEP_FILES += $(patsubst %.o, %.d, $(SPLIT_TEST_GEN_OBJ))
-include $(TEST_DEP_FILES)
-$(shell mkdir -p $(sort $(OUTPUT)/$(ARCH_DIR) $(dir $(LIBKVM_C_OBJ) $(LIBKVM_S_OBJ))))
+$(shell mkdir -p $(sort $(OUTPUT)/$(SRCARCH) $(dir $(LIBKVM_C_OBJ) $(LIBKVM_S_OBJ))))
$(filter-out $(SPLIT_TEST_GEN_PROGS), $(TEST_GEN_PROGS)) \
$(TEST_GEN_PROGS_EXTENDED): %: %.o
@@ -299,9 +299,9 @@ $(TEST_GEN_PROGS_EXTENDED): %: %.o
$(TEST_GEN_OBJ): $(OUTPUT)/%.o: %.c
$(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c $< -o $@
-$(SPLIT_TEST_GEN_PROGS): $(OUTPUT)/%: $(OUTPUT)/%.o $(OUTPUT)/$(ARCH_DIR)/%.o
+$(SPLIT_TEST_GEN_PROGS): $(OUTPUT)/%: $(OUTPUT)/%.o $(OUTPUT)/$(SRCARCH)/%.o
$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $(TARGET_ARCH) $^ $(LDLIBS) -o $@
-$(SPLIT_TEST_GEN_OBJ): $(OUTPUT)/$(ARCH_DIR)/%.o: $(ARCH_DIR)/%.c
+$(SPLIT_TEST_GEN_OBJ): $(OUTPUT)/$(SRCARCH)/%.o: $(SRCARCH)/%.c
$(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c $< -o $@
EXTRA_CLEAN += $(GEN_HDRS) \
--
2.50.1.470.g6ba607880d-goog
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH v2 0/2] KVM: selftests: Use $(SRCARCH) and share definition with top-level Makefile
2025-07-24 21:31 [PATCH v2 0/2] KVM: selftests: Use $(SRCARCH) and share definition with top-level Makefile David Matlack
2025-07-24 21:31 ` [PATCH v2 1/2] Revert "KVM: selftests: Override ARCH for x86_64 instead of using ARCH_DIR" David Matlack
2025-07-24 21:31 ` [PATCH v2 2/2] KVM: selftests: Rename $(ARCH_DIR) to $(SRCARCH) David Matlack
@ 2025-07-24 21:32 ` David Matlack
2 siblings, 0 replies; 4+ messages in thread
From: David Matlack @ 2025-07-24 21:32 UTC (permalink / raw)
To: Paolo Bonzini
Cc: Albert Ou, Alexandre Ghiti, kvm, linux-riscv,
Muhammad Usama Anjum, Palmer Dabbelt, Paul Walmsley,
Sean Christopherson
On Thu, Jul 24, 2025 at 2:31 PM David Matlack <dmatlack@google.com> wrote:
>
> This series switches the KVM selftests Makefile to use $(SRCARCH)
> instead of $(ARCH) to fix a build issue when ARCH=x86_64 is specified on
> the command line.
Please ignore the "and share definition with top-level Makefile" from
the title. I ended up dropping that patch from the series.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2025-07-24 21:33 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-24 21:31 [PATCH v2 0/2] KVM: selftests: Use $(SRCARCH) and share definition with top-level Makefile David Matlack
2025-07-24 21:31 ` [PATCH v2 1/2] Revert "KVM: selftests: Override ARCH for x86_64 instead of using ARCH_DIR" David Matlack
2025-07-24 21:31 ` [PATCH v2 2/2] KVM: selftests: Rename $(ARCH_DIR) to $(SRCARCH) David Matlack
2025-07-24 21:32 ` [PATCH v2 0/2] KVM: selftests: Use $(SRCARCH) and share definition with top-level Makefile David Matlack
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).