I have been writing an ebpf golang program that tries to access struct task_struct
from #include<linux/sched.h>
.
I am on Debian GNU/Linux 11 (bullseye) with kernel version 5.10.0-19 and architecture x86_64. The header is found in the package linux-headers-5.10.0-19-common
.
I am trying to include the correct paths to compile. My current command is as follows (CLANG_INCLUDE contains a few headers specific to my ebpf program):
$(EBPF_BINARY): $(EBPF_SOURCE)
$(CLANG) -D __KERNEL__ -D __BPF_TRACING__ \
$(CLANG_INCLUDE) \
--include /usr/src/linux-headers-5.10.0-19-common/include/asm-generic/atomic64.h \
-I /usr/src/linux-headers-5.10.0-19-common/include \
-I /usr/src/linux-headers-5.10.0-19-amd64/include \
-I /usr/src/linux-headers-5.10.0-19-common/arch/x86/include/ \
-I /usr/src/linux-headers-5.10.0-19-common/arch/x86/include/uapi \
-I /usr/src/linux-headers-5.10.0-19-amd64/arch/x86/include/generated/uapi \
-I /usr/src/linux-headers-5.10.0-19-amd64/include/generated/uapi \
-I /usr/src/linux-headers-5.10.0-19-amd64/arch/x86/include/generated \
-O2 -target bpf -c $^ -o $@
It shows a handful of errors:
clang -D __KERNEL__ -D __BPF_TRACING__ \
-I headers \
--include /usr/src/linux-headers-5.10.0-19-common/include/asm-generic/atomic64.h \
-I /usr/src/linux-headers-5.10.0-19-common/include \
-I /usr/src/linux-headers-5.10.0-19-amd64/include \
-I /usr/src/linux-headers-5.10.0-19-common/arch/x86/include/ \
-I /usr/src/linux-headers-5.10.0-19-common/arch/x86/include/uapi \
-I /usr/src/linux-headers-5.10.0-19-amd64/arch/x86/include/generated/uapi \
-I /usr/src/linux-headers-5.10.0-19-amd64/include/generated/uapi \
-I /usr/src/linux-headers-5.10.0-19-amd64/arch/x86/include/generated \
-O2 -target bpf -c ebpf_prog/cgroup_skb.c -o ebpf_prog/cgroup_skb.elf
In file included from ebpf_prog/cgroup_skb.c:5:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/linux/sched.h:12:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/asm/current.h:5:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/linux/thread_info.h:12:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/linux/bug.h:5:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/asm/bug.h:20:
/usr/src/linux-headers-5.10.0-19-common/include/linux/kernel.h:479:5: warning: incompatible redeclaration of library function 'snprintf' [-Wincompatible-library-redeclaration]
int snprintf(char *buf, size_t size, const char *fmt, ...);
^
/usr/src/linux-headers-5.10.0-19-common/include/linux/kernel.h:479:5: note: 'snprintf' is a builtin with type 'int (char *, unsigned long, const char *, ...)'
/usr/src/linux-headers-5.10.0-19-common/include/linux/kernel.h:481:5: warning: incompatible redeclaration of library function 'vsnprintf' [-Wincompatible-library-redeclaration]
int vsnprintf(char *buf, size_t size, const char *fmt, va_list args);
^
/usr/src/linux-headers-5.10.0-19-common/include/linux/kernel.h:481:5: note: 'vsnprintf' is a builtin with type 'int (char *, unsigned long, const char *, __builtin_va_list)'
/usr/src/linux-headers-5.10.0-19-common/include/linux/kernel.h:851:9: warning: 'container_of' macro redefined [-Wmacro-redefined]
#define container_of(ptr, type, member) ({ \
^
headers/bpf_helpers.h:71:9: note: previous definition is here
#define container_of(ptr, type, member) \
^
In file included from ebpf_prog/cgroup_skb.c:5:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/linux/sched.h:12:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/asm/current.h:5:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/linux/thread_info.h:39:
In file included from /usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/thread_info.h:12:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/asm/page.h:24:
In file included from /usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/setup.h:10:
/usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/page_types.h:11:9: warning: 'PAGE_SIZE' macro redefined [-Wmacro-redefined]
#define PAGE_SIZE (_AC(1,UL) << PAGE_SHIFT)
^
/usr/src/linux-headers-5.10.0-19-common/include/asm/page.h:20:9: note: previous definition is here
#define PAGE_SIZE (1UL << PAGE_SHIFT)
^
In file included from ebpf_prog/cgroup_skb.c:5:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/linux/sched.h:12:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/asm/current.h:5:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/linux/thread_info.h:39:
In file included from /usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/thread_info.h:12:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/asm/page.h:24:
/usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/setup.h:82:9: warning: implicit declaration of function 'IS_ENABLED' is invalid in C99 [-Wimplicit-function-declaration]
return IS_ENABLED(CONFIG_RANDOMIZE_MEMORY) &&
^
/usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/setup.h:82:20: error: use of undeclared identifier 'CONFIG_RANDOMIZE_MEMORY'
return IS_ENABLED(CONFIG_RANDOMIZE_MEMORY) &&
^
/usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/setup.h:92:29: warning: implicit declaration of function 'IS_ENABLED' is invalid in C99 [-Wimplicit-function-declaration]
return kaslr_enabled() && !IS_ENABLED(CONFIG_KASAN);
^
/usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/setup.h:92:40: error: use of undeclared identifier 'CONFIG_KASAN'
return kaslr_enabled() && !IS_ENABLED(CONFIG_KASAN);
^
/usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/setup.h:97:33: error: use of undeclared identifier 'CONFIG_PAGE_OFFSETUL'
return (unsigned long)&_text - __START_KERNEL;
^
/usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/page_types.h:43:26: note: expanded from macro '__START_KERNEL'
#define __START_KERNEL (__START_KERNEL_map + __PHYSICAL_START)
^
/usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/page_32_types.h:20:28: note: expanded from macro '__START_KERNEL_map'
#define __START_KERNEL_map __PAGE_OFFSET
^
/usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/page_32_types.h:18:24: note: expanded from macro '__PAGE_OFFSET'
#define __PAGE_OFFSET __PAGE_OFFSET_BASE
^
note: (skipping 1 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
/usr/src/linux-headers-5.10.0-19-common/include/uapi/linux/const.h:21:18: note: expanded from macro '_AC'
#define _AC(X,Y) __AC(X,Y)
^
/usr/src/linux-headers-5.10.0-19-common/include/uapi/linux/const.h:20:20: note: expanded from macro '__AC'
#define __AC(X,Y) (X##Y)
^
<scratch space>:106:1: note: expanded from here
CONFIG_PAGE_OFFSETUL
^
In file included from ebpf_prog/cgroup_skb.c:5:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/linux/sched.h:12:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/asm/current.h:5:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/linux/thread_info.h:39:
In file included from /usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/thread_info.h:12:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/asm/page.h:24:
/usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/setup.h:97:33: error: use of undeclared identifier 'CONFIG_PHYSICAL_START'
/usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/page_types.h:43:47: note: expanded from macro '__START_KERNEL'
#define __START_KERNEL (__START_KERNEL_map + __PHYSICAL_START)
^
/usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/page_types.h:40:32: note: expanded from macro '__PHYSICAL_START'
#define __PHYSICAL_START ALIGN(CONFIG_PHYSICAL_START, \
^
In file included from ebpf_prog/cgroup_skb.c:5:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/linux/sched.h:12:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/asm/current.h:5:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/linux/thread_info.h:39:
In file included from /usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/thread_info.h:12:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/asm/page.h:24:
/usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/setup.h:97:33: error: use of undeclared identifier 'CONFIG_PHYSICAL_START'
/usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/page_types.h:43:47: note: expanded from macro '__START_KERNEL'
#define __START_KERNEL (__START_KERNEL_map + __PHYSICAL_START)
^
/usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/page_types.h:40:32: note: expanded from macro '__PHYSICAL_START'
#define __PHYSICAL_START ALIGN(CONFIG_PHYSICAL_START, \
^
In file included from ebpf_prog/cgroup_skb.c:5:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/linux/sched.h:12:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/asm/current.h:5:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/linux/thread_info.h:39:
In file included from /usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/thread_info.h:12:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/asm/page.h:24:
/usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/setup.h:97:33: error: use of undeclared identifier 'CONFIG_PHYSICAL_START'
/usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/page_types.h:43:47: note: expanded from macro '__START_KERNEL'
#define __START_KERNEL (__START_KERNEL_map + __PHYSICAL_START)
^
/usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/page_types.h:40:32: note: expanded from macro '__PHYSICAL_START'
#define __PHYSICAL_START ALIGN(CONFIG_PHYSICAL_START, \
^
In file included from ebpf_prog/cgroup_skb.c:5:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/linux/sched.h:12:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/asm/current.h:5:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/linux/thread_info.h:39:
In file included from /usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/thread_info.h:12:
/usr/src/linux-headers-5.10.0-19-common/include/asm/page.h:69:9: warning: 'PAGE_OFFSET' macro redefined [-Wmacro-redefined]
#define PAGE_OFFSET (0)
^
/usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/page_types.h:36:9: note: previous definition is here
#define PAGE_OFFSET ((unsigned long)__PAGE_OFFSET)
^
In file included from ebpf_prog/cgroup_skb.c:5:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/linux/sched.h:12:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/asm/current.h:5:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/linux/thread_info.h:39:
In file included from /usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/thread_info.h:53:
In file included from /usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/cpufeature.h:5:
In file included from /usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/processor.h:20:
In file included from /usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/pgtable_types.h:268:
/usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/pgtable_64_types.h:21:34: error: typedef redefinition with different types ('struct pte_t' vs 'struct pte_t')
typedef struct { pteval_t pte; } pte_t;
^
/usr/src/linux-headers-5.10.0-19-common/include/asm/page.h:39:3: note: previous definition is here
} pte_t;
^
In file included from ebpf_prog/cgroup_skb.c:5:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/linux/sched.h:12:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/asm/current.h:5:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/linux/thread_info.h:39:
In file included from /usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/thread_info.h:53:
In file included from /usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/cpufeature.h:5:
In file included from /usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/processor.h:20:
/usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/pgtable_types.h:284:47: error: typedef redefinition with different types ('struct pgprot' vs 'struct pgprot_t')
typedef struct pgprot { pgprotval_t pgprot; } pgprot_t;
^
/usr/src/linux-headers-5.10.0-19-common/include/asm/page.h:48:3: note: previous definition is here
} pgprot_t;
^
In file included from ebpf_prog/cgroup_skb.c:5:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/linux/sched.h:12:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/asm/current.h:5:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/linux/thread_info.h:39:
In file included from /usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/thread_info.h:53:
In file included from /usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/cpufeature.h:5:
In file included from /usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/processor.h:20:
/usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/pgtable_types.h:286:34: error: typedef redefinition with different types ('struct pgd_t' vs 'struct pgd_t')
typedef struct { pgdval_t pgd; } pgd_t;
^
/usr/src/linux-headers-5.10.0-19-common/include/asm/page.h:45:3: note: previous definition is here
} pgd_t;
^
In file included from ebpf_prog/cgroup_skb.c:5:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/linux/sched.h:12:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/asm/current.h:5:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/linux/thread_info.h:39:
In file included from /usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/thread_info.h:53:
In file included from /usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/cpufeature.h:5:
In file included from /usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/processor.h:20:
In file included from /usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/pgtable_types.h:371:
/usr/src/linux-headers-5.10.0-19-common/include/asm-generic/pgtable-nopud.h:18:9: warning: 'PUD_SHIFT' macro redefined [-Wmacro-redefined]
#define PUD_SHIFT P4D_SHIFT
^
/usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/pgtable_64_types.h:83:9: note: previous definition is here
#define PUD_SHIFT 30
^
In file included from ebpf_prog/cgroup_skb.c:5:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/linux/sched.h:12:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/asm/current.h:5:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/linux/thread_info.h:39:
In file included from /usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/thread_info.h:53:
In file included from /usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/cpufeature.h:5:
In file included from /usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/processor.h:20:
In file included from /usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/pgtable_types.h:371:
/usr/src/linux-headers-5.10.0-19-common/include/asm-generic/pgtable-nopud.h:19:9: warning: 'PTRS_PER_PUD' macro redefined [-Wmacro-redefined]
#define PTRS_PER_PUD 1
^
/usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/pgtable_64_types.h:84:9: note: previous definition is here
#define PTRS_PER_PUD 512
^
In file included from ebpf_prog/cgroup_skb.c:5:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/linux/sched.h:12:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/asm/current.h:5:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/linux/thread_info.h:39:
In file included from /usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/thread_info.h:53:
In file included from /usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/cpufeature.h:5:
In file included from /usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/processor.h:20:
In file included from /usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/pgtable_types.h:371:
/usr/src/linux-headers-5.10.0-19-common/include/asm-generic/pgtable-nopud.h:20:9: warning: 'PUD_SIZE' macro redefined [-Wmacro-redefined]
#define PUD_SIZE (1UL << PUD_SHIFT)
^
/usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/pgtable_64_types.h:100:9: note: previous definition is here
#define PUD_SIZE (_AC(1, UL) << PUD_SHIFT)
^
In file included from ebpf_prog/cgroup_skb.c:5:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/linux/sched.h:12:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/asm/current.h:5:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/linux/thread_info.h:39:
In file included from /usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/thread_info.h:53:
In file included from /usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/cpufeature.h:5:
In file included from /usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/processor.h:20:
In file included from /usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/pgtable_types.h:371:
/usr/src/linux-headers-5.10.0-19-common/include/asm-generic/pgtable-nopud.h:21:9: warning: 'PUD_MASK' macro redefined [-Wmacro-redefined]
#define PUD_MASK (~(PUD_SIZE-1))
^
/usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/pgtable_64_types.h:101:9: note: previous definition is here
#define PUD_MASK (~(PUD_SIZE - 1))
^
In file included from ebpf_prog/cgroup_skb.c:5:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/linux/sched.h:12:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/asm/current.h:5:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/linux/thread_info.h:39:
In file included from /usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/thread_info.h:53:
In file included from /usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/cpufeature.h:5:
In file included from /usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/processor.h:20:
In file included from /usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/pgtable_types.h:397:
/usr/src/linux-headers-5.10.0-19-common/include/asm-generic/pgtable-nopmd.h:18:31: error: typedef redefinition with different types ('struct pmd_t' vs 'struct pmd_t')
typedef struct { pud_t pud; } pmd_t;
^
/usr/src/linux-headers-5.10.0-19-common/include/asm/page.h:42:3: note: previous definition is here
} pmd_t;
^
In file included from ebpf_prog/cgroup_skb.c:5:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/linux/sched.h:12:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/asm/current.h:5:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/linux/thread_info.h:39:
In file included from /usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/thread_info.h:53:
In file included from /usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/cpufeature.h:5:
In file included from /usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/processor.h:20:
In file included from /usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/pgtable_types.h:397:
/usr/src/linux-headers-5.10.0-19-common/include/asm-generic/pgtable-nopmd.h:20:9: warning: 'PMD_SHIFT' macro redefined [-Wmacro-redefined]
#define PMD_SHIFT PUD_SHIFT
^
/usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/pgtable_64_types.h:90:9: note: previous definition is here
#define PMD_SHIFT 21
^
In file included from ebpf_prog/cgroup_skb.c:5:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/linux/sched.h:12:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/asm/current.h:5:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/linux/thread_info.h:39:
In file included from /usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/thread_info.h:53:
In file included from /usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/cpufeature.h:5:
In file included from /usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/processor.h:20:
In file included from /usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/pgtable_types.h:397:
/usr/src/linux-headers-5.10.0-19-common/include/asm-generic/pgtable-nopmd.h:21:9: warning: 'PTRS_PER_PMD' macro redefined [-Wmacro-redefined]
#define PTRS_PER_PMD 1
^
/usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/pgtable_64_types.h:91:9: note: previous definition is here
#define PTRS_PER_PMD 512
^
In file included from ebpf_prog/cgroup_skb.c:5:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/linux/sched.h:12:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/asm/current.h:5:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/linux/thread_info.h:39:
In file included from /usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/thread_info.h:53:
In file included from /usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/cpufeature.h:5:
In file included from /usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/processor.h:20:
/usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/pgtable_types.h:401:20: error: field designator 'pud' does not refer to any field in type 'pmd_t'; did you mean 'pmd'?
return (pmd_t) { .pud.p4d.pgd = native_make_pgd(val) };
^~~
pmd
/usr/src/linux-headers-5.10.0-19-common/include/asm/page.h:41:16: note: 'pmd' declared here
unsigned long pmd[16];
^
In file included from ebpf_prog/cgroup_skb.c:5:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/linux/sched.h:12:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/asm/current.h:5:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/linux/thread_info.h:39:
In file included from /usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/thread_info.h:53:
In file included from /usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/cpufeature.h:5:
In file included from /usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/processor.h:20:
/usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/pgtable_types.h:401:23: error: field designator cannot initialize a non-struct, non-union type 'unsigned long [16]'
return (pmd_t) { .pud.p4d.pgd = native_make_pgd(val) };
^
/usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/pgtable_types.h:406:28: error: no member named 'pud' in 'pmd_t'
return native_pgd_val(pmd.pud.p4d.pgd);
~~~ ^
In file included from ebpf_prog/cgroup_skb.c:5:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/linux/sched.h:12:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/asm/current.h:5:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/linux/thread_info.h:39:
In file included from /usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/thread_info.h:53:
In file included from /usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/cpufeature.h:5:
In file included from /usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/processor.h:22:
In file included from /usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/msr.h:11:
In file included from /usr/src/linux-headers-5.10.0-19-common/arch/x86/include/asm/cpumask.h:5:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/linux/cpumask.h:12:
In file included from /usr/src/linux-headers-5.10.0-19-common/include/linux/bitmap.h:9:
/usr/src/linux-headers-5.10.0-19-common/include/linux/string.h:26:15: warning: incompatible redeclaration of library function 'strncpy' [-Wincompatible-library-redeclaration]
extern char * strncpy(char *,const char *, __kernel_size_t);
^
/usr/src/linux-headers-5.10.0-19-common/include/linux/string.h:26:15: note: 'strncpy' is a builtin with type 'char *(char *, const char *, unsigned long)'
/usr/src/linux-headers-5.10.0-19-common/include/linux/string.h:42:15: warning: incompatible redeclaration of library function 'strncat' [-Wincompatible-library-redeclaration]
extern char * strncat(char *, const char *, __kernel_size_t);
^
/usr/src/linux-headers-5.10.0-19-common/include/linux/string.h:42:15: note: 'strncat' is a builtin with type 'char *(char *, const char *, unsigned long)'
/usr/src/linux-headers-5.10.0-19-common/include/linux/string.h:51:12: warning: incompatible redeclaration of library function 'strncmp' [-Wincompatible-library-redeclaration]
extern int strncmp(const char *,const char *,__kernel_size_t);
^
/usr/src/linux-headers-5.10.0-19-common/include/linux/string.h:51:12: note: 'strncmp' is a builtin with type 'int (const char *, const char *, unsigned long)'
/usr/src/linux-headers-5.10.0-19-common/include/linux/string.h:57:12: warning: incompatible redeclaration of library function 'strncasecmp' [-Wincompatible-library-redeclaration]
extern int strncasecmp(const char *s1, const char *s2, size_t n);
^
/usr/src/linux-headers-5.10.0-19-common/include/linux/string.h:57:12: note: 'strncasecmp' is a builtin with type 'int (const char *, const char *, unsigned long)'
/usr/src/linux-headers-5.10.0-19-common/include/linux/string.h:88:24: warning: incompatible redeclaration of library function 'strlen' [-Wincompatible-library-redeclaration]
extern __kernel_size_t strlen(const char *);
^
/usr/src/linux-headers-5.10.0-19-common/include/linux/string.h:88:24: note: 'strlen' is a builtin with type 'unsigned long (const char *)'
/usr/src/linux-headers-5.10.0-19-common/include/linux/string.h:100:24: warning: incompatible redeclaration of library function 'strspn' [-Wincompatible-library-redeclaration]
extern __kernel_size_t strspn(const char *,const char *);
^
/usr/src/linux-headers-5.10.0-19-common/include/linux/string.h:100:24: note: 'strspn' is a builtin with type 'unsigned long (const char *, const char *)'
/usr/src/linux-headers-5.10.0-19-common/include/linux/string.h:103:24: warning: incompatible redeclaration of library function 'strcspn' [-Wincompatible-library-redeclaration]
extern __kernel_size_t strcspn(const char *,const char *);
^
/usr/src/linux-headers-5.10.0-19-common/include/linux/string.h:103:24: note: 'strcspn' is a builtin with type 'unsigned long (const char *, const char *)'
/usr/src/linux-headers-5.10.0-19-common/include/linux/string.h:107:15: warning: incompatible redeclaration of library function 'memset' [-Wincompatible-library-redeclaration]
extern void * memset(void *,int,__kernel_size_t);
^
/usr/src/linux-headers-5.10.0-19-common/include/linux/string.h:107:15: note: 'memset' is a builtin with type 'void *(void *, int, unsigned long)'
/usr/src/linux-headers-5.10.0-19-common/include/linux/string.h:147:15: warning: incompatible redeclaration of library function 'memcpy' [-Wincompatible-library-redeclaration]
extern void * memcpy(void *,const void *,__kernel_size_t);
fatal error: too many errors emitted, stopping now [-ferror-limit=]
31 warnings and 20 errors generated.
make: *** [Makefile:41: ebpf_prog/cgroup_skb.elf] Error 1
I seem to be getting a lot of architecture related problems and undefined config values. I would like to be able to access this struct task_struct like how BCC manages to do it. If somebody can point me out to any flags or paths the program is missing, it will be greatly appreciated!