Message ID | 20220504214032.1283777-1-jsavitz@redhat.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 41c240099fe09377b6b9f8272e45d2267c843d3e |
Headers | show |
Series | selftests: vm: Makefile: rename TARGETS to VMTARGETS | expand |
On 5/4/22 17:40, Joel Savitz wrote: > The tools/testing/selftests/vm/Makefile uses the variable TARGETS > internally to generate a list of platform-specific binary build targets > suffixed with _{32,64}. When building the selftests using its own > Makefile directly, such as via the following command run in a kernel > tree: > > # make -C tools/testing/selftests install TARGETS="vm" > > One receives an error such as the following: > > make: Entering directory '/root/linux/tools/testing/selftests' > make --no-builtin-rules ARCH=x86 -C ../../.. headers_install > make[1]: Entering directory '/root/linux' > INSTALL ./usr/include > make[1]: Leaving directory '/root/linux' > make[1]: Entering directory '/root/linux/tools/testing/selftests/vm' > make[1]: *** No rule to make target 'vm.c', needed by '/root/linux/tools/testing/selftests/vm/vm_64'. Stop. > make[1]: Leaving directory '/root/linux/tools/testing/selftests/vm' > make: *** [Makefile:175: all] Error 2 > make: Leaving directory '/root/linux/tools/testing/selftests' > > The TARGETS variable passed to tools/testing/selftests/Makefile collides > with the TARGETS used in tools/testing/selftests/vm/Makefile, so rename > the latter to VMTARGETS, eliminating the collision with no functional > change. > > Fixes: f21fda8f6453 ("selftests: vm: pkeys: fix multilib builds for > x86") > > Signed-off-by: Joel Savitz <jsavitz@redhat.comTested-by: Nico Pache <npache@redhat.com> Acked-by: Nico Pache <npache@redhat.com>
diff --git a/tools/testing/selftests/vm/Makefile b/tools/testing/selftests/vm/Makefile index 04a49e876a46..5b1ecd00695b 100644 --- a/tools/testing/selftests/vm/Makefile +++ b/tools/testing/selftests/vm/Makefile @@ -57,9 +57,9 @@ CAN_BUILD_I386 := $(shell ./../x86/check_cc.sh "$(CC)" ../x86/trivial_32bit_prog CAN_BUILD_X86_64 := $(shell ./../x86/check_cc.sh "$(CC)" ../x86/trivial_64bit_program.c) CAN_BUILD_WITH_NOPIE := $(shell ./../x86/check_cc.sh "$(CC)" ../x86/trivial_program.c -no-pie) -TARGETS := protection_keys -BINARIES_32 := $(TARGETS:%=%_32) -BINARIES_64 := $(TARGETS:%=%_64) +VMTARGETS := protection_keys +BINARIES_32 := $(VMTARGETS:%=%_32) +BINARIES_64 := $(VMTARGETS:%=%_64) ifeq ($(CAN_BUILD_WITH_NOPIE),1) CFLAGS += -no-pie @@ -112,7 +112,7 @@ $(BINARIES_32): CFLAGS += -m32 -mxsave $(BINARIES_32): LDLIBS += -lrt -ldl -lm $(BINARIES_32): $(OUTPUT)/%_32: %.c $(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(notdir $^) $(LDLIBS) -o $@ -$(foreach t,$(TARGETS),$(eval $(call gen-target-rule-32,$(t)))) +$(foreach t,$(VMTARGETS),$(eval $(call gen-target-rule-32,$(t)))) endif ifeq ($(CAN_BUILD_X86_64),1) @@ -120,7 +120,7 @@ $(BINARIES_64): CFLAGS += -m64 -mxsave $(BINARIES_64): LDLIBS += -lrt -ldl $(BINARIES_64): $(OUTPUT)/%_64: %.c $(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(notdir $^) $(LDLIBS) -o $@ -$(foreach t,$(TARGETS),$(eval $(call gen-target-rule-64,$(t)))) +$(foreach t,$(VMTARGETS),$(eval $(call gen-target-rule-64,$(t)))) endif # x86_64 users should be encouraged to install 32-bit libraries
The tools/testing/selftests/vm/Makefile uses the variable TARGETS internally to generate a list of platform-specific binary build targets suffixed with _{32,64}. When building the selftests using its own Makefile directly, such as via the following command run in a kernel tree: # make -C tools/testing/selftests install TARGETS="vm" One receives an error such as the following: make: Entering directory '/root/linux/tools/testing/selftests' make --no-builtin-rules ARCH=x86 -C ../../.. headers_install make[1]: Entering directory '/root/linux' INSTALL ./usr/include make[1]: Leaving directory '/root/linux' make[1]: Entering directory '/root/linux/tools/testing/selftests/vm' make[1]: *** No rule to make target 'vm.c', needed by '/root/linux/tools/testing/selftests/vm/vm_64'. Stop. make[1]: Leaving directory '/root/linux/tools/testing/selftests/vm' make: *** [Makefile:175: all] Error 2 make: Leaving directory '/root/linux/tools/testing/selftests' The TARGETS variable passed to tools/testing/selftests/Makefile collides with the TARGETS used in tools/testing/selftests/vm/Makefile, so rename the latter to VMTARGETS, eliminating the collision with no functional change. Fixes: f21fda8f6453 ("selftests: vm: pkeys: fix multilib builds for x86") Signed-off-by: Joel Savitz <jsavitz@redhat.com> --- tools/testing/selftests/vm/Makefile | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-)