[PATCH v4] perf: bpf: Fix build breakage due to libbpf

Naveen N. Rao naveen.n.rao at linux.vnet.ibm.com
Tue Dec 15 22:40:46 AEDT 2015


On 2015/12/15 08:51AM, Wang Nan wrote:
> From: "Naveen N. Rao" <naveen.n.rao at linux.vnet.ibm.com>
> 
> perf build is currently (v4.4-rc5) broken on powerpc:
> 
> bpf.c:28:4: error: #error __NR_bpf not defined. libbpf does not support
> your arch.
>  #  error __NR_bpf not defined. libbpf does not support your arch.
>     ^
> 
> Fix this by including tools/scripts/Makefile.arch for the proper
> $ARCH macro. While at it, remove redundant LP64 macro definition.
> 
> Also, since libbpf require $(srctree) now, detect the path of
> srctree like perf.
> 
> Signed-off-by: Naveen N. Rao <naveen.n.rao at linux.vnet.ibm.com>
> Signed-off-by: Wang Nan <wangnan0 at huawei.com>
> Acked-by: Jiri Olsa <jolsa at kernel.org>
> Cc: Arnaldo Carvalho de Melo <acme at kernel.org>
> Cc: Sukadev Bhattiprolu <sukadev at linux.vnet.ibm.com>
> ---
> 
> v3 -> v4: Add srctree detector code so directly run 'make' in libbpf
>           directory would not cause error.

Good catch!

Tested-by: Naveen N. Rao <naveen.n.rao at linux.vnet.ibm.com>


> 
> ---
>  tools/lib/bpf/Makefile | 9 ++++++++-
>  1 file changed, 8 insertions(+), 1 deletion(-)
> 
> diff --git a/tools/lib/bpf/Makefile b/tools/lib/bpf/Makefile
> index 636e3dd..0b6e013 100644
> --- a/tools/lib/bpf/Makefile
> +++ b/tools/lib/bpf/Makefile
> @@ -6,6 +6,12 @@ BPF_EXTRAVERSION = 1
> 
>  MAKEFLAGS += --no-print-directory
> 
> +ifeq ($(srctree),)
> +srctree := $(patsubst %/,%,$(dir $(shell pwd)))
> +srctree := $(patsubst %/,%,$(dir $(srctree)))
> +srctree := $(patsubst %/,%,$(dir $(srctree)))
> +#$(info Determined 'srctree' to be $(srctree))
> +endif
> 
>  # Makefiles suck: This macro sets a default value of $(2) for the
>  # variable named by $(1), unless the variable has been set by
> @@ -31,7 +37,8 @@ INSTALL = install
>  DESTDIR ?=
>  DESTDIR_SQ = '$(subst ','\'',$(DESTDIR))'
> 
> -LP64 := $(shell echo __LP64__ | ${CC} ${CFLAGS} -E -x c - | tail -n 1)
> +include $(srctree)/tools/scripts/Makefile.arch
> +
>  ifeq ($(LP64), 1)
>    libdir_relative = lib64
>  else
> -- 
> 1.8.3.4
> 



More information about the Linuxppc-dev mailing list