Re: [PATCH net-next 1/2] tools lib bpf: suppress useless include
From: Wangnan (F) <hidden>
Date: 2016-08-15 03:21:44
On 2016/8/13 20:17, Eric Leblond wrote:
quoted hunk ↗ jump to hunk
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 <redacted> --- 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,