On Wed, May 4, 2022 at 5:35 PM 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: > > Oops, forgot to put the actual command in here, sending follow up. > 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 > --- > tools/testing/selftests/vm/Makefile | 10 +++++----- > 1 file changed, 5 insertions(+), 5 deletions(-) > > 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 > -- > 2.27.0 > >