From 0cce4d348dcdd3408e18885a6c32e6f3ac84f7a9 Mon Sep 17 00:00:00 2001 From: Ovidiu Panait Date: Wed, 5 Aug 2020 20:14:39 +0300 Subject: bcc: upgrade 0.13.0 -> 0.15.0 Uprev bcc to v0.15.0: * drop backports: https://github.com/iovisor/bcc/commit/68abb51ed067c4317b991cec0bbc2ea4e7f6ddab https://github.com/iovisor/bcc/commit/1c843e2c0f7570844a2c955436455132936eae47 * refresh patches Fixes: #348 Signed-off-by: Ovidiu Panait --- ...Add-KBUILD_MODNAME-flag-to-default-cflags.patch | 27 ---- ...elete-existing-kbuild_modname-definitions.patch | 176 --------------------- ...noop-snoop-do_sys_openat2-for-kernel-v5.6.patch | 35 ++-- .../recipes-devtools/bcc/bcc_0.13.0.bb | 47 ------ .../recipes-devtools/bcc/bcc_0.15.0.bb | 45 ++++++ 5 files changed, 62 insertions(+), 268 deletions(-) delete mode 100644 dynamic-layers/openembedded-layer/recipes-devtools/bcc/bcc/0001-Add-KBUILD_MODNAME-flag-to-default-cflags.patch delete mode 100644 dynamic-layers/openembedded-layer/recipes-devtools/bcc/bcc/0001-Delete-existing-kbuild_modname-definitions.patch delete mode 100644 dynamic-layers/openembedded-layer/recipes-devtools/bcc/bcc_0.13.0.bb create mode 100644 dynamic-layers/openembedded-layer/recipes-devtools/bcc/bcc_0.15.0.bb diff --git a/dynamic-layers/openembedded-layer/recipes-devtools/bcc/bcc/0001-Add-KBUILD_MODNAME-flag-to-default-cflags.patch b/dynamic-layers/openembedded-layer/recipes-devtools/bcc/bcc/0001-Add-KBUILD_MODNAME-flag-to-default-cflags.patch deleted file mode 100644 index 1ca73ba..0000000 --- a/dynamic-layers/openembedded-layer/recipes-devtools/bcc/bcc/0001-Add-KBUILD_MODNAME-flag-to-default-cflags.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 9e2415679e41adacc59dd7a426d505232f0b7129 Mon Sep 17 00:00:00 2001 -From: William Findlay -Date: Wed, 17 Jun 2020 12:07:48 -0400 -Subject: [PATCH 1/2] Add KBUILD_MODNAME flag to default cflags - -Upstream-Status: Backported [https://github.com/iovisor/bcc/pull/2974/commits/badd85c58549d0e7f0d536490c41213141e180c5] - -Signed-off-by: He Zhe ---- - src/cc/frontends/clang/kbuild_helper.cc | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/cc/frontends/clang/kbuild_helper.cc b/src/cc/frontends/clang/kbuild_helper.cc -index db5ca7f6..e3aade89 100644 ---- a/src/cc/frontends/clang/kbuild_helper.cc -+++ b/src/cc/frontends/clang/kbuild_helper.cc -@@ -101,6 +101,7 @@ int KBuildHelper::get_flags(const char *uname_machine, vector *cflags) { - cflags->push_back("-D__HAVE_BUILTIN_BSWAP16__"); - cflags->push_back("-D__HAVE_BUILTIN_BSWAP32__"); - cflags->push_back("-D__HAVE_BUILTIN_BSWAP64__"); -+ cflags->push_back("-DKBUILD_MODNAME=\"bcc\""); - - // If ARCH env variable is set, pass this along. - if (archenv) --- -2.26.2 - diff --git a/dynamic-layers/openembedded-layer/recipes-devtools/bcc/bcc/0001-Delete-existing-kbuild_modname-definitions.patch b/dynamic-layers/openembedded-layer/recipes-devtools/bcc/bcc/0001-Delete-existing-kbuild_modname-definitions.patch deleted file mode 100644 index dd87997..0000000 --- a/dynamic-layers/openembedded-layer/recipes-devtools/bcc/bcc/0001-Delete-existing-kbuild_modname-definitions.patch +++ /dev/null @@ -1,176 +0,0 @@ -From eb8b0487a05d650499b20fdd5edeb6e47c2c17a5 Mon Sep 17 00:00:00 2001 -From: William Findlay -Date: Wed, 17 Jun 2020 18:59:43 -0400 -Subject: [PATCH 2/2] Delete existing kbuild_modname definitions - -Upstream-Status: Backported [https://github.com/iovisor/bcc/pull/2974/commits/a5bdc9c65746389d7072e1e8e583025dde78e91b] - -Adjust context - -Signed-off-by: He Zhe ---- - examples/networking/xdp/xdp_drop_count.py | 1 - - examples/networking/xdp/xdp_macswap_count.py | 1 - - examples/networking/xdp/xdp_redirect_cpu.py | 1 - - examples/networking/xdp/xdp_redirect_map.py | 1 - - tests/python/test_clang.py | 8 -------- - tools/tcplife.lua | 1 - - tools/tcplife.py | 1 - - tools/tcpstates.py | 1 - - 8 files changed, 15 deletions(-) - -diff --git a/examples/networking/xdp/xdp_drop_count.py b/examples/networking/xdp/xdp_drop_count.py -index f03273e9..512e0a20 100755 ---- a/examples/networking/xdp/xdp_drop_count.py -+++ b/examples/networking/xdp/xdp_drop_count.py -@@ -52,7 +52,6 @@ else: - - # load BPF program - b = BPF(text = """ --#define KBUILD_MODNAME "foo" - #include - #include - #include -diff --git a/examples/networking/xdp/xdp_macswap_count.py b/examples/networking/xdp/xdp_macswap_count.py -index 0e2b21ca..770ce8ca 100755 ---- a/examples/networking/xdp/xdp_macswap_count.py -+++ b/examples/networking/xdp/xdp_macswap_count.py -@@ -50,7 +50,6 @@ else: - - # load BPF program - b = BPF(text = """ --#define KBUILD_MODNAME "foo" - #include - #include - #include -diff --git a/examples/networking/xdp/xdp_redirect_cpu.py b/examples/networking/xdp/xdp_redirect_cpu.py -index 15b0d09b..470079f4 100755 ---- a/examples/networking/xdp/xdp_redirect_cpu.py -+++ b/examples/networking/xdp/xdp_redirect_cpu.py -@@ -30,7 +30,6 @@ if (cpu_id > max_cpu): - - # load BPF program - b = BPF(text = """ --#define KBUILD_MODNAME "foo" - #include - #include - #include -diff --git a/examples/networking/xdp/xdp_redirect_map.py b/examples/networking/xdp/xdp_redirect_map.py -index 4a622723..4936ac1e 100755 ---- a/examples/networking/xdp/xdp_redirect_map.py -+++ b/examples/networking/xdp/xdp_redirect_map.py -@@ -29,7 +29,6 @@ out_idx = ip.link_lookup(ifname=out_if)[0] - - # load BPF program - b = BPF(text = """ --#define KBUILD_MODNAME "foo" - #include - #include - #include -diff --git a/tests/python/test_clang.py b/tests/python/test_clang.py -index 886eebed..648494cf 100755 ---- a/tests/python/test_clang.py -+++ b/tests/python/test_clang.py -@@ -78,7 +78,6 @@ int count_foo(struct pt_regs *ctx, unsigned long a, unsigned long b) { - - def test_probe_read3(self): - text = """ --#define KBUILD_MODNAME "foo" - #include - #define _(P) ({typeof(P) val = 0; bpf_probe_read(&val, sizeof(val), &P); val;}) - int count_tcp(struct pt_regs *ctx, struct sk_buff *skb) { -@@ -90,7 +89,6 @@ int count_tcp(struct pt_regs *ctx, struct sk_buff *skb) { - - def test_probe_read4(self): - text = """ --#define KBUILD_MODNAME "foo" - #include - #define _(P) ({typeof(P) val = 0; bpf_probe_read(&val, sizeof(val), &P); val;}) - int test(struct pt_regs *ctx, struct sk_buff *skb) { -@@ -102,7 +100,6 @@ int test(struct pt_regs *ctx, struct sk_buff *skb) { - - def test_probe_read_whitelist1(self): - text = """ --#define KBUILD_MODNAME "foo" - #include - int count_tcp(struct pt_regs *ctx, struct sk_buff *skb) { - // The below define is in net/tcp.h: -@@ -120,7 +117,6 @@ int count_tcp(struct pt_regs *ctx, struct sk_buff *skb) { - - def test_probe_read_whitelist2(self): - text = """ --#define KBUILD_MODNAME "foo" - #include - int count_tcp(struct pt_regs *ctx, struct sk_buff *skb) { - // The below define is in net/tcp.h: -@@ -1072,7 +1068,6 @@ int test(struct __sk_buff *ctx) { - - def test_probe_read_return(self): - text = """ --#define KBUILD_MODNAME "foo" - #include - #include - static inline unsigned char *my_skb_transport_header(struct sk_buff *skb) { -@@ -1088,7 +1083,6 @@ int test(struct pt_regs *ctx, struct sock *sk, struct sk_buff *skb) { - - def test_probe_read_multiple_return(self): - text = """ --#define KBUILD_MODNAME "foo" - #include - #include - static inline u64 error_function() { -@@ -1109,7 +1103,6 @@ int test(struct pt_regs *ctx, struct sock *sk, struct sk_buff *skb) { - - def test_probe_read_return_expr(self): - text = """ --#define KBUILD_MODNAME "foo" - #include - #include - static inline unsigned char *my_skb_transport_header(struct sk_buff *skb) { -@@ -1125,7 +1118,6 @@ int test(struct pt_regs *ctx, struct sock *sk, struct sk_buff *skb) { - - def test_probe_read_return_call(self): - text = """ --#define KBUILD_MODNAME "foo" - #include - #include - static inline struct tcphdr *my_skb_transport_header(struct sk_buff *skb) { -diff --git a/tools/tcplife.lua b/tools/tcplife.lua -index 3f4f6afd..5e311631 100755 ---- a/tools/tcplife.lua -+++ b/tools/tcplife.lua -@@ -25,7 +25,6 @@ uint16_t ntohs(uint16_t netshort); - - local program = [[ - #include --#define KBUILD_MODNAME "foo" - #include - #include - #include -diff --git a/tools/tcplife.py b/tools/tcplife.py -index d4e679dd..c2bd8236 100755 ---- a/tools/tcplife.py -+++ b/tools/tcplife.py -@@ -66,7 +66,6 @@ debug = 0 - # define BPF program - bpf_text = """ - #include --#define KBUILD_MODNAME "foo" - #include - #include - #include -diff --git a/tools/tcpstates.py b/tools/tcpstates.py -index b9a64387..09bbe0ce 100755 ---- a/tools/tcpstates.py -+++ b/tools/tcpstates.py -@@ -61,7 +61,6 @@ debug = 0 - # define BPF program - bpf_text = """ - #include --#define KBUILD_MODNAME "foo" - #include - #include - #include --- -2.26.2 - diff --git a/dynamic-layers/openembedded-layer/recipes-devtools/bcc/bcc/0001-tools-opensnoop-snoop-do_sys_openat2-for-kernel-v5.6.patch b/dynamic-layers/openembedded-layer/recipes-devtools/bcc/bcc/0001-tools-opensnoop-snoop-do_sys_openat2-for-kernel-v5.6.patch index f2b1495..fb659cc 100644 --- a/dynamic-layers/openembedded-layer/recipes-devtools/bcc/bcc/0001-tools-opensnoop-snoop-do_sys_openat2-for-kernel-v5.6.patch +++ b/dynamic-layers/openembedded-layer/recipes-devtools/bcc/bcc/0001-tools-opensnoop-snoop-do_sys_openat2-for-kernel-v5.6.patch @@ -1,4 +1,4 @@ -From 935f7e47f54df1af30f4a1cdfd2f385863ab9dec Mon Sep 17 00:00:00 2001 +From 8e12b10e7576a6d47e0dc2cdc36caeb9ba26fa12 Mon Sep 17 00:00:00 2001 From: He Zhe Date: Mon, 15 Jun 2020 07:05:24 +0000 Subject: [PATCH] tools: opensnoop: snoop do_sys_openat2 for kernel v5.6 and @@ -12,14 +12,14 @@ Upstream-Status: Inappropriate, upstream context has changed and needs more Signed-off-by: He Zhe --- - tools/opensnoop.py | 13 +++++++++++-- - 1 file changed, 11 insertions(+), 2 deletions(-) + tools/opensnoop.py | 12 ++++++++++-- + 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/tools/opensnoop.py b/tools/opensnoop.py -index 6d1388b3..3f7e48a3 100755 +index 51d3dc05..522812d4 100755 --- a/tools/opensnoop.py +++ b/tools/opensnoop.py -@@ -21,6 +21,8 @@ from bcc.utils import printb +@@ -22,6 +22,8 @@ from bcc.utils import printb import argparse from datetime import datetime, timedelta import os @@ -28,24 +28,23 @@ index 6d1388b3..3f7e48a3 100755 # arguments examples = """examples: -@@ -195,8 +197,15 @@ if debug or args.ebpf: - +@@ -235,8 +237,14 @@ if debug or args.ebpf: # initialize BPF b = BPF(text=bpf_text) --b.attach_kprobe(event="do_sys_open", fn_name="trace_entry") --b.attach_kretprobe(event="do_sys_open", fn_name="trace_return") -+ -+# Since kernel v5.6, do_sys_openat2 instead of do_sys_open has been used as entry function for open -+if parse_version(platform.uname().release.split('-')[0]) > parse_version('5.6.0'): -+ entry = "do_sys_openat2" -+else: -+ entry = "do_sys_open" + if not is_support_kfunc: +- b.attach_kprobe(event="do_sys_open", fn_name="trace_entry") +- b.attach_kretprobe(event="do_sys_open", fn_name="trace_return") ++ # Since kernel v5.6, do_sys_openat2 instead of do_sys_open has been used as entry function for open ++ if parse_version(platform.uname().release.split('-')[0]) > parse_version('5.6.0'): ++ entry = "do_sys_openat2" ++ else: ++ entry = "do_sys_open" + -+b.attach_kprobe(event=entry, fn_name="trace_entry") -+b.attach_kretprobe(event=entry, fn_name="trace_return") ++ b.attach_kprobe(event=entry, fn_name="trace_entry") ++ b.attach_kretprobe(event=entry, fn_name="trace_return") initial_ts = 0 -- -2.24.1 +2.17.1 diff --git a/dynamic-layers/openembedded-layer/recipes-devtools/bcc/bcc_0.13.0.bb b/dynamic-layers/openembedded-layer/recipes-devtools/bcc/bcc_0.13.0.bb deleted file mode 100644 index 5a628db..0000000 --- a/dynamic-layers/openembedded-layer/recipes-devtools/bcc/bcc_0.13.0.bb +++ /dev/null @@ -1,47 +0,0 @@ -SUMMARY = "BPF Compiler Collection (BCC)" -HOMEPAGE = "https://github.com/iovisor/bcc" -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e3fc50a88d0a364313df4b21ef20c29e" - -inherit cmake python3native manpages - -DEPENDS += "bison-native \ - flex-native \ - elfutils \ - luajit \ - clang \ - " - -RDEPENDS_${PN} += "bash python3 python3-core python3-setuptools xz" - -SRC_URI = "gitsm://github.com/iovisor/bcc \ - file://0001-python-CMakeLists.txt-Remove-check-for-host-etc-debi.patch \ - file://0001-tools-opensnoop-snoop-do_sys_openat2-for-kernel-v5.6.patch \ - file://0001-Add-KBUILD_MODNAME-flag-to-default-cflags.patch \ - file://0001-Delete-existing-kbuild_modname-definitions.patch \ - " - -SRCREV = "942227484d3207f6a42103674001ef01fb5335a0" - -S = "${WORKDIR}/git" - -PACKAGECONFIG ??= "" -PACKAGECONFIG[manpages] = "-DENABLE_MAN=ON,-DENABLE_MAN=OFF," - -EXTRA_OECMAKE = " \ - -DENABLE_LLVM_SHARED=ON \ - -DENABLE_CLANG_JIT=ON \ - -DLLVM_PACKAGE_VERSION=${LLVMVERSION} \ - -DPYTHON_CMD=${PYTHON} \ - -DPYTHON_FLAGS=--install-lib=${PYTHON_SITEPACKAGES_DIR} \ -" - -do_install_append() { - sed -e 's@#!/usr/bin/python@#!/usr/bin/env python3@g' \ - -i $(find ${D}${datadir}/${PN} -type f) -} - -FILES_${PN} += "${PYTHON_SITEPACKAGES_DIR}" -FILES_${PN}-doc += "${datadir}/${PN}/man" - -COMPATIBLE_HOST = "(x86_64.*|aarch64.*|powerpc64.*)-linux" diff --git a/dynamic-layers/openembedded-layer/recipes-devtools/bcc/bcc_0.15.0.bb b/dynamic-layers/openembedded-layer/recipes-devtools/bcc/bcc_0.15.0.bb new file mode 100644 index 0000000..2df77ed --- /dev/null +++ b/dynamic-layers/openembedded-layer/recipes-devtools/bcc/bcc_0.15.0.bb @@ -0,0 +1,45 @@ +SUMMARY = "BPF Compiler Collection (BCC)" +HOMEPAGE = "https://github.com/iovisor/bcc" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e3fc50a88d0a364313df4b21ef20c29e" + +inherit cmake python3native manpages + +DEPENDS += "bison-native \ + flex-native \ + elfutils \ + luajit \ + clang \ + " + +RDEPENDS_${PN} += "bash python3 python3-core python3-setuptools xz" + +SRC_URI = "gitsm://github.com/iovisor/bcc \ + file://0001-python-CMakeLists.txt-Remove-check-for-host-etc-debi.patch \ + file://0001-tools-opensnoop-snoop-do_sys_openat2-for-kernel-v5.6.patch \ + " + +SRCREV = "e41f7a3be5c8114ef6a0990e50c2fbabea0e928e" + +S = "${WORKDIR}/git" + +PACKAGECONFIG ??= "" +PACKAGECONFIG[manpages] = "-DENABLE_MAN=ON,-DENABLE_MAN=OFF," + +EXTRA_OECMAKE = " \ + -DENABLE_LLVM_SHARED=ON \ + -DENABLE_CLANG_JIT=ON \ + -DLLVM_PACKAGE_VERSION=${LLVMVERSION} \ + -DPYTHON_CMD=${PYTHON} \ + -DPYTHON_FLAGS=--install-lib=${PYTHON_SITEPACKAGES_DIR} \ +" + +do_install_append() { + sed -e 's@#!/usr/bin/python@#!/usr/bin/env python3@g' \ + -i $(find ${D}${datadir}/${PN} -type f) +} + +FILES_${PN} += "${PYTHON_SITEPACKAGES_DIR}" +FILES_${PN}-doc += "${datadir}/${PN}/man" + +COMPATIBLE_HOST = "(x86_64.*|aarch64.*|powerpc64.*)-linux" -- cgit v1.2.3-54-g00ecf