1

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!

sawdust
  • 16,103
  • 3
  • 40
  • 50
Angela
  • 23
  • 4

0 Answers0