From 95377603c6aba7baf1d1bf1eaefa110164ef2d2b Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Tue, 10 Feb 2026 12:04:28 -0800 Subject: [PATCH] Fix tutorial 1 compilation with ecc by using vmlinux.h (#199) * Initial plan * Fix tutorial 1 compilation by including vmlinux.h Co-authored-by: yunwei37 <34985212+yunwei37@users.noreply.github.com> * Update README documentation to reference vmlinux.h consistently Co-authored-by: yunwei37 <34985212+yunwei37@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: yunwei37 <34985212+yunwei37@users.noreply.github.com> --- src/1-helloworld/README.md | 4 ++-- src/1-helloworld/README.zh.md | 4 ++-- src/1-helloworld/minimal.bpf.c | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/1-helloworld/README.md b/src/1-helloworld/README.md index e4ab331..ff36720 100644 --- a/src/1-helloworld/README.md +++ b/src/1-helloworld/README.md @@ -77,7 +77,7 @@ We will start with a simple eBPF program that prints a message in the kernel. We ```c /* SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause) */ #define BPF_NO_GLOBAL_DATA -#include +#include "vmlinux.h" #include #include @@ -157,7 +157,7 @@ If you're still not seeing output, make sure the program is actually loaded and As mentioned above, the basic framework of an eBPF program includes: -- Including header files: You need to include and header files, among others. +- Including header files: You need to include "vmlinux.h" and header files, among others. - Defining a license: You need to define a license, typically using "Dual BSD/GPL". - Defining a BPF function: You need to define a BPF function, for example, named handle_tp, which takes void *ctx as a parameter and returns int. This is usually written in the C language. - Using BPF helper functions: In the BPF function, you can use BPF helper functions such as bpf_get_current_pid_tgid() and bpf_printk(). diff --git a/src/1-helloworld/README.zh.md b/src/1-helloworld/README.zh.md index 2950b54..6e321df 100644 --- a/src/1-helloworld/README.zh.md +++ b/src/1-helloworld/README.zh.md @@ -76,7 +76,7 @@ Packing ebpf object and config into /src/package.json... ```c /* SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause) */ #define BPF_NO_GLOBAL_DATA -#include +#include "vmlinux.h" #include #include @@ -156,7 +156,7 @@ $ sudo sh -c 'echo 1 > /sys/kernel/debug/tracing/tracing_on' 如上所述, eBPF 程序的基本框架包括: -- 包含头文件:需要包含 等头文件。 +- 包含头文件:需要包含 "vmlinux.h" 和 等头文件。 - 定义许可证:需要定义许可证,通常使用 "Dual BSD/GPL"。 - 定义 BPF 函数:需要定义一个 BPF 函数,例如其名称为 handle_tp,其参数为 void *ctx,返回值为 int。通常用 C 语言编写。 - 使用 BPF 助手函数:在例如 BPF 函数中,可以使用 BPF 助手函数 bpf_get_current_pid_tgid() 和 bpf_printk()。 diff --git a/src/1-helloworld/minimal.bpf.c b/src/1-helloworld/minimal.bpf.c index 13c3d51..378125f 100644 --- a/src/1-helloworld/minimal.bpf.c +++ b/src/1-helloworld/minimal.bpf.c @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause) */ #define BPF_NO_GLOBAL_DATA -#include +#include "vmlinux.h" #include #include