On 03/06/2018 02:50 PM, Jiri Benc wrote:
> Compilation of bpftool on a distro that lacks eBPF support in the installed
> kernel headers fails with:
> 
> common.c: In function ‘is_bpffs’:
> common.c:96:40: error: ‘BPF_FS_MAGIC’ undeclared (first use in this function)
>   return (unsigned long)st_fs.f_type == BPF_FS_MAGIC;
>                                         ^
> Fix this the same way it is already in tools/lib/bpf/libbpf.c and
> tools/lib/api/fs/fs.c.
> 
> Signed-off-by: Jiri Benc <jb...@redhat.com>

Thanks for the fix, Jiri! The standard approach to resolve such header 
dependencies under
tools/ would be to add a copy of magic.h uapi header into 
tools/include/uapi/linux/magic.h.

Both bpftool and libbpf have tools/include/uapi/ in their include path from 
their
Makefile, so they would pull this in automatically and it would also allow to 
get rid
of the extra ifdef in libbpf then. Could you look into that?

Thanks,
Daniel

> ---
>  tools/bpf/bpftool/common.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/tools/bpf/bpftool/common.c b/tools/bpf/bpftool/common.c
> index 0b482c0070e0..465995281dcd 100644
> --- a/tools/bpf/bpftool/common.c
> +++ b/tools/bpf/bpftool/common.c
> @@ -55,6 +55,10 @@
>  
>  #include "main.h"
>  
> +#ifndef BPF_FS_MAGIC
> +#define BPF_FS_MAGIC         0xcafe4a11
> +#endif
> +
>  void p_err(const char *fmt, ...)
>  {
>       va_list ap;
> 

Reply via email to