Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1291107 > unrolled thread

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

Started by"Naveen N. Rao" <naveen.n.rao@linux.vnet.ibm.com>
First post2015-12-14 12:00 +0100
Last post2015-12-15 12:40 +0100
Articles 19 — 5 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH] perf: bpf: Fix build breakage due to libbpf "Naveen N. Rao" <naveen.n.rao@linux.vnet.ibm.com> - 2015-12-14 12:00 +0100
    [PATCH] tools lib bpf: Support libbpf on PowerPC Wang Nan <wangnan0@huawei.com> - 2015-12-14 12:40 +0100
    Re: [PATCH] perf: bpf: Fix build breakage due to libbpf "Wangnan (F)" <wangnan0@huawei.com> - 2015-12-14 13:00 +0100
      Re: [PATCH] perf: bpf: Fix build breakage due to libbpf "Naveen N. Rao" <naveen.n.rao@linux.vnet.ibm.com> - 2015-12-14 16:20 +0100
    [PATCH v2] tools lib bpf: Support libbpf on PowerPC Wang Nan <wangnan0@huawei.com> - 2015-12-14 13:00 +0100
      Re: [PATCH v2] tools lib bpf: Support libbpf on PowerPC "Naveen N. Rao" <naveen.n.rao@linux.vnet.ibm.com> - 2015-12-14 16:50 +0100
    [PATCH v3 2/3] tools: Move Makefile.arch from perf/config to tools/scripts Wang Nan <wangnan0@huawei.com> - 2015-12-15 04:40 +0100
    [PATCH v3 0/3] perf build: PowerPC: Fix build breakage due to libbpf Wang Nan <wangnan0@huawei.com> - 2015-12-15 04:40 +0100
      [PATCH v3 1/3] perf tools: Fix PowerPC native building Wang Nan <wangnan0@huawei.com> - 2015-12-15 04:40 +0100
      [PATCH v3 3/3] perf: bpf: Fix build breakage due to libbpf Wang Nan <wangnan0@huawei.com> - 2015-12-15 04:40 +0100
        [PATCH v4] perf: bpf: Fix build breakage due to libbpf Wang Nan <wangnan0@huawei.com> - 2015-12-15 10:00 +0100
          Re: [PATCH v4] perf: bpf: Fix build breakage due to libbpf "Naveen N. Rao" <naveen.n.rao@linux.vnet.ibm.com> - 2015-12-15 12:50 +0100
            Re: [PATCH v4] perf: bpf: Fix build breakage due to libbpf Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-12-16 20:50 +0100
              Re: [PATCH v4] perf: bpf: Fix build breakage due to libbpf "Wangnan (F)" <wangnan0@huawei.com> - 2015-12-17 02:40 +0100
                Re: [PATCH v4] perf: bpf: Fix build breakage due to libbpf "Naveen N. Rao" <naveen.n.rao@linux.vnet.ibm.com> - 2015-12-17 06:10 +0100
                  Re: [PATCH v4] perf: bpf: Fix build breakage due to libbpf Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-12-17 13:20 +0100
        Re: [PATCH v3 3/3] perf: bpf: Fix build breakage due to libbpf "Wangnan (F)" <wangnan0@huawei.com> - 2015-12-15 10:00 +0100
      Re: [PATCH v3 0/3] perf build: PowerPC: Fix build breakage due to  libbpf Jiri Olsa <jolsa@redhat.com> - 2015-12-15 09:10 +0100
      Re: [PATCH v3 0/3] perf build: PowerPC: Fix build breakage due to  libbpf "Naveen N. Rao" <naveen.n.rao@linux.vnet.ibm.com> - 2015-12-15 12:40 +0100

#1291107 — [PATCH] perf: bpf: Fix build breakage due to libbpf

From"Naveen N. Rao" <naveen.n.rao@linux.vnet.ibm.com>
Date2015-12-14 12:00 +0100
Subject[PATCH] perf: bpf: Fix build breakage due to libbpf
Message-ID<qFz1g-52w-11@gated-at.bofh.it>
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/perf/config/Makefile.arch for the proper
$ARCH macro. While at it, remove redundant LP64 macro definition.

Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
---
 tools/lib/bpf/Makefile | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/tools/lib/bpf/Makefile b/tools/lib/bpf/Makefile
index 636e3dd..050e0e8 100644
--- a/tools/lib/bpf/Makefile
+++ b/tools/lib/bpf/Makefile
@@ -31,7 +31,8 @@ INSTALL = install
 DESTDIR ?=
 DESTDIR_SQ = '$(subst ','\'',$(DESTDIR))'
 
-LP64 := $(shell echo __LP64__ | ${CC} ${CFLAGS} -E -x c - | tail -n 1)
+include $(srctree)/tools/perf/config/Makefile.arch
+
 ifeq ($(LP64), 1)
   libdir_relative = lib64
 else
-- 
2.6.2

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [next] | [standalone]


#1291129 — [PATCH] tools lib bpf: Support libbpf on PowerPC

FromWang Nan <wangnan0@huawei.com>
Date2015-12-14 12:40 +0100
Subject[PATCH] tools lib bpf: Support libbpf on PowerPC
Message-ID<qFzDY-5yq-29@gated-at.bofh.it>
In reply to#1291107
Support basic PowerPC compiling.

Checks BPF syscall number, turn off libbpf building on platform doesn't
support sys_bpf instead of blocking compiling.

Reported-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Signed-off-by: Wang Nan <wangnan0@huawei.com>
Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: Alexei Starovoitov <alexei.starovoitov@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
---

Hi Naveen,

   I don't have PPC environtment. Could you please help me check this patch?

Thank you.

---
 tools/build/feature/test-bpf.c | 23 ++++++++++++++++++++++-
 tools/lib/bpf/bpf.c            |  6 ++++--
 2 files changed, 26 insertions(+), 3 deletions(-)

diff --git a/tools/build/feature/test-bpf.c b/tools/build/feature/test-bpf.c
index 062bac8..dc119ec 100644
--- a/tools/build/feature/test-bpf.c
+++ b/tools/build/feature/test-bpf.c
@@ -1,9 +1,26 @@
+#include <asm/unistd.h>
 #include <linux/bpf.h>
+#include <unistd.h>
+
+#ifndef __NR_bpf
+# if defined(__i386__)
+#  define __NR_bpf 357
+# elif defined(__x86_64__)
+#  define __NR_bpf 321
+# elif defined(__aarch64__)
+#  define __NR_bpf 280
+# elif defined(__powerpc64__)
+#  define __NR_bpf 361
+# else
+#  error __NR_bpf not defined. libbpf does not support your arch.
+# endif
+#endif
 
 int main(void)
 {
 	union bpf_attr attr;
 
+	/* Check fields in attr */
 	attr.prog_type = BPF_PROG_TYPE_KPROBE;
 	attr.insn_cnt = 0;
 	attr.insns = 0;
@@ -14,5 +31,9 @@ int main(void)
 	attr.kern_version = 0;
 
 	attr = attr;
-	return 0;
+	/*
+	 * Test existance of __NR_bpf and BPF_PROG_LOAD.
+	 * This call should fail.
+	 */
+	return syscall(__NR_bpf, BPF_PROG_LOAD, attr, sizeof(attr));
 }
diff --git a/tools/lib/bpf/bpf.c b/tools/lib/bpf/bpf.c
index 5bdc6ea..b68c9e2 100644
--- a/tools/lib/bpf/bpf.c
+++ b/tools/lib/bpf/bpf.c
@@ -14,8 +14,8 @@
 #include "bpf.h"
 
 /*
- * When building perf, unistd.h is override. Define __NR_bpf is
- * required to be defined.
+ * When building perf, unistd.h is overrided. __NR_bpf is
+ * required to be defined explicitly.
  */
 #ifndef __NR_bpf
 # if defined(__i386__)
@@ -24,6 +24,8 @@
 #  define __NR_bpf 321
 # elif defined(__aarch64__)
 #  define __NR_bpf 280
+# elif defined(__powerpc64__)
+#  define __NR_bpf 361
 # else
 #  error __NR_bpf not defined. libbpf does not support your arch.
 # endif
-- 
1.8.3.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1291136

From"Wangnan (F)" <wangnan0@huawei.com>
Date2015-12-14 13:00 +0100
Message-ID<qFzXj-5Fk-3@gated-at.bofh.it>
In reply to#1291107
Hi Naveen,

On 2015/12/14 18:50, Naveen N. Rao wrote:
> 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/perf/config/Makefile.arch for the proper
> $ARCH macro. While at it, remove redundant LP64 macro definition.
>
> Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
> ---
>   tools/lib/bpf/Makefile | 3 ++-
>   1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/tools/lib/bpf/Makefile b/tools/lib/bpf/Makefile
> index 636e3dd..050e0e8 100644
> --- a/tools/lib/bpf/Makefile
> +++ b/tools/lib/bpf/Makefile
> @@ -31,7 +31,8 @@ INSTALL = install
>   DESTDIR ?=
>   DESTDIR_SQ = '$(subst ','\'',$(DESTDIR))'
>   
> -LP64 := $(shell echo __LP64__ | ${CC} ${CFLAGS} -E -x c - | tail -n 1)
> +include $(srctree)/tools/perf/config/Makefile.arch
> +
>   ifeq ($(LP64), 1)
>     libdir_relative = lib64
>   else

Are you doing cross compiling? In this case you should provide an 'ARCH' 
to make
through cmdline. For example, this is how yocto help me build perf on
aarch64:

  $ make -C /patch/to/kernel/tools/perf O=/path/to/output \
           CROSS_COMPILE=aarch64-oe-linux- ARCH=arm64 \
           CC=aarch64-oe-linux-gcc  --sysroot=... 
AR=aarch64-oe-linux-ar  ...

If you include Makefile.arch, I think you are seeking for a 'uname -m' 
result,
then you are not doing cross compiling, right? In this case what you 
need is providing
a __NR_bpf entry for your platform, because in some cases that value is 
overrided because
we have

$ find ./tools/ -name "unistd*"
./tools/perf/util/include/asm/unistd_64.h
./tools/perf/util/include/asm/unistd_32.h

You can find the reason of these two files through: 
eae7a755ee81129370c8f555b0d5672e6673735d

I posted a patch by replying this mail. I think you can find it through 
[1] soon.
I don't have PPC environment to check it. Could you please help me check 
this patch
in your environment?

[1] 
http://lkml.kernel.org/g/1450092932-123588-1-git-send-email-wangnan0@huawei.com 


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1291257

From"Naveen N. Rao" <naveen.n.rao@linux.vnet.ibm.com>
Date2015-12-14 16:20 +0100
Message-ID<qFD4S-7Rv-13@gated-at.bofh.it>
In reply to#1291136
On 2015/12/14 07:53PM, Wang Nan wrote:
> Hi Naveen,
> 
> On 2015/12/14 18:50, Naveen N. Rao wrote:
> >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/perf/config/Makefile.arch for the proper
> >$ARCH macro. While at it, remove redundant LP64 macro definition.
> >
> >Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
> >---
> >  tools/lib/bpf/Makefile | 3 ++-
> >  1 file changed, 2 insertions(+), 1 deletion(-)
> >
> >diff --git a/tools/lib/bpf/Makefile b/tools/lib/bpf/Makefile
> >index 636e3dd..050e0e8 100644
> >--- a/tools/lib/bpf/Makefile
> >+++ b/tools/lib/bpf/Makefile
> >@@ -31,7 +31,8 @@ INSTALL = install
> >  DESTDIR ?=
> >  DESTDIR_SQ = '$(subst ','\'',$(DESTDIR))'
> >-LP64 := $(shell echo __LP64__ | ${CC} ${CFLAGS} -E -x c - | tail -n 1)
> >+include $(srctree)/tools/perf/config/Makefile.arch
> >+
> >  ifeq ($(LP64), 1)
> >    libdir_relative = lib64
> >  else
> 
> Are you doing cross compiling? In this case you should provide an 'ARCH' to
> make
> through cmdline. For example, this is how yocto help me build perf on
> aarch64:
> 
>  $ make -C /patch/to/kernel/tools/perf O=/path/to/output \
>           CROSS_COMPILE=aarch64-oe-linux- ARCH=arm64 \
>           CC=aarch64-oe-linux-gcc  --sysroot=... AR=aarch64-oe-linux-ar  ...

I am not cross-compiling - the build error was with trying to build perf 
on ppc64le. Even with cross-compiling (and explicitly specifying $ARCH), 
Makefile.arch should still work.

> 
> If you include Makefile.arch, I think you are seeking for a 'uname -m'
> result,
> then you are not doing cross compiling, right? In this case what you need is
> providing
> a __NR_bpf entry for your platform, because in some cases that value is
> overrided because
> we have
> 
> $ find ./tools/ -name "unistd*"
> ./tools/perf/util/include/asm/unistd_64.h
> ./tools/perf/util/include/asm/unistd_32.h
> 
> You can find the reason of these two files through:
> eae7a755ee81129370c8f555b0d5672e6673735d

I thought of just defining __NR_bpf for powerpc, but it will still break 
perf build for most other architectures. Moreover, 
tools/lib/bpf/Makefile explicitly includes headers from the linux kernel 
build tree (rather than the system headers) and I thought this was 
specifically to pull in __NR_bpf, among others -- just that we were not 
properly including the right headers since $ARCH was not defined. More 
specifically:

$ make V=1
<snip>
  gcc -Wp,-MD,./.bpf.o.d,-MT,bpf.o -g -Wall -DHAVE_LIBELF_MMAP_SUPPORT 
  -DHAVE_ELF_GETPHDRNUM_SUPPORT -Wbad-function-cast 
  -Wdeclaration-after-statement -Wformat-security -Wformat-y2k 
  -Winit-self -Wmissing-declarations -Wmissing-prototypes 
  -Wnested-externs -Wno-system-headers -Wold-style-definition -Wpacked 
  -Wredundant-decls -Wshadow -Wstrict-aliasing=3 -Wstrict-prototypes 
  -Wswitch-default -Wswitch-enum -Wundef -Wwrite-strings -Wformat 
  -Werror -Wall -fPIC -I. -I/root/linux/tools/include 
  -I/root/linux/arch//include/uapi -I/root/linux/include/uapi 
  -D"BUILD_STR(s)=#s"   -c -o bpf.o bpf.c

Notice // in -I/root/linux/arch//include/uapi. Hence, my patch to ensure 
the right headers get included.

I'm thinking the explicit __NR_bpf definitions are only needed for x86 
-- since I don't see the definitions in the kernel tree headers.


Regards,
Naveen

> 
> I posted a patch by replying this mail. I think you can find it through [1]
> soon.
> I don't have PPC environment to check it. Could you please help me check
> this patch
> in your environment?
> 
> [1] http://lkml.kernel.org/g/1450092932-123588-1-git-send-email-wangnan0@huawei.com
> 
> 
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev@lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/linuxppc-dev

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1291137 — [PATCH v2] tools lib bpf: Support libbpf on PowerPC

FromWang Nan <wangnan0@huawei.com>
Date2015-12-14 13:00 +0100
Subject[PATCH v2] tools lib bpf: Support libbpf on PowerPC
Message-ID<qFzXj-5Fk-11@gated-at.bofh.it>
In reply to#1291107
Support basic PowerPC compiling.

Checks BPF syscall number, turn off libbpf building on platform doesn't
support sys_bpf instead of blocking compiling.

Reported-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Signed-off-by: Wang Nan <wangnan0@huawei.com>
Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: Alexei Starovoitov <alexei.starovoitov@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
---

v1 -> v2: __powerpc64__ -> __powerpc__. Code is from
          ./tools/perf/perf-sys.h, but not tested yet.

Naveen, please help me try this patch on PPC.
	  
Thank you.

---
 tools/build/feature/test-bpf.c | 23 ++++++++++++++++++++++-
 tools/lib/bpf/bpf.c            |  6 ++++--
 2 files changed, 26 insertions(+), 3 deletions(-)

diff --git a/tools/build/feature/test-bpf.c b/tools/build/feature/test-bpf.c
index 062bac8..19497f7 100644
--- a/tools/build/feature/test-bpf.c
+++ b/tools/build/feature/test-bpf.c
@@ -1,9 +1,26 @@
+#include <asm/unistd.h>
 #include <linux/bpf.h>
+#include <unistd.h>
+
+#ifndef __NR_bpf
+# if defined(__i386__)
+#  define __NR_bpf 357
+# elif defined(__x86_64__)
+#  define __NR_bpf 321
+# elif defined(__aarch64__)
+#  define __NR_bpf 280
+# elif defined(__powerpc__)
+#  define __NR_bpf 361
+# else
+#  error __NR_bpf not defined. libbpf does not support your arch.
+# endif
+#endif
 
 int main(void)
 {
 	union bpf_attr attr;
 
+	/* Check fields in attr */
 	attr.prog_type = BPF_PROG_TYPE_KPROBE;
 	attr.insn_cnt = 0;
 	attr.insns = 0;
@@ -14,5 +31,9 @@ int main(void)
 	attr.kern_version = 0;
 
 	attr = attr;
-	return 0;
+	/*
+	 * Test existance of __NR_bpf and BPF_PROG_LOAD.
+	 * This call should fail if we run the testcase.
+	 */
+	return syscall(__NR_bpf, BPF_PROG_LOAD, attr, sizeof(attr));
 }
diff --git a/tools/lib/bpf/bpf.c b/tools/lib/bpf/bpf.c
index 5bdc6ea..fd25c58 100644
--- a/tools/lib/bpf/bpf.c
+++ b/tools/lib/bpf/bpf.c
@@ -14,8 +14,8 @@
 #include "bpf.h"
 
 /*
- * When building perf, unistd.h is override. Define __NR_bpf is
- * required to be defined.
+ * When building perf, unistd.h is overrided. __NR_bpf is
+ * required to be defined explicitly.
  */
 #ifndef __NR_bpf
 # if defined(__i386__)
@@ -24,6 +24,8 @@
 #  define __NR_bpf 321
 # elif defined(__aarch64__)
 #  define __NR_bpf 280
+# elif defined(__powerpc__)
+#  define __NR_bpf 361
 # else
 #  error __NR_bpf not defined. libbpf does not support your arch.
 # endif
-- 
1.8.3.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1291303 — Re: [PATCH v2] tools lib bpf: Support libbpf on PowerPC

From"Naveen N. Rao" <naveen.n.rao@linux.vnet.ibm.com>
Date2015-12-14 16:50 +0100
SubjectRe: [PATCH v2] tools lib bpf: Support libbpf on PowerPC
Message-ID<qFDxV-83l-37@gated-at.bofh.it>
In reply to#1291137
On 2015/12/14 11:57AM, Wang Nan wrote:
> Support basic PowerPC compiling.
> 
> Checks BPF syscall number, turn off libbpf building on platform doesn't
> support sys_bpf instead of blocking compiling.
> 
> Reported-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
> Signed-off-by: Wang Nan <wangnan0@huawei.com>
> Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
> Cc: Alexei Starovoitov <alexei.starovoitov@gmail.com>
> Cc: Jiri Olsa <jolsa@redhat.com>
> Cc: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
> ---
> 
> v1 -> v2: __powerpc64__ -> __powerpc__. Code is from
>           ./tools/perf/perf-sys.h, but not tested yet.
> 
> Naveen, please help me try this patch on PPC.

Thanks, this works. However...

> 	  
> Thank you.
> 
> ---
>  tools/build/feature/test-bpf.c | 23 ++++++++++++++++++++++-
>  tools/lib/bpf/bpf.c            |  6 ++++--
>  2 files changed, 26 insertions(+), 3 deletions(-)
> 
> diff --git a/tools/build/feature/test-bpf.c b/tools/build/feature/test-bpf.c
> index 062bac8..19497f7 100644
> --- a/tools/build/feature/test-bpf.c
> +++ b/tools/build/feature/test-bpf.c
> @@ -1,9 +1,26 @@
> +#include <asm/unistd.h>
>  #include <linux/bpf.h>
> +#include <unistd.h>
> +
> +#ifndef __NR_bpf
> +# if defined(__i386__)
> +#  define __NR_bpf 357
> +# elif defined(__x86_64__)
> +#  define __NR_bpf 321
> +# elif defined(__aarch64__)
> +#  define __NR_bpf 280
> +# elif defined(__powerpc__)
> +#  define __NR_bpf 361

I think we should drop __aarch64__ and __powerpc__ here since this 
builds fine on ppc without these hunks.

> +# else
> +#  error __NR_bpf not defined. libbpf does not support your arch.
> +# endif
> +#endif
>  
>  int main(void)
>  {
>  	union bpf_attr attr;
>  
> +	/* Check fields in attr */
>  	attr.prog_type = BPF_PROG_TYPE_KPROBE;
>  	attr.insn_cnt = 0;
>  	attr.insns = 0;
> @@ -14,5 +31,9 @@ int main(void)
>  	attr.kern_version = 0;
>  
>  	attr = attr;
> -	return 0;
> +	/*
> +	 * Test existance of __NR_bpf and BPF_PROG_LOAD.

Nit... 'for existence'.

> +	 * This call should fail if we run the testcase.
> +	 */
> +	return syscall(__NR_bpf, BPF_PROG_LOAD, attr, sizeof(attr));
>  }
> diff --git a/tools/lib/bpf/bpf.c b/tools/lib/bpf/bpf.c
> index 5bdc6ea..fd25c58 100644
> --- a/tools/lib/bpf/bpf.c
> +++ b/tools/lib/bpf/bpf.c
> @@ -14,8 +14,8 @@
>  #include "bpf.h"
>  
>  /*
> - * When building perf, unistd.h is override. Define __NR_bpf is
> - * required to be defined.
> + * When building perf, unistd.h is overrided. __NR_bpf is
> + * required to be defined explicitly.
>   */
>  #ifndef __NR_bpf
>  # if defined(__i386__)
> @@ -24,6 +24,8 @@
>  #  define __NR_bpf 321
>  # elif defined(__aarch64__)
>  #  define __NR_bpf 280
> +# elif defined(__powerpc__)
> +#  define __NR_bpf 361

And, I think we should drop this hunk, but include the patch I sent.  
That ensures that the proper headers from the kernel source tree are 
included, so there won't be a need to explicitly define __NR_bpf for 
each architecture.


Regards,
Naveen

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1291817 — [PATCH v3 2/3] tools: Move Makefile.arch from perf/config to tools/scripts

FromWang Nan <wangnan0@huawei.com>
Date2015-12-15 04:40 +0100
Subject[PATCH v3 2/3] tools: Move Makefile.arch from perf/config to tools/scripts
Message-ID<qFOCZ-6Zc-5@gated-at.bofh.it>
In reply to#1291107
After this patch other directories can use this architecture detector
without directly including it from perf's directory. Libbpf would
utilize it to get proper $(ARCH) so it can receive correct uapi include
directory.

Signed-off-by: Wang Nan <wangnan0@huawei.com>
Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
---
 tools/perf/config/Makefile                   | 2 +-
 tools/perf/tests/make                        | 2 +-
 tools/{perf/config => scripts}/Makefile.arch | 0
 3 files changed, 2 insertions(+), 2 deletions(-)
 rename tools/{perf/config => scripts}/Makefile.arch (100%)

diff --git a/tools/perf/config/Makefile b/tools/perf/config/Makefile
index a552417..34717e4 100644
--- a/tools/perf/config/Makefile
+++ b/tools/perf/config/Makefile
@@ -17,7 +17,7 @@ detected_var = $(shell echo "$(1)=$($(1))" >> $(OUTPUT).config-detected)
 
 CFLAGS := $(EXTRA_CFLAGS) $(EXTRA_WARNINGS)
 
-include $(src-perf)/config/Makefile.arch
+include $(srctree)/tools/scripts/Makefile.arch
 
 $(call detected_var,ARCH)
 
diff --git a/tools/perf/tests/make b/tools/perf/tests/make
index 8ea3dff..cd9c3ce 100644
--- a/tools/perf/tests/make
+++ b/tools/perf/tests/make
@@ -12,7 +12,7 @@ endif
 else
 PERF := .
 
-include config/Makefile.arch
+include $(srctree)/scripts/Makefile.arch
 
 # FIXME looks like x86 is the only arch running tests ;-)
 # we need some IS_(32/64) flag to make this generic
diff --git a/tools/perf/config/Makefile.arch b/tools/scripts/Makefile.arch
similarity index 100%
rename from tools/perf/config/Makefile.arch
rename to tools/scripts/Makefile.arch
-- 
1.8.3.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1291819 — [PATCH v3 0/3] perf build: PowerPC: Fix build breakage due to libbpf

FromWang Nan <wangnan0@huawei.com>
Date2015-12-15 04:40 +0100
Subject[PATCH v3 0/3] perf build: PowerPC: Fix build breakage due to libbpf
Message-ID<qFOCZ-6Zc-3@gated-at.bofh.it>
In reply to#1291107
Hi Naveen,

   Now I know your problem is in native building and the reason is
missing proper $(ARCH). I think other than that there's another problem
in libbpf's building: if your problem is unable to compile libbpf,
feature checker should find it and set NO_LIBBPF=1 for perf, so perf
building won't be blocked, only BPF related features should be turned
off. Also, I think including Makefile.arch from tools/scripts would be
better, because libbpf is at the same level with perf. So I separate
them into 3 patches. Please help me test it on PowerPC.

Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Cc: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>

Naveen N. Rao (1):
  perf: bpf: Fix build breakage due to libbpf

Wang Nan (2):
  perf tools: Fix PowerPC native building
  tools: Move Makefile.arch from perf/config to tools/scripts

 tools/build/feature/test-bpf.c               | 20 +++++++++++++++++++-
 tools/lib/bpf/Makefile                       |  3 ++-
 tools/lib/bpf/bpf.c                          |  4 ++--
 tools/perf/config/Makefile                   |  2 +-
 tools/perf/tests/make                        |  2 +-
 tools/{perf/config => scripts}/Makefile.arch |  0
 6 files changed, 25 insertions(+), 6 deletions(-)
 rename tools/{perf/config => scripts}/Makefile.arch (100%)

-- 
1.8.3.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1291820 — [PATCH v3 1/3] perf tools: Fix PowerPC native building

FromWang Nan <wangnan0@huawei.com>
Date2015-12-15 04:40 +0100
Subject[PATCH v3 1/3] perf tools: Fix PowerPC native building
Message-ID<qFOCZ-6Zc-1@gated-at.bofh.it>
In reply to#1291819
Checks BPF syscall number, turn off libbpf building on platform doesn't
correctly support sys_bpf instead of blocking compiling.

Reported-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Signed-off-by: Wang Nan <wangnan0@huawei.com>
Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
---
 tools/build/feature/test-bpf.c | 20 +++++++++++++++++++-
 tools/lib/bpf/bpf.c            |  4 ++--
 2 files changed, 21 insertions(+), 3 deletions(-)

diff --git a/tools/build/feature/test-bpf.c b/tools/build/feature/test-bpf.c
index 062bac8..b389026 100644
--- a/tools/build/feature/test-bpf.c
+++ b/tools/build/feature/test-bpf.c
@@ -1,9 +1,23 @@
+#include <asm/unistd.h>
 #include <linux/bpf.h>
+#include <unistd.h>
+
+#ifndef __NR_bpf
+# if defined(__i386__)
+#  define __NR_bpf 357
+# elif defined(__x86_64__)
+#  define __NR_bpf 321
+# elif defined(__aarch64__)
+#  define __NR_bpf 280
+#  error __NR_bpf not defined. libbpf does not support your arch.
+# endif
+#endif
 
 int main(void)
 {
 	union bpf_attr attr;
 
+	/* Check fields in attr */
 	attr.prog_type = BPF_PROG_TYPE_KPROBE;
 	attr.insn_cnt = 0;
 	attr.insns = 0;
@@ -14,5 +28,9 @@ int main(void)
 	attr.kern_version = 0;
 
 	attr = attr;
-	return 0;
+	/*
+	 * Test existence of __NR_bpf and BPF_PROG_LOAD.
+	 * This call should fail if we run the testcase.
+	 */
+	return syscall(__NR_bpf, BPF_PROG_LOAD, attr, sizeof(attr));
 }
diff --git a/tools/lib/bpf/bpf.c b/tools/lib/bpf/bpf.c
index 5bdc6ea..1f91cc9 100644
--- a/tools/lib/bpf/bpf.c
+++ b/tools/lib/bpf/bpf.c
@@ -14,8 +14,8 @@
 #include "bpf.h"
 
 /*
- * When building perf, unistd.h is override. Define __NR_bpf is
- * required to be defined.
+ * When building perf, unistd.h is overrided. __NR_bpf is
+ * required to be defined explicitly.
  */
 #ifndef __NR_bpf
 # if defined(__i386__)
-- 
1.8.3.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1291821 — [PATCH v3 3/3] perf: bpf: Fix build breakage due to libbpf

FromWang Nan <wangnan0@huawei.com>
Date2015-12-15 04:40 +0100
Subject[PATCH v3 3/3] perf: bpf: Fix build breakage due to libbpf
Message-ID<qFOD0-6Zc-15@gated-at.bofh.it>
In reply to#1291819
From: "Naveen N. Rao" <naveen.n.rao@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/perf/config/Makefile.arch for the proper
$ARCH macro. While at it, remove redundant LP64 macro definition.

Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Signed-off-by: Wang Nan <wangnan0@huawei.com>
Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
---
 tools/lib/bpf/Makefile | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/tools/lib/bpf/Makefile b/tools/lib/bpf/Makefile
index 636e3dd..3d34a8c 100644
--- a/tools/lib/bpf/Makefile
+++ b/tools/lib/bpf/Makefile
@@ -31,7 +31,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

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


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

FromWang Nan <wangnan0@huawei.com>
Date2015-12-15 10:00 +0100
Subject[PATCH v4] perf: bpf: Fix build breakage due to libbpf
Message-ID<qFTCG-1Fp-5@gated-at.bofh.it>
In reply to#1291821
From: "Naveen N. Rao" <naveen.n.rao@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@linux.vnet.ibm.com>
Signed-off-by: Wang Nan <wangnan0@huawei.com>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
---

v3 -> v4: Add srctree detector code so directly run 'make' in libbpf
          directory would not cause error.

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

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1292072 — Re: [PATCH v4] perf: bpf: Fix build breakage due to libbpf

From"Naveen N. Rao" <naveen.n.rao@linux.vnet.ibm.com>
Date2015-12-15 12:50 +0100
SubjectRe: [PATCH v4] perf: bpf: Fix build breakage due to libbpf
Message-ID<qFWhb-3v9-7@gated-at.bofh.it>
In reply to#1291938
On 2015/12/15 08:51AM, Wang Nan wrote:
> From: "Naveen N. Rao" <naveen.n.rao@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@linux.vnet.ibm.com>
> Signed-off-by: Wang Nan <wangnan0@huawei.com>
> Acked-by: Jiri Olsa <jolsa@kernel.org>
> Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
> Cc: Sukadev Bhattiprolu <sukadev@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@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
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1293328 — Re: [PATCH v4] perf: bpf: Fix build breakage due to libbpf

FromArnaldo Carvalho de Melo <acme@kernel.org>
Date2015-12-16 20:50 +0100
SubjectRe: [PATCH v4] perf: bpf: Fix build breakage due to libbpf
Message-ID<qGqfg-61p-13@gated-at.bofh.it>
In reply to#1292072
Em Tue, Dec 15, 2015 at 05:10:46PM +0530, Naveen N. Rao escreveu:
> On 2015/12/15 08:51AM, Wang Nan wrote:
> > From: "Naveen N. Rao" <naveen.n.rao@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@linux.vnet.ibm.com>
> > Signed-off-by: Wang Nan <wangnan0@huawei.com>
> > Acked-by: Jiri Olsa <jolsa@kernel.org>
> > Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
> > Cc: Sukadev Bhattiprolu <sukadev@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@linux.vnet.ibm.com>

Trying to apply the patchkit:

[acme@zoo linux]$ make -C tools clean > /dev/null 2>&1
[acme@zoo linux]$ make -C tools/perf build-test
make: Entering directory '/home/git/linux/tools/perf'
Testing Makefile
tests/make:15: /scripts/Makefile.arch: No such file or directory
make[2]: *** No rule to make target '/scripts/Makefile.arch'.  Stop.
tests/make:5: recipe for target 'all' failed
make[1]: *** [all] Error 2
Makefile:81: recipe for target 'build-test' failed
make: *** [build-test] Error 2
make: Leaving directory '/home/git/linux/tools/perf'
[acme@zoo linux]$

What am I doing wrong?

- Arnaldo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1293545 — Re: [PATCH v4] perf: bpf: Fix build breakage due to libbpf

From"Wangnan (F)" <wangnan0@huawei.com>
Date2015-12-17 02:40 +0100
SubjectRe: [PATCH v4] perf: bpf: Fix build breakage due to libbpf
Message-ID<qGvHX-16n-1@gated-at.bofh.it>
In reply to#1293328

On 2015/12/17 3:42, Arnaldo Carvalho de Melo wrote:
> Em Tue, Dec 15, 2015 at 05:10:46PM +0530, Naveen N. Rao escreveu:
>> On 2015/12/15 08:51AM, Wang Nan wrote:
>>> From: "Naveen N. Rao" <naveen.n.rao@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@linux.vnet.ibm.com>
>>> Signed-off-by: Wang Nan <wangnan0@huawei.com>
>>> Acked-by: Jiri Olsa <jolsa@kernel.org>
>>> Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
>>> Cc: Sukadev Bhattiprolu <sukadev@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@linux.vnet.ibm.com>
> Trying to apply the patchkit:
>
> [acme@zoo linux]$ make -C tools clean > /dev/null 2>&1
> [acme@zoo linux]$ make -C tools/perf build-test
> make: Entering directory '/home/git/linux/tools/perf'
> Testing Makefile
> tests/make:15: /scripts/Makefile.arch: No such file or directory
> make[2]: *** No rule to make target '/scripts/Makefile.arch'.  Stop.
> tests/make:5: recipe for target 'all' failed
> make[1]: *** [all] Error 2
> Makefile:81: recipe for target 'build-test' failed
> make: *** [build-test] Error 2
> make: Leaving directory '/home/git/linux/tools/perf'
> [acme@zoo linux]$
>
> What am I doing wrong?

You need all 3 patches. This v4 patch is a fix for previous v3 3/3 and I 
send
this patch by replying that one. I thought your email client is sorted 
by thread
so you can easily find it but it seems I was wrong...

The whole thread is:

[PATCH v3 0/3] perf build: PowerPC: Fix build breakage due to libbpf:
http://lkml.kernel.org/g/1450150557-127942-1-git-send-email-wangnan0@huawei.com

[PATCH v3 1/3] perf tools: Fix PowerPC native building
http://lkml.kernel.org/g/1450150557-127942-2-git-send-email-wangnan0@huawei.com

[PATCH v3 2/3] tools: Move Makefile.arch from perf/config to tools/scripts
http://lkml.kernel.org/g/1450150557-127942-3-git-send-email-wangnan0@huawei.com

[PATCH v3 3/3] perf: bpf: Fix build breakage due to libbpf
http://lkml.kernel.org/g/1450150557-127942-4-git-send-email-wangnan0@huawei.com

and [PATCH v3 3/3] breaks local building because the usage of "srctree", and
I fix it in this one.

Thanks.


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1293612 — Re: [PATCH v4] perf: bpf: Fix build breakage due to libbpf

From"Naveen N. Rao" <naveen.n.rao@linux.vnet.ibm.com>
Date2015-12-17 06:10 +0100
SubjectRe: [PATCH v4] perf: bpf: Fix build breakage due to libbpf
Message-ID<qGyZb-3kJ-7@gated-at.bofh.it>
In reply to#1293545
On 2015/12/17 09:29AM, Wang Nan wrote:
> 
> 
> On 2015/12/17 3:42, Arnaldo Carvalho de Melo wrote:
> >Em Tue, Dec 15, 2015 at 05:10:46PM +0530, Naveen N. Rao escreveu:
> >>On 2015/12/15 08:51AM, Wang Nan wrote:
> >>>From: "Naveen N. Rao" <naveen.n.rao@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@linux.vnet.ibm.com>
> >>>Signed-off-by: Wang Nan <wangnan0@huawei.com>
> >>>Acked-by: Jiri Olsa <jolsa@kernel.org>
> >>>Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
> >>>Cc: Sukadev Bhattiprolu <sukadev@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@linux.vnet.ibm.com>
> >Trying to apply the patchkit:
> >
> >[acme@zoo linux]$ make -C tools clean > /dev/null 2>&1
> >[acme@zoo linux]$ make -C tools/perf build-test
> >make: Entering directory '/home/git/linux/tools/perf'
> >Testing Makefile
> >tests/make:15: /scripts/Makefile.arch: No such file or directory
> >make[2]: *** No rule to make target '/scripts/Makefile.arch'.  Stop.
> >tests/make:5: recipe for target 'all' failed
> >make[1]: *** [all] Error 2
> >Makefile:81: recipe for target 'build-test' failed
> >make: *** [build-test] Error 2
> >make: Leaving directory '/home/git/linux/tools/perf'
> >[acme@zoo linux]$
> >
> >What am I doing wrong?
> 
> You need all 3 patches. This v4 patch is a fix for previous v3 3/3 and I
> send
> this patch by replying that one. I thought your email client is sorted by
> thread
> so you can easily find it but it seems I was wrong...

Arrgh! I see the confusion - your v4 didn't explicitly mention patch 
number 3, so that must have made Arnaldo think that this patch alone is 
enough. Perhaps [PATCH v4 3/3] would have been clearer.

> 
> The whole thread is:
> 
> [PATCH v3 0/3] perf build: PowerPC: Fix build breakage due to libbpf:
> http://lkml.kernel.org/g/1450150557-127942-1-git-send-email-wangnan0@huawei.com
> 
> [PATCH v3 1/3] perf tools: Fix PowerPC native building
> http://lkml.kernel.org/g/1450150557-127942-2-git-send-email-wangnan0@huawei.com
> 
> [PATCH v3 2/3] tools: Move Makefile.arch from perf/config to tools/scripts
> http://lkml.kernel.org/g/1450150557-127942-3-git-send-email-wangnan0@huawei.com
> 
> [PATCH v3 3/3] perf: bpf: Fix build breakage due to libbpf
> http://lkml.kernel.org/g/1450150557-127942-4-git-send-email-wangnan0@huawei.com
> 
> and [PATCH v3 3/3] breaks local building because the usage of "srctree", and
	     ^^
You mean v4 here.

Anyway, now that you've sent v4, it should be much clearer.

Thanks,
Naveen

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1293831 — Re: [PATCH v4] perf: bpf: Fix build breakage due to libbpf

FromArnaldo Carvalho de Melo <acme@kernel.org>
Date2015-12-17 13:20 +0100
SubjectRe: [PATCH v4] perf: bpf: Fix build breakage due to libbpf
Message-ID<qGFHk-7JC-5@gated-at.bofh.it>
In reply to#1293612
Em Thu, Dec 17, 2015 at 10:37:14AM +0530, Naveen N. Rao escreveu:
> On 2015/12/17 09:29AM, Wang Nan wrote:
> > The whole thread is:
> > 
> > [PATCH v3 0/3] perf build: PowerPC: Fix build breakage due to libbpf:
> > http://lkml.kernel.org/g/1450150557-127942-1-git-send-email-wangnan0@huawei.com
> > 
> > [PATCH v3 1/3] perf tools: Fix PowerPC native building
> > http://lkml.kernel.org/g/1450150557-127942-2-git-send-email-wangnan0@huawei.com
> > 
> > [PATCH v3 2/3] tools: Move Makefile.arch from perf/config to tools/scripts
> > http://lkml.kernel.org/g/1450150557-127942-3-git-send-email-wangnan0@huawei.com
> > 
> > [PATCH v3 3/3] perf: bpf: Fix build breakage due to libbpf
> > http://lkml.kernel.org/g/1450150557-127942-4-git-send-email-wangnan0@huawei.com
> > 
> > and [PATCH v3 3/3] breaks local building because the usage of "srctree", and
	     ^^
> You mean v4 here.

> Anyway, now that you've sent v4, it should be much clearer.

Right, I should've read it more thoroughly, but anyway, I'll process it
today.

- Arnaldo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1291939 — Re: [PATCH v3 3/3] perf: bpf: Fix build breakage due to libbpf

From"Wangnan (F)" <wangnan0@huawei.com>
Date2015-12-15 10:00 +0100
SubjectRe: [PATCH v3 3/3] perf: bpf: Fix build breakage due to libbpf
Message-ID<qFTCH-1Fp-13@gated-at.bofh.it>
In reply to#1291821
This patch contains a problem.

On 2015/12/15 11:35, Wang Nan wrote:
> From: "Naveen N. Rao" <naveen.n.rao@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/perf/config/Makefile.arch for the proper
> $ARCH macro. While at it, remove redundant LP64 macro definition.
>
> Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
> Signed-off-by: Wang Nan <wangnan0@huawei.com>
> Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
> Cc: Jiri Olsa <jolsa@redhat.com>
> Cc: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
> ---
>   tools/lib/bpf/Makefile | 3 ++-
>   1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/tools/lib/bpf/Makefile b/tools/lib/bpf/Makefile
> index 636e3dd..3d34a8c 100644
> --- a/tools/lib/bpf/Makefile
> +++ b/tools/lib/bpf/Makefile
> @@ -31,7 +31,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
> +

Here we depend on $(srctree), but libbpf's Makefile doesn't automatically
detect it. Directly 'make' in libbpf directory causes an error.

Will post a v4 for it.

Thank you.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1291916 — Re: [PATCH v3 0/3] perf build: PowerPC: Fix build breakage due to libbpf

FromJiri Olsa <jolsa@redhat.com>
Date2015-12-15 09:10 +0100
SubjectRe: [PATCH v3 0/3] perf build: PowerPC: Fix build breakage due to libbpf
Message-ID<qFSQj-1nP-23@gated-at.bofh.it>
In reply to#1291819
On Tue, Dec 15, 2015 at 03:35:54AM +0000, Wang Nan wrote:
> Hi Naveen,
> 
>    Now I know your problem is in native building and the reason is
> missing proper $(ARCH). I think other than that there's another problem
> in libbpf's building: if your problem is unable to compile libbpf,
> feature checker should find it and set NO_LIBBPF=1 for perf, so perf
> building won't be blocked, only BPF related features should be turned
> off. Also, I think including Makefile.arch from tools/scripts would be
> better, because libbpf is at the same level with perf. So I separate
> them into 3 patches. Please help me test it on PowerPC.
> 
> Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
> Cc: Jiri Olsa <jolsa@redhat.com>
> Cc: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
> Cc: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
> 
> Naveen N. Rao (1):
>   perf: bpf: Fix build breakage due to libbpf
> 
> Wang Nan (2):
>   perf tools: Fix PowerPC native building
>   tools: Move Makefile.arch from perf/config to tools/scripts

for the patchset:

Acked-by: Jiri Olsa <jolsa@kernel.org>

thanks,
jirka
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1292068 — Re: [PATCH v3 0/3] perf build: PowerPC: Fix build breakage due to libbpf

From"Naveen N. Rao" <naveen.n.rao@linux.vnet.ibm.com>
Date2015-12-15 12:40 +0100
SubjectRe: [PATCH v3 0/3] perf build: PowerPC: Fix build breakage due to libbpf
Message-ID<qFW7v-3rs-15@gated-at.bofh.it>
In reply to#1291819
On 2015/12/15 03:35AM, Wang Nan wrote:
> Hi Naveen,
> 
>    Now I know your problem is in native building and the reason is
> missing proper $(ARCH). I think other than that there's another problem
> in libbpf's building: if your problem is unable to compile libbpf,
> feature checker should find it and set NO_LIBBPF=1 for perf, so perf
> building won't be blocked, only BPF related features should be turned
> off. Also, I think including Makefile.arch from tools/scripts would be
> better, because libbpf is at the same level with perf. So I separate
> them into 3 patches. Please help me test it on PowerPC.

Hi Wang,
Thanks for putting this together. Entire series:

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


> 
> Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
> Cc: Jiri Olsa <jolsa@redhat.com>
> Cc: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
> Cc: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
> 
> Naveen N. Rao (1):
>   perf: bpf: Fix build breakage due to libbpf
> 
> Wang Nan (2):
>   perf tools: Fix PowerPC native building
>   tools: Move Makefile.arch from perf/config to tools/scripts
> 
>  tools/build/feature/test-bpf.c               | 20 +++++++++++++++++++-
>  tools/lib/bpf/Makefile                       |  3 ++-
>  tools/lib/bpf/bpf.c                          |  4 ++--
>  tools/perf/config/Makefile                   |  2 +-
>  tools/perf/tests/make                        |  2 +-
>  tools/{perf/config => scripts}/Makefile.arch |  0
>  6 files changed, 25 insertions(+), 6 deletions(-)
>  rename tools/{perf/config => scripts}/Makefile.arch (100%)
> 
> -- 
> 1.8.3.4
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web