[Devel] [PATCH RHEL10 COMMIT] selftests: Fix ARCH normalization to handle command-line argument

Konstantin Khorenko khorenko at virtuozzo.com
Thu Mar 5 18:59:28 MSK 2026


The commit is pushed to "branch-rh10-6.12.0-55.52.1.4.x.vz10-ovz" and will appear at git at bitbucket.org:openvz/vzkernel.git
after rh10-6.12.0-55.52.1.4.10.vz10
------>
commit 491ab04339db3fa6d00f289261d90872e2ffd617
Author: Aleksei Oladko <aleksey.oladko at virtuozzo.com>
Date:   Wed Mar 4 09:37:01 2026 +0000

    selftests: Fix ARCH normalization to handle command-line argument
    
    Several selftests Makefiles (e.g. prctl, breakpoints, etc) attempt to
    normalize the ARCH variable by converting x86_64 and i.86 to x86.
    However, they use conditional assignment operator '?='.
    
    When ARCH is passed as a command-line argument (e.g., during an rpmbuild
    process), the '?=' operator ignores the shell command and the sed
    transformation. This leads to an incorrect ARCH value being used, which
    causes build failures
    
      # make -C tools/testing/selftests TARGETS=prctl ARCH=x86_64
      make: Entering directory '/build/tools/testing/selftests'
      make[1]: Entering directory '/build/tools/testing/selftests/prctl'
      make[1]: *** No targets.  Stop.
      make[1]: Leaving directory '/build/tools/testing/selftests/prctl'
      make: *** [Makefile:197: all] Error 2
    
    Change the assignment to use 'override' and ':=' to ensure the
    normalization logic is applied regardless of how the ARCH variable
    was initially defined.
    
    khorenko@: In GNU Make, variables have several "origins" with different
      priorities. When a variable is passed via the command line:
    
        make ARCH=x86_64
    
      Make marks it as a command-line variable. Such variables have the highest
      priority and cause all assignments inside the Makefile to be ignored —
      both ?= and plain :=.
    
    https://virtuozzo.atlassian.net/browse/VSTOR-126163
    
    Signed-off-by: Aleksei Oladko <aleksey.oladko at virtuozzo.com>
    
    Feature: fix selftests
---
 tools/testing/selftests/breakpoints/Makefile                 | 4 ++--
 tools/testing/selftests/ipc/Makefile                         | 8 ++++----
 tools/testing/selftests/prctl/Makefile                       | 4 ++--
 tools/testing/selftests/sparc64/Makefile                     | 4 ++--
 tools/testing/selftests/thermal/intel/power_floor/Makefile   | 4 ++--
 tools/testing/selftests/thermal/intel/workload_hint/Makefile | 4 ++--
 6 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/tools/testing/selftests/breakpoints/Makefile b/tools/testing/selftests/breakpoints/Makefile
index 9ec2c78de8caa..0b8f5acf7c78f 100644
--- a/tools/testing/selftests/breakpoints/Makefile
+++ b/tools/testing/selftests/breakpoints/Makefile
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 # Taken from perf makefile
-uname_M := $(shell uname -m 2>/dev/null || echo not)
-ARCH ?= $(shell echo $(uname_M) | sed -e s/i.86/x86/ -e s/x86_64/x86/)
+ARCH ?= $(shell uname -m 2>/dev/null || echo not)
+override ARCH := $(shell echo $(ARCH) | sed -e s/i.86/x86/ -e s/x86_64/x86/)
 
 TEST_GEN_PROGS := step_after_suspend_test
 
diff --git a/tools/testing/selftests/ipc/Makefile b/tools/testing/selftests/ipc/Makefile
index 5a5577767a35e..6742a4d2cc81e 100644
--- a/tools/testing/selftests/ipc/Makefile
+++ b/tools/testing/selftests/ipc/Makefile
@@ -1,12 +1,12 @@
 # SPDX-License-Identifier: GPL-2.0
-uname_M := $(shell uname -m 2>/dev/null || echo not)
-ARCH ?= $(shell echo $(uname_M) | sed -e s/i.86/i386/)
+ARCH ?= $(shell uname -m 2>/dev/null || echo not)
+override ARCH := $(shell echo $(ARCH) | sed -e s/i.86/i386/)
 ifeq ($(ARCH),i386)
-        ARCH := x86
+        override ARCH := x86
 	CFLAGS += -DCONFIG_X86_32 -D__i386__
 endif
 ifeq ($(ARCH),x86_64)
-	ARCH := x86
+	override ARCH := x86
 	CFLAGS += -DCONFIG_X86_64 -D__x86_64__
 endif
 
diff --git a/tools/testing/selftests/prctl/Makefile b/tools/testing/selftests/prctl/Makefile
index 01dc90fbb5094..e770e86fad9ac 100644
--- a/tools/testing/selftests/prctl/Makefile
+++ b/tools/testing/selftests/prctl/Makefile
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 ifndef CROSS_COMPILE
-uname_M := $(shell uname -m 2>/dev/null || echo not)
-ARCH ?= $(shell echo $(uname_M) | sed -e s/i.86/x86/ -e s/x86_64/x86/)
+ARCH ?= $(shell uname -m 2>/dev/null || echo not)
+override ARCH := $(shell echo $(ARCH) | sed -e s/i.86/x86/ -e s/x86_64/x86/)
 
 ifeq ($(ARCH),x86)
 TEST_PROGS := disable-tsc-ctxt-sw-stress-test disable-tsc-on-off-stress-test \
diff --git a/tools/testing/selftests/sparc64/Makefile b/tools/testing/selftests/sparc64/Makefile
index a19531dba4dc3..88f7be76f962d 100644
--- a/tools/testing/selftests/sparc64/Makefile
+++ b/tools/testing/selftests/sparc64/Makefile
@@ -1,6 +1,6 @@
 # SPDX-License-Identifier: GPL-2.0
-uname_M := $(shell uname -m 2>/dev/null || echo not)
-ARCH ?= $(shell echo $(uname_M) | sed -e s/x86_64/x86/)
+ARCH ?= $(shell uname -m 2>/dev/null || echo not)
+override ARCH := $(shell echo $(ARCH) | sed -e s/x86_64/x86/)
 
 ifneq ($(ARCH),sparc64)
 nothing:
diff --git a/tools/testing/selftests/thermal/intel/power_floor/Makefile b/tools/testing/selftests/thermal/intel/power_floor/Makefile
index 9b88e57dbba5a..07463c2160e09 100644
--- a/tools/testing/selftests/thermal/intel/power_floor/Makefile
+++ b/tools/testing/selftests/thermal/intel/power_floor/Makefile
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 ifndef CROSS_COMPILE
-uname_M := $(shell uname -m 2>/dev/null || echo not)
-ARCH ?= $(shell echo $(uname_M) | sed -e s/i.86/x86/ -e s/x86_64/x86/)
+ARCH ?= $(shell uname -m 2>/dev/null || echo not)
+override ARCH := $(shell echo $(ARCH) | sed -e s/i.86/x86/ -e s/x86_64/x86/)
 
 ifeq ($(ARCH),x86)
 TEST_GEN_PROGS := power_floor_test
diff --git a/tools/testing/selftests/thermal/intel/workload_hint/Makefile b/tools/testing/selftests/thermal/intel/workload_hint/Makefile
index 37ff3286283b6..49e3bc2b20f9d 100644
--- a/tools/testing/selftests/thermal/intel/workload_hint/Makefile
+++ b/tools/testing/selftests/thermal/intel/workload_hint/Makefile
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 ifndef CROSS_COMPILE
-uname_M := $(shell uname -m 2>/dev/null || echo not)
-ARCH ?= $(shell echo $(uname_M) | sed -e s/i.86/x86/ -e s/x86_64/x86/)
+ARCH ?= $(shell uname -m 2>/dev/null || echo not)
+override ARCH := $(shell echo $(ARCH) | sed -e s/i.86/x86/ -e s/x86_64/x86/)
 
 ifeq ($(ARCH),x86)
 TEST_GEN_PROGS := workload_hint_test


More information about the Devel mailing list