Re: [PATCH 19/28] perf beauty: Wire up the mmap flags table generator to the Makefile

From: Guenter Roeck
Date: Mon Nov 05 2018 - 16:18:51 EST


On Mon, Nov 05, 2018 at 04:13:56PM -0300, Arnaldo Carvalho de Melo wrote:
>
> I did the tests and it seems to work, its the same method used by the
> kernel sources, so I have this in place now:
>
> commit e2c39f36c354a06c6e9d32d4fdf8660b41803d82
> Author: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
> Date: Mon Nov 5 15:46:51 2018 -0300
>
> perf beauty: Use SRCARCH, ARCH=x86_64 must map to "x86" to find the headers
>
> Guenter reported that using ARCH=x86_64 to build perf has regressed:
>
> $ make -C tools/perf O=/tmp/build/perf ARCH=x86_64
> make: Entering directory '/home/acme/git/perf/tools/perf'
> BUILD: Doing 'make -j4' parallel build
> HOSTCC /tmp/build/perf/fixdep.o
> HOSTLD /tmp/build/perf/fixdep-in.o
> LINK /tmp/build/perf/fixdep
>
> Auto-detecting system features:
> ... dwarf: [ on ]
> <SNIP>
> ... bpf: [ on ]
>
> GEN /tmp/build/perf/common-cmds.h
> make[2]: *** No rule to make target '/home/acme/git/perf/tools/arch/x86_64/include/uapi/asm//mman.h', needed by '/tmp/build/perf/trace/beauty/generated/mmap_flags_array.c'. Stop.
> make[2]: *** Waiting for unfinished jobs....
> PERF_VERSION = 4.19.gf6c23e3
> make[1]: *** [Makefile.perf:207: sub-make] Error 2
> make: *** [Makefile:70: all] Error 2
> make: Leaving directory '/home/acme/git/perf/tools/perf'
> $
>
> This is because we must use $(SRCARCH) where we were using $(ARCH), so
> that, just like the top level Makefile, we get this done:
>
> # Additional ARCH settings for x86
> ifeq ($(ARCH),i386)
> SRCARCH := x86
> endif
> ifeq ($(ARCH),x86_64)
> SRCARCH := x86
> endif
>
> Which is done in tools/scripts/Makefile.arch, so switch to use
> $(SRCARCH).
>
> Reported-by: Guenter Roeck <linux@xxxxxxxxxxxx>
> Cc: Adrian Hunter <adrian.hunter@xxxxxxxxx>
> Cc: Clark Williams <williams@xxxxxxxxxx>
> Cc: David Ahern <dsahern@xxxxxxxxx>
> Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
> Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
> Cc: Wang Nan <wangnan0@xxxxxxxxxx>
> Fixes: fbd7458db757 ("perf beauty: Wire up the mmap flags table generator to the Makefile")
> Link: https://lkml.kernel.org/r/20181105184612.GD7077@xxxxxxxxxx
> Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>

That seems to do the trick.

Tested-by: Guenter Roeck <linux@xxxxxxxxxxxx>

>
> diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf
> index 3ccb4f0bf088..d95655489f7e 100644
> --- a/tools/perf/Makefile.perf
> +++ b/tools/perf/Makefile.perf
> @@ -387,7 +387,7 @@ SHELL = $(SHELL_PATH)
>
> linux_uapi_dir := $(srctree)/tools/include/uapi/linux
> asm_generic_uapi_dir := $(srctree)/tools/include/uapi/asm-generic
> -arch_asm_uapi_dir := $(srctree)/tools/arch/$(ARCH)/include/uapi/asm/
> +arch_asm_uapi_dir := $(srctree)/tools/arch/$(SRCARCH)/include/uapi/asm/
>
> beauty_outdir := $(OUTPUT)trace/beauty/generated
> beauty_ioctl_outdir := $(beauty_outdir)/ioctl