Rasberry Pi4 Ubuntu OS EBPF编译错误:未知类型名称' atomic64_t'汇编错误

发布于 2025-02-11 18:30:19 字数 5078 浏览 1 评论 0原文

我试图编译Linux内核EBPF示例(MAP_PERF_TEST_KERN.C)并获取编译错误。感谢任何指示,以解决此错误。

root@rm-desktop:~/libbpf/src# uname -a
Linux rm-desktop 5.15.0-1011-raspi #13-Ubuntu SMP PREEMPT Thu Jun 2 11:44:34 UTC 2022 aarch64 aarch64 aarch64 GNU/Linux



clang -nostdinc -isystem `clang -print-file-name=include` \
                -D__KERNEL__ -D__ASM_SYSREG_H \
                -Wno-unused-value -Wno-pointer-sign \
                -Wno-compare-distinct-pointer-types \
                -Wno-gnu-variable-sized-type-not-at-end \
                -Wno-address-of-packed-member -Wno-tautological-compare \
                -Wno-unknown-warning-option \
                -I/usr/lib/usr/include/ \
                -I/root/linux-headers-`uname -r`/include/linux/atomic \
                -I/usr/src/linux-headers-`uname -r`/include \
               -I/usr/src/linux-headers-`uname -r`/arch/arm64/include \
               -I/usr/src/linux-headers-`uname -r`/arch/arm64/include/asm \
               -I/usr/src/linux-headers-`uname -r`/arch/arm64/include/uapi \
               -I/usr/src/linux-headers-`uname -r`/arch/arm64/include/generated/asm \
               -I/usr/src/linux-headers-`uname -r`/arch/arm64/include/generated/uapi \
               -I/usr/src/linux-headers-`uname -r`/include/generated/uapi \
               -I/usr/src/linux-headers-`uname -r`/include/uapi \
                -O2 -emit-llvm -c map_perf_test_kern.c -o -| llc -march=bpf -filetype=obj -o map_perf_test_kern.o
 


 root@rm-desktop:~/libbpf/src# clang -nostdinc -isystem `clang -print-file-name=include`                 -D__KERNEL__ -D__ASM_SYSREG_H                 -Wno-unused-value -Wno-pointer-sign                 -Wno-compare-distinct-pointer-types                 -Wno-gnu-variable-sized-type-not-at-end                 -Wno-address-of-packed-member -Wno-tautological-compare                 -Wno-unknown-warning-option                                     -I ./                 -I /usr/lib/usr/include/                 -I/usr/src/linux-headers-`uname -r`/include/linux/atomic                 -I/usr/src/linux-headers-`uname -r`/include             -I/usr/src/linux-headers-`uname -r`/arch/arm64/include                  -I/usr/src/linux-headers-`uname -r`/arch/arm64/include/uapi                  -I/usr/src/linux-headers-`uname -r`/arch/arm64/include/generated/uapi           -I/usr/src/linux-headers-`uname -r`/include/generated/uapi              -I/usr/src/linux-headers-`uname -r`/include/uapi                 -O2 -emit-llvm -c map_perf_test_kern.c -o -| llc -march=bpf -filetype=obj -o map_perf_test_kern.o
In file included from map_perf_test_kern.c:7:
In file included from /usr/src/linux-headers-5.15.0-1011-raspi/include/linux/skbuff.h:13:
In file included from /usr/src/linux-headers-5.15.0-1011-raspi/include/linux/kernel.h:12:
In file included from /usr/src/linux-headers-5.15.0-1011-raspi/include/linux/bitops.h:33:
In file included from /usr/src/linux-headers-5.15.0-1011-raspi/include/asm/bitops.h:32:
In file included from /usr/src/linux-headers-5.15.0-1011-raspi/include/asm-generic/bitops/lock.h:5:
In file included from /usr/src/linux-headers-5.15.0-1011-raspi/include/linux/atomic.h:80:
/usr/src/linux-headers-5.15.0-1011-raspi/include/linux/atomic/atomic-arch-fallback.h:1273:34: error: unknown type name 'atomic64_t'; did you mean 'atomic_t'?
arch_atomic64_read_acquire(const atomic64_t *v)
                                 ^~~~~~~~~~
                                 atomic_t
/usr/src/linux-headers-5.15.0-1011-raspi/include/linux/types.h:168:3: note: 'atomic_t' declared here
} atomic_t;
  ^
In file included from map_perf_test_kern.c:7:
In file included from /usr/src/linux-headers-5.15.0-1011-raspi/include/linux/skbuff.h:13:
In file included from /usr/src/linux-headers-5.15.0-1011-raspi/include/linux/kernel.h:12:
In file included from /usr/src/linux-headers-5.15.0-1011-raspi/include/linux/bitops.h:33:
In file included from /usr/src/linux-headers-5.15.0-1011-raspi/include/asm/bitops.h:32:
In file included from /usr/src/linux-headers-5.15.0-1011-raspi/include/asm-generic/bitops/lock.h:5:
In file included from /usr/src/linux-headers-5.15.0-1011-raspi/include/linux/atomic.h:80:
/usr/src/linux-headers-5.15.0-1011-raspi/include/linux/atomic/atomic-arch-fallback.h:1277:20: error: use of undeclared identifier 'atomic64_t'
        if (__native_word(atomic64_t)) {
                          ^
/usr/src/linux-headers-5.15.0-1011-raspi/include/linux/atomic/atomic-arch-fallback.h:1277:20: error: use of undeclared identifier 'atomic64_t'
/usr/src/linux-headers-5.15.0-1011-raspi/include/linux/atomic/atomic-arch-fallback.h:1277:20: error: use of undeclared identifier 'atomic64_t'
/usr/src/linux-headers-5.15.0-1011-raspi/include/linux/atomic/atomic-arch-fallback.h:1277:20: error: use of undeclared identifier 'atomic64_t'
/usr/src/linux-headers-5.15.0-1011-raspi/include/linux/atomic/atomic-arch-fallback.h:1280:9: warning: implicit declaration of function 'arch_atomic64_read' is invalid in C99 [-Wimplicit-function-declaration]
                ret = arch_atomic64_read(v);

I was trying to compile Linux kernel ebpf example (map_perf_test_kern.c) and getting compilation errors. Appreciate any pointers to get around this error.

root@rm-desktop:~/libbpf/src# uname -a
Linux rm-desktop 5.15.0-1011-raspi #13-Ubuntu SMP PREEMPT Thu Jun 2 11:44:34 UTC 2022 aarch64 aarch64 aarch64 GNU/Linux



clang -nostdinc -isystem `clang -print-file-name=include` \
                -D__KERNEL__ -D__ASM_SYSREG_H \
                -Wno-unused-value -Wno-pointer-sign \
                -Wno-compare-distinct-pointer-types \
                -Wno-gnu-variable-sized-type-not-at-end \
                -Wno-address-of-packed-member -Wno-tautological-compare \
                -Wno-unknown-warning-option \
                -I/usr/lib/usr/include/ \
                -I/root/linux-headers-`uname -r`/include/linux/atomic \
                -I/usr/src/linux-headers-`uname -r`/include \
               -I/usr/src/linux-headers-`uname -r`/arch/arm64/include \
               -I/usr/src/linux-headers-`uname -r`/arch/arm64/include/asm \
               -I/usr/src/linux-headers-`uname -r`/arch/arm64/include/uapi \
               -I/usr/src/linux-headers-`uname -r`/arch/arm64/include/generated/asm \
               -I/usr/src/linux-headers-`uname -r`/arch/arm64/include/generated/uapi \
               -I/usr/src/linux-headers-`uname -r`/include/generated/uapi \
               -I/usr/src/linux-headers-`uname -r`/include/uapi \
                -O2 -emit-llvm -c map_perf_test_kern.c -o -| llc -march=bpf -filetype=obj -o map_perf_test_kern.o
 


 root@rm-desktop:~/libbpf/src# clang -nostdinc -isystem `clang -print-file-name=include`                 -D__KERNEL__ -D__ASM_SYSREG_H                 -Wno-unused-value -Wno-pointer-sign                 -Wno-compare-distinct-pointer-types                 -Wno-gnu-variable-sized-type-not-at-end                 -Wno-address-of-packed-member -Wno-tautological-compare                 -Wno-unknown-warning-option                                     -I ./                 -I /usr/lib/usr/include/                 -I/usr/src/linux-headers-`uname -r`/include/linux/atomic                 -I/usr/src/linux-headers-`uname -r`/include             -I/usr/src/linux-headers-`uname -r`/arch/arm64/include                  -I/usr/src/linux-headers-`uname -r`/arch/arm64/include/uapi                  -I/usr/src/linux-headers-`uname -r`/arch/arm64/include/generated/uapi           -I/usr/src/linux-headers-`uname -r`/include/generated/uapi              -I/usr/src/linux-headers-`uname -r`/include/uapi                 -O2 -emit-llvm -c map_perf_test_kern.c -o -| llc -march=bpf -filetype=obj -o map_perf_test_kern.o
In file included from map_perf_test_kern.c:7:
In file included from /usr/src/linux-headers-5.15.0-1011-raspi/include/linux/skbuff.h:13:
In file included from /usr/src/linux-headers-5.15.0-1011-raspi/include/linux/kernel.h:12:
In file included from /usr/src/linux-headers-5.15.0-1011-raspi/include/linux/bitops.h:33:
In file included from /usr/src/linux-headers-5.15.0-1011-raspi/include/asm/bitops.h:32:
In file included from /usr/src/linux-headers-5.15.0-1011-raspi/include/asm-generic/bitops/lock.h:5:
In file included from /usr/src/linux-headers-5.15.0-1011-raspi/include/linux/atomic.h:80:
/usr/src/linux-headers-5.15.0-1011-raspi/include/linux/atomic/atomic-arch-fallback.h:1273:34: error: unknown type name 'atomic64_t'; did you mean 'atomic_t'?
arch_atomic64_read_acquire(const atomic64_t *v)
                                 ^~~~~~~~~~
                                 atomic_t
/usr/src/linux-headers-5.15.0-1011-raspi/include/linux/types.h:168:3: note: 'atomic_t' declared here
} atomic_t;
  ^
In file included from map_perf_test_kern.c:7:
In file included from /usr/src/linux-headers-5.15.0-1011-raspi/include/linux/skbuff.h:13:
In file included from /usr/src/linux-headers-5.15.0-1011-raspi/include/linux/kernel.h:12:
In file included from /usr/src/linux-headers-5.15.0-1011-raspi/include/linux/bitops.h:33:
In file included from /usr/src/linux-headers-5.15.0-1011-raspi/include/asm/bitops.h:32:
In file included from /usr/src/linux-headers-5.15.0-1011-raspi/include/asm-generic/bitops/lock.h:5:
In file included from /usr/src/linux-headers-5.15.0-1011-raspi/include/linux/atomic.h:80:
/usr/src/linux-headers-5.15.0-1011-raspi/include/linux/atomic/atomic-arch-fallback.h:1277:20: error: use of undeclared identifier 'atomic64_t'
        if (__native_word(atomic64_t)) {
                          ^
/usr/src/linux-headers-5.15.0-1011-raspi/include/linux/atomic/atomic-arch-fallback.h:1277:20: error: use of undeclared identifier 'atomic64_t'
/usr/src/linux-headers-5.15.0-1011-raspi/include/linux/atomic/atomic-arch-fallback.h:1277:20: error: use of undeclared identifier 'atomic64_t'
/usr/src/linux-headers-5.15.0-1011-raspi/include/linux/atomic/atomic-arch-fallback.h:1277:20: error: use of undeclared identifier 'atomic64_t'
/usr/src/linux-headers-5.15.0-1011-raspi/include/linux/atomic/atomic-arch-fallback.h:1280:9: warning: implicit declaration of function 'arch_atomic64_read' is invalid in C99 [-Wimplicit-function-declaration]
                ret = arch_atomic64_read(v);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文