Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

selftests/powerpc: Add flags.mk to support pmu buildable

When running `make -C powerpc/pmu run_tests` from top level selftests
directory, currently this error is being reported:

make: Entering directory '/home/maddy/linux/tools/testing/selftests/powerpc/pmu'
Makefile:40: warning: overriding recipe for target 'emit_tests'
../../lib.mk:111: warning: ignoring old recipe for target 'emit_tests'
gcc -m64 count_instructions.c ../harness.c event.c lib.c ../utils.c loop.S -o /home/maddy/selftest_output//count_instructions
In file included from count_instructions.c:13:
event.h:12:10: fatal error: utils.h: No such file or directory
12 | #include "utils.h"
| ^~~~~~~~~
compilation terminated.

This is due to missing of include path in CFLAGS. That is, CFLAGS and
GIT_VERSION macros are defined in the powerpc/ folder Makefile which
in this case is not involved.

To address the failure in case of executing specific sub-folder test
directly, a new rule file has been addded by the patch called "flags.mk"
under selftest/powerpc/ folder and is linked to all the Makefile of
powerpc/pmu sub-folders.

Reported-by: Sachin Sant <sachinp@linux.ibm.com>
Signed-off-by: Madhavan Srinivasan <maddy@linux.ibm.com>
Tested-by: Sachin Sant <sachinp@linux.ibm.com>
[mpe: Fixup ifeq, make GIT_VERSION simply expanded to avoid re-executing git describe]
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://msgid.link/20240229093711.581230-2-maddy@linux.ibm.com

authored by

Madhavan Srinivasan and committed by
Michael Ellerman
5553a793 37496845

+16
+12
tools/testing/selftests/powerpc/flags.mk
··· 1 + #This checks for any ENV variables and add those. 2 + 3 + ifeq ($(GIT_VERSION),) 4 + GIT_VERSION := $(shell git describe --always --long --dirty || echo "unknown") 5 + export GIT_VERSION 6 + endif 7 + 8 + ifeq ($(CFLAGS),) 9 + CFLAGS := -std=gnu99 -O2 -Wall -Werror -DGIT_VERSION='"$(GIT_VERSION)"' -I$(selfdir)/powerpc/include $(CFLAGS) 10 + export CFLAGS 11 + endif 12 +
+1
tools/testing/selftests/powerpc/pmu/Makefile
··· 7 7 8 8 top_srcdir = ../../../../.. 9 9 include ../../lib.mk 10 + include ../flags.mk 10 11 11 12 all: $(TEST_GEN_PROGS) ebb sampling_tests event_code_tests 12 13
+1
tools/testing/selftests/powerpc/pmu/ebb/Makefile
··· 18 18 19 19 top_srcdir = ../../../../../.. 20 20 include ../../../lib.mk 21 + include ../../flags.mk 21 22 22 23 # The EBB handler is 64-bit code and everything links against it 23 24 CFLAGS += -m64
+1
tools/testing/selftests/powerpc/pmu/event_code_tests/Makefile
··· 9 9 10 10 top_srcdir = ../../../../../.. 11 11 include ../../../lib.mk 12 + include ../../flags.mk 12 13 13 14 CFLAGS += -m64 14 15
+1
tools/testing/selftests/powerpc/pmu/sampling_tests/Makefile
··· 9 9 10 10 top_srcdir = ../../../../../.. 11 11 include ../../../lib.mk 12 + include ../../flags.mk 12 13 13 14 CFLAGS += -m64 14 15