On 2016/8/13 20:17, Eric Leblond wrote:
The include of err.h is not explicitely needed in exported
functions and it was causing include conflict with some existing
code due to redefining some macros.

Signed-off-by: Eric Leblond <e...@regit.org>
---
  tools/lib/bpf/libbpf.c | 1 +
  tools/lib/bpf/libbpf.h | 1 -
  2 files changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/lib/bpf/libbpf.c b/tools/lib/bpf/libbpf.c
index b699aea..7872ff6 100644
--- a/tools/lib/bpf/libbpf.c
+++ b/tools/lib/bpf/libbpf.c
@@ -31,6 +31,7 @@
  #include <linux/kernel.h>
  #include <linux/bpf.h>
  #include <linux/list.h>
+#include <linux/err.h>
  #include <libelf.h>
  #include <gelf.h>
diff --git a/tools/lib/bpf/libbpf.h b/tools/lib/bpf/libbpf.h
index dd7a513..a6c5cde 100644
--- a/tools/lib/bpf/libbpf.h
+++ b/tools/lib/bpf/libbpf.h
@@ -23,7 +23,6 @@
#include <stdio.h>
  #include <stdbool.h>
-#include <linux/err.h>

Functions declared in this header require PTR_ERR
to decode error number. Logically speaking, this
header depends linux/err.h, so this include is
required. If not, there must have another way for
caller to decode error numbers.

I know the problem you try to solve. Please have a look at thread

https://lkml.org/lkml/2015/12/17/20

At that time I think we should create a wrapper in libbpf.h like this:

#ifdef USE_LINUX_ERR
#include <linux/err.h>
#endif
...
int libbpf_ptr_err(void *ptr);
...

It is acceptable but ugly. Can you find a better method?

Thank you.

  enum libbpf_errno {
        __LIBBPF_ERRNO__START = 4000,


Reply via email to