* [PATCH RESEND 0/3] selftests: target selection fixes for cross and LLVM builds @ 2026-11-05 12:56 Sasha Levin 2026-11-05 12:57 ` [PATCH RESEND 2/3] selftests/kexec: select tests using the target compiler Sasha Levin 0 siblings, 1 reply; 3+ messages in thread From: Sasha Levin @ 2026-11-05 12:56 UTC (permalink / raw) To: Andrew Morton, Shuah Khan Cc: Ivan Orlov, David Woodhouse, Nageswara R Sastry, kexec, Willy Tarreau, Thomas Weißschuh, Wake Liu, linux-kselftest, linux-kernel A few suites select their tests from the build host instead of the target, or depend on the host C library in ways that break cross builds: - set-anon-vma-name-test fails instead of skipping on kernels built without CONFIG_ANON_VMA_NAME. - kexec only recognizes the ppc64le spelling of PowerPC and decides about the x86-64 jump test from the build host. - size links a custom _start against the static C library, which fails on ARM with clang and on LoongArch; it now uses nolibc. The patches are independent of each other and apply on mm-nonmm-unstable. Since the original posting: - "selftests/prctl: build generated tests for the target architecture" is dropped. "selftests/prctl: select the tests by ARCH alone" in mm-nonmm-unstable replaces it. - "selftests/thermal: allow cross builds of the Intel tests" is dropped, it went in through the thermal tree as ff4194e54f84. - The size patch has Thomas's Reviewed-by. Original posting: https://lore.kernel.org/r/20261014200127.1363472-1-sashal@kernel.org Sasha Levin (3): selftests/prctl: skip the anonymous VMA naming test when unsupported selftests/kexec: select tests using the target compiler selftests/size: use nolibc startup and syscall wrappers tools/testing/selftests/kexec/Makefile | 26 ++++++++------- .../selftests/prctl/set-anon-vma-name-test.c | 3 ++ tools/testing/selftests/size/Makefile | 9 ++++- tools/testing/selftests/size/get_size.c | 33 +++++-------------- 4 files changed, 34 insertions(+), 37 deletions(-) base-commit: 72afe7762a29508ae89831540347c1be3b7ba621 -- 2.53.0 ^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH RESEND 2/3] selftests/kexec: select tests using the target compiler 2026-11-05 12:56 [PATCH RESEND 0/3] selftests: target selection fixes for cross and LLVM builds Sasha Levin @ 2026-11-05 12:57 ` Sasha Levin 2026-11-05 13:04 ` sashiko-bot 0 siblings, 1 reply; 3+ messages in thread From: Sasha Levin @ 2026-11-05 12:57 UTC (permalink / raw) To: Andrew Morton, Shuah Khan Cc: David Woodhouse, Nageswara R Sastry, kexec, linux-kselftest, linux-kernel The kexec Makefile recognizes PowerPC only through the ppc64le spelling of ARCH, so the canonical ARCH=powerpc used for cross builds omits the tests. The x86 jump test is selected with IS_64_BIT from scripts/Makefile.arch, which describes the build host rather than the compiler being used. On other architectures the Makefile includes no lib.mk rules at all, so installation and runlist generation fail with missing targets. Select x86 and PowerPC from the target ARCH when it is given and from the host's SUBARCH otherwise, without assigning ARCH, so that lib.mk keeps choosing the compiler's native clang target. Ask the selected compiler, including USERCFLAGS, whether it targets a 64-bit x86 ABI and whether it targets little-endian 64-bit PowerPC. lib.mk expands the generated program list before it appends USERCFLAGS to CFLAGS, so the flags are passed explicitly to keep both probes consistent. If the compiler cannot be run, select the jump test so that the build fails instead of silently dropping it. Include lib.mk unconditionally so that unsupported targets build, install and emit an empty runlist. Fixes: 65e38e32a959 ("selftests/kexec: Enable secureboot tests for PowerPC") Fixes: 7615b94b6371 ("selftests/kexec: Add x86_64 selftest for kexec-jump and exception handling") Signed-off-by: Sasha Levin <sashal@kernel.org> --- tools/testing/selftests/kexec/Makefile | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/tools/testing/selftests/kexec/Makefile b/tools/testing/selftests/kexec/Makefile index 874cfdd3b75b3..97d5dd10208a1 100644 --- a/tools/testing/selftests/kexec/Makefile +++ b/tools/testing/selftests/kexec/Makefile @@ -1,20 +1,22 @@ # SPDX-License-Identifier: GPL-2.0-only # Makefile for kexec tests -ARCH ?= $(shell uname -m 2>/dev/null || echo not) -ARCH_PROCESSED := $(shell echo $(ARCH) | sed -e s/i.86/x86/ -e s/x86_64/x86/) +top_srcdir = ../../../.. +include $(top_srcdir)/scripts/subarch.include +ARCH_PROCESSED := $(shell echo $(or $(ARCH),$(SUBARCH)) | sed -e s/i.86/x86/ -e s/x86_64/x86/) -ifeq ($(ARCH_PROCESSED),$(filter $(ARCH_PROCESSED),x86 ppc64le)) -TEST_PROGS := test_kexec_load.sh test_kexec_file_load.sh -TEST_FILES := kexec_common_lib.sh +PROBE_CC = $(filter-out -fuse-ld=%,$(CC)) $(CFLAGS) $(USERCFLAGS) -E -P -x c - +CC_IS_64BIT = $(shell echo __SIZEOF_LONG__ | $(PROBE_CC) || echo 8) +PPC64LE = $(shell printf '\043if defined(__powerpc64__) && __BYTE_ORDER__ == \ + __ORDER_LITTLE_ENDIAN__\n1\n\043endif\n' | $(PROBE_CC)) -include ../../../scripts/Makefile.arch - -ifeq ($(IS_64_BIT)$(ARCH_PROCESSED),1x86) -TEST_PROGS += test_kexec_jump.sh -TEST_GEN_PROGS := test_kexec_jump +ifeq ($(ARCH_PROCESSED),x86) +TEST_PROGS = test_kexec_load.sh test_kexec_file_load.sh \ + $(if $(filter 8,$(CC_IS_64BIT)),test_kexec_jump.sh) +TEST_GEN_PROGS = $(if $(filter 8,$(CC_IS_64BIT)),test_kexec_jump) +else ifneq (,$(filter powerpc ppc64le,$(ARCH_PROCESSED))) +TEST_PROGS = $(if $(filter 1,$(PPC64LE)),test_kexec_load.sh test_kexec_file_load.sh) endif +TEST_FILES = $(if $(TEST_PROGS),kexec_common_lib.sh) include ../lib.mk - -endif -- 2.53.0 ^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH RESEND 2/3] selftests/kexec: select tests using the target compiler 2026-11-05 12:57 ` [PATCH RESEND 2/3] selftests/kexec: select tests using the target compiler Sasha Levin @ 2026-11-05 13:04 ` sashiko-bot 0 siblings, 0 replies; 3+ messages in thread From: sashiko-bot @ 2026-11-05 13:04 UTC (permalink / raw) To: Sasha Levin, Andrew Morton, Shuah Khan Cc: David Woodhouse, Nageswara R Sastry, kexec > The kexec Makefile recognizes PowerPC only through the ppc64le spelling > of ARCH, so the canonical ARCH=powerpc used for cross builds omits the > tests. The x86 jump test is selected with IS_64_BIT from > scripts/Makefile.arch, which describes the build host rather than the > compiler being used. On other architectures the Makefile includes no > lib.mk rules at all, so installation and runlist generation fail with > missing targets. > > Select x86 and PowerPC from the target ARCH when it is given and from > the host's SUBARCH otherwise, without assigning ARCH, so that lib.mk > keeps choosing the compiler's native clang target. Ask the selected > compiler, including USERCFLAGS, whether it targets a 64-bit x86 ABI > and whether it targets little-endian 64-bit PowerPC. lib.mk expands the > generated program list before it appends USERCFLAGS to CFLAGS, so the > flags are passed explicitly to keep both probes consistent. If the > compiler cannot be run, select the jump test so that the build fails > instead of silently dropping it. Include lib.mk unconditionally so that > unsupported targets build, install and emit an empty runlist. > > Fixes: 65e38e32a959 ("selftests/kexec: Enable secureboot tests for PowerPC") > Fixes: 7615b94b6371 ("selftests/kexec: Add x86_64 selftest for kexec-jump and exception handling") > Signed-off-by: Sasha Levin <sashal@kernel.org> Sashiko has reviewed this patch and found no issues. -- Sashiko AI review · https://sashiko.dev/#/patchset/20261105125701.1605281-1-sashal@kernel.org?part=2 ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-11-05 13:04 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-11-05 12:56 [PATCH RESEND 0/3] selftests: target selection fixes for cross and LLVM builds Sasha Levin 2026-11-05 12:57 ` [PATCH RESEND 2/3] selftests/kexec: select tests using the target compiler Sasha Levin 2026-11-05 13:04 ` sashiko-bot
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox