+++ /dev/null
-From 7822a8913f4c51c7d1aff793b525d60c3384fb5b Mon Sep 17 00:00:00 2001
-From: Namhyung Kim <namhyung@kernel.org>
-Date: Thu, 27 Jul 2023 19:24:46 -0700
-Subject: perf build: Update build rule for generated files
-
-From: Namhyung Kim <namhyung@kernel.org>
-
-commit 7822a8913f4c51c7d1aff793b525d60c3384fb5b upstream.
-
-The bison and flex generate C files from the source (.y and .l)
-files. When O= option is used, they are saved in a separate directory
-but the default build rule assumes the .C files are in the source
-directory. So it might read invalid file if there are generated files
-from an old version. The same is true for the pmu-events files.
-
-For example, the following command would cause a build failure:
-
- $ git checkout v6.3
- $ make -C tools/perf # build in the same directory
-
- $ git checkout v6.5-rc2
- $ mkdir build # create a build directory
- $ make -C tools/perf O=build # build in a different directory but it
- # refers files in the source directory
-
-Let's update the build rule to specify those cases explicitly to depend
-on the files in the output directory.
-
-Note that it's not a complete fix and it needs the next patch for the
-include path too.
-
-Fixes: 80eeb67fe577aa76 ("perf jevents: Program to convert JSON file")
-Signed-off-by: Namhyung Kim <namhyung@kernel.org>
-Cc: Adrian Hunter <adrian.hunter@intel.com>
-Cc: Andi Kleen <ak@linux.intel.com>
-Cc: Anup Sharma <anupnewsmail@gmail.com>
-Cc: Ian Rogers <irogers@google.com>
-Cc: Ingo Molnar <mingo@kernel.org>
-Cc: Jiri Olsa <jolsa@kernel.org>
-Cc: Peter Zijlstra <peterz@infradead.org>
-Cc: stable@vger.kernel.org
-Link: https://lore.kernel.org/r/20230728022447.1323563-1-namhyung@kernel.org
-Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- tools/build/Makefile.build | 10 ++++++++++
- tools/perf/pmu-events/Build | 6 ++++++
- 2 files changed, 16 insertions(+)
-
---- a/tools/build/Makefile.build
-+++ b/tools/build/Makefile.build
-@@ -116,6 +116,16 @@ $(OUTPUT)%.s: %.c FORCE
- $(call rule_mkdir)
- $(call if_changed_dep,cc_s_c)
-
-+# bison and flex files are generated in the OUTPUT directory
-+# so it needs a separate rule to depend on them properly
-+$(OUTPUT)%-bison.o: $(OUTPUT)%-bison.c FORCE
-+ $(call rule_mkdir)
-+ $(call if_changed_dep,$(host)cc_o_c)
-+
-+$(OUTPUT)%-flex.o: $(OUTPUT)%-flex.c FORCE
-+ $(call rule_mkdir)
-+ $(call if_changed_dep,$(host)cc_o_c)
-+
- # Gather build data:
- # obj-y - list of build objects
- # subdir-y - list of directories to nest
---- a/tools/perf/pmu-events/Build
-+++ b/tools/perf/pmu-events/Build
-@@ -25,3 +25,9 @@ $(OUTPUT)pmu-events/pmu-events.c: $(JSON
- $(call rule_mkdir)
- $(Q)$(call echo-cmd,gen)$(PYTHON) $(JEVENTS_PY) $(JEVENTS_ARCH) pmu-events/arch $@
- endif
-+
-+# pmu-events.c file is generated in the OUTPUT directory so it needs a
-+# separate rule to depend on it properly
-+$(OUTPUT)pmu-events/pmu-events.o: $(PMU_EVENTS_C)
-+ $(call rule_mkdir)
-+ $(call if_changed_dep,cc_o_c)