Soong: BPF: Cflag and btf defaults

Currently, all bpf programs require a cflags field which defines -Wall
and -Werror. This change enables this by default, and also enables
-Wextra. This removes boilerplate required for every bpf program, and
improves code quality.

Additionally, this change enables the default of 'btf: true' further
reducing the boilerplate required for most bpf programs in their
Android.bp file. BTF should be enabled by default, with only limited
mainlined bpf programs requiring BTF being disabled for compatibility
with older bpfloader releases.

Test: Treehugger
Change-Id: I8efd0f63115030d40c0ff7fe81d5345ff3436e5a
Signed-off-by: Neill Kapron <nkapron@google.com>
This commit is contained in:
Neill Kapron
2024-07-30 22:03:27 +00:00
parent e1234e51b8
commit 50a7bf8610

View File

@@ -148,6 +148,10 @@ func (bpf *bpf) GenerateAndroidBuildActions(ctx android.ModuleContext) {
"-no-canonical-prefixes", "-no-canonical-prefixes",
"-O2", "-O2",
"-Wall",
"-Werror",
"-Wextra",
"-isystem bionic/libc/include", "-isystem bionic/libc/include",
"-isystem bionic/libc/kernel/uapi", "-isystem bionic/libc/kernel/uapi",
// The architecture doesn't matter here, but asm/types.h is included by linux/types.h. // The architecture doesn't matter here, but asm/types.h is included by linux/types.h.
@@ -165,7 +169,7 @@ func (bpf *bpf) GenerateAndroidBuildActions(ctx android.ModuleContext) {
cflags = append(cflags, bpf.properties.Cflags...) cflags = append(cflags, bpf.properties.Cflags...)
if proptools.Bool(bpf.properties.Btf) { if proptools.BoolDefault(bpf.properties.Btf, true) {
cflags = append(cflags, "-g") cflags = append(cflags, "-g")
if runtime.GOOS != "darwin" { if runtime.GOOS != "darwin" {
cflags = append(cflags, "-fdebug-prefix-map=/proc/self/cwd=") cflags = append(cflags, "-fdebug-prefix-map=/proc/self/cwd=")
@@ -190,7 +194,7 @@ func (bpf *bpf) GenerateAndroidBuildActions(ctx android.ModuleContext) {
}, },
}) })
if proptools.Bool(bpf.properties.Btf) { if proptools.BoolDefault(bpf.properties.Btf, true) {
objStripped := android.ObjPathWithExt(ctx, "", src, "o") objStripped := android.ObjPathWithExt(ctx, "", src, "o")
ctx.Build(pctx, android.BuildParams{ ctx.Build(pctx, android.BuildParams{
Rule: stripRule, Rule: stripRule,