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 <[email protected]>
> 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 <[email protected]>
>     Cc: Adrian Hunter <[email protected]>
>     Cc: Clark Williams <[email protected]>
>     Cc: David Ahern <[email protected]>
>     Cc: Jiri Olsa <[email protected]>
>     Cc: Namhyung Kim <[email protected]>
>     Cc: Wang Nan <[email protected]>
>     Fixes: fbd7458db757 ("perf beauty: Wire up the mmap flags table generator 
> to the Makefile")
>     Link: https://lkml.kernel.org/r/[email protected]
>     Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>

That seems to do the trick.

Tested-by: Guenter Roeck <[email protected]>

> 
> 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

Reply via email to