dns icon indicating copy to clipboard operation
dns copied to clipboard

Could not compile on Debian 12

Open l1x opened this issue 1 year ago • 6 comments

I'm using fbdns version:

Given:

uname -a
Linux deby.lan 6.1.0-8-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.25-1 (2023-04-22) x86_64 GNU/Linux

When I run:

doas apt install libbpf1 libbpf-dev libpcap0.8 libpcap0.8-dev make clang gcc-multilib
make

I expected this to happen:

Working compilation

But, instead this happened:

l1x@deby ~/c/d/dnswatch (main)> make
clang -g -O2 -Wall -fpie -fno-stack-protector -I /usr/include/bpf -target bpf -D__TARGET_ARCH_x86 -I bpf  -c bpf/dnswatch.bpf.c -o snoop/out/dnswatch_bpf_probe_core.o
In file included from bpf/dnswatch.bpf.c:23:
In file included from /usr/include/bpf/bpf_helpers.h:11:
/usr/include/bpf/bpf_helper_defs.h:78:83: error: unknown type name '__u64'
static long (*bpf_map_update_elem)(void *map, const void *key, const void *value, __u64 flags) = (void *) 2;
                                                                                  ^
/usr/include/bpf/bpf_helper_defs.h:102:42: error: unknown type name '__u32'
static long (*bpf_probe_read)(void *dst, __u32 size, const void *unsafe_ptr) = (void *) 4;
                                         ^
/usr/include/bpf/bpf_helper_defs.h:114:14: error: function cannot return function type 'int (void)'
static __u64 (*bpf_ktime_get_ns)(void) = (void *) 5;
             ^
/usr/include/bpf/bpf_helper_defs.h:177:50: error: unknown type name '__u32'
static long (*bpf_trace_printk)(const char *fmt, __u32 fmt_size, ...) = (void *) 6;
                                                 ^
/usr/include/bpf/bpf_helper_defs.h:193:14: error: function cannot return function type 'int (void)'
static __u32 (*bpf_get_prandom_u32)(void) = (void *) 7;
             ^
/usr/include/bpf/bpf_helper_defs.h:206:14: error: function cannot return function type 'int (void)'
static __u32 (*bpf_get_smp_processor_id)(void) = (void *) 8;
             ^
/usr/include/bpf/bpf_helper_defs.h:227:59: error: unknown type name '__u32'
static long (*bpf_skb_store_bytes)(struct __sk_buff *skb, __u32 offset, const void *from, __u32 len, __u64 flags) = (void *) 9;
                                                          ^
/usr/include/bpf/bpf_helper_defs.h:227:91: error: unknown type name '__u32'
static long (*bpf_skb_store_bytes)(struct __sk_buff *skb, __u32 offset, const void *from, __u32 len, __u64 flags) = (void *) 9;
                                                                                          ^
/usr/include/bpf/bpf_helper_defs.h:227:102: error: unknown type name '__u64'
static long (*bpf_skb_store_bytes)(struct __sk_buff *skb, __u32 offset, const void *from, __u32 len, __u64 flags) = (void *) 9;
                                                                                                     ^
/usr/include/bpf/bpf_helper_defs.h:256:59: error: unknown type name '__u32'
static long (*bpf_l3_csum_replace)(struct __sk_buff *skb, __u32 offset, __u64 from, __u64 to, __u64 size) = (void *) 10;
                                                          ^
/usr/include/bpf/bpf_helper_defs.h:256:73: error: unknown type name '__u64'
static long (*bpf_l3_csum_replace)(struct __sk_buff *skb, __u32 offset, __u64 from, __u64 to, __u64 size) = (void *) 10;
                                                                        ^
/usr/include/bpf/bpf_helper_defs.h:256:85: error: unknown type name '__u64'
static long (*bpf_l3_csum_replace)(struct __sk_buff *skb, __u32 offset, __u64 from, __u64 to, __u64 size) = (void *) 10;
                                                                                    ^
/usr/include/bpf/bpf_helper_defs.h:256:95: error: unknown type name '__u64'
static long (*bpf_l3_csum_replace)(struct __sk_buff *skb, __u32 offset, __u64 from, __u64 to, __u64 size) = (void *) 10;
                                                                                              ^
/usr/include/bpf/bpf_helper_defs.h:292:59: error: unknown type name '__u32'
static long (*bpf_l4_csum_replace)(struct __sk_buff *skb, __u32 offset, __u64 from, __u64 to, __u64 flags) = (void *) 11;
                                                          ^
/usr/include/bpf/bpf_helper_defs.h:292:73: error: unknown type name '__u64'
static long (*bpf_l4_csum_replace)(struct __sk_buff *skb, __u32 offset, __u64 from, __u64 to, __u64 flags) = (void *) 11;
                                                                        ^
/usr/include/bpf/bpf_helper_defs.h:292:85: error: unknown type name '__u64'
static long (*bpf_l4_csum_replace)(struct __sk_buff *skb, __u32 offset, __u64 from, __u64 to, __u64 flags) = (void *) 11;
                                                                                    ^
/usr/include/bpf/bpf_helper_defs.h:292:95: error: unknown type name '__u64'
static long (*bpf_l4_csum_replace)(struct __sk_buff *skb, __u32 offset, __u64 from, __u64 to, __u64 flags) = (void *) 11;
                                                                                              ^
/usr/include/bpf/bpf_helper_defs.h:327:63: error: unknown type name '__u32'
static long (*bpf_tail_call)(void *ctx, void *prog_array_map, __u32 index) = (void *) 12;
                                                              ^
/usr/include/bpf/bpf_helper_defs.h:355:58: error: unknown type name '__u32'
static long (*bpf_clone_redirect)(struct __sk_buff *skb, __u32 ifindex, __u64 flags) = (void *) 13;
                                                         ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
make: *** [Makefile:7: snoop/out/dnswatch_bpf_probe_core.o] Error 1

l1x avatar May 14 '23 19:05 l1x