mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-26 08:51:13 +00:00
2f0d672088
Add support for building bpftool and libbpf from the latest 5.8.3 kernel sources, ensuring up-to-date functionality and fixes. Both are written to be backwards compatible, which simplfies build and usage across different OpenWRT image kernels. 'bpftool' is the primary userspace tool widely used for introspection and manipulation of eBPF programs and maps. Two variants are built: a 'full' version which supports object disassembly and depends on libbfd/libopcodes (total ~500KB); and a 'minimal' version without disassembly functions and dependencies. The default 'minimal' variant is otherwise fully functional, and both are compiled using LTO for further (~30KB) size reductions. 'libbpf' provides shared/static libraries and dev files needed for building userspace programs that perform eBPF interaction. Several cross-compilation and build-failure problems are addressed by new patches and ones backported from farther upstream: * 001-libbpf-ensure-no-local-symbols-counted-in-ABI-check.patch * 002-libbpf-fix-build-failure-from-uninitialized-variable.patch * 003-bpftool-allow-passing-BPFTOOL_VERSION-to-make.patch * 004-v5.9-bpftool-use-only-ftw-for-file-tree-parsing.patch Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
47 lines
1.7 KiB
Diff
47 lines
1.7 KiB
Diff
From 74d0dcf7608b1bab116e297468ac51b57eb97ce0 Mon Sep 17 00:00:00 2001
|
|
From: Tony Ambardar <Tony.Ambardar@gmail.com>
|
|
Date: Thu, 20 Aug 2020 10:06:24 -0700
|
|
Subject: [PATCH] libbpf: fix build failure from uninitialized variable warning
|
|
|
|
While compiling libbpf, some GCC versions (at least 8.4.0) have difficulty
|
|
determining control flow and a emit warning for potentially uninitialized
|
|
usage of 'map', which results in a build error if using "-Werror":
|
|
|
|
In file included from libbpf.c:56:
|
|
libbpf.c: In function '__bpf_object__open':
|
|
libbpf_internal.h:59:2: warning: 'map' may be used uninitialized in this function [-Wmaybe-uninitialized]
|
|
libbpf_print(level, "libbpf: " fmt, ##__VA_ARGS__); \
|
|
^~~~~~~~~~~~
|
|
libbpf.c:5032:18: note: 'map' was declared here
|
|
struct bpf_map *map, *targ_map;
|
|
^~~
|
|
|
|
The warning/error is false based on code inspection, so silence it with a
|
|
NULL initialization.
|
|
|
|
Fixes: 646f02ffdd49 ("libbpf: Add BTF-defined map-in-map support")
|
|
Ref: 063e68813391 ("libbpf: Fix false uninitialized variable warning")
|
|
|
|
Signed-off-by: Tony Ambardar <Tony.Ambardar@gmail.com>
|
|
---
|
|
tools/lib/bpf/libbpf.c | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
diff --git a/tools/lib/bpf/libbpf.c b/tools/lib/bpf/libbpf.c
|
|
index 11e4725b8b1c..a72296797357 100644
|
|
--- a/tools/lib/bpf/libbpf.c
|
|
+++ b/tools/lib/bpf/libbpf.c
|
|
@@ -5028,8 +5028,8 @@ static int bpf_object__collect_map_relos(struct bpf_object *obj,
|
|
int i, j, nrels, new_sz, ptr_sz = sizeof(void *);
|
|
const struct btf_var_secinfo *vi = NULL;
|
|
const struct btf_type *sec, *var, *def;
|
|
+ struct bpf_map *map = NULL, *targ_map;
|
|
const struct btf_member *member;
|
|
- struct bpf_map *map, *targ_map;
|
|
const char *name, *mname;
|
|
Elf_Data *symbols;
|
|
unsigned int moff;
|
|
--
|
|
2.25.1
|
|
|