xref: /aosp_15_r20/external/bpftool/Android.bp (revision 858ea5e570667251cdc31d3fe7b846b591105938)
1*858ea5e5SAndroid Build Coastguard Worker
2*858ea5e5SAndroid Build Coastguard Workerpackage {
3*858ea5e5SAndroid Build Coastguard Worker    default_applicable_licenses: ["external_bpftool_license"],
4*858ea5e5SAndroid Build Coastguard Worker}
5*858ea5e5SAndroid Build Coastguard Worker
6*858ea5e5SAndroid Build Coastguard Worker// See: http://go/android-license-faq
7*858ea5e5SAndroid Build Coastguard Workerlicense {
8*858ea5e5SAndroid Build Coastguard Worker    name: "external_bpftool_license",
9*858ea5e5SAndroid Build Coastguard Worker    visibility: [":__subpackages__"],
10*858ea5e5SAndroid Build Coastguard Worker    license_kinds: [
11*858ea5e5SAndroid Build Coastguard Worker        "SPDX-license-identifier-BSD-2-Clause",
12*858ea5e5SAndroid Build Coastguard Worker        "SPDX-license-identifier-GPL-2.0-only",
13*858ea5e5SAndroid Build Coastguard Worker    ],
14*858ea5e5SAndroid Build Coastguard Worker    license_text: [
15*858ea5e5SAndroid Build Coastguard Worker        "LICENSE.BSD-2-Clause",
16*858ea5e5SAndroid Build Coastguard Worker        "LICENSE.GPL-2.0",
17*858ea5e5SAndroid Build Coastguard Worker    ],
18*858ea5e5SAndroid Build Coastguard Worker}
19*858ea5e5SAndroid Build Coastguard Worker
20*858ea5e5SAndroid Build Coastguard Workercc_binary {
21*858ea5e5SAndroid Build Coastguard Worker    name: "bpftool",
22*858ea5e5SAndroid Build Coastguard Worker    defaults: ["elfutils_transitive_defaults"],
23*858ea5e5SAndroid Build Coastguard Worker    host_supported: true,
24*858ea5e5SAndroid Build Coastguard Worker    srcs: [
25*858ea5e5SAndroid Build Coastguard Worker        "src/*.c",
26*858ea5e5SAndroid Build Coastguard Worker        "src/kernel/bpf/disasm.c",
27*858ea5e5SAndroid Build Coastguard Worker    ],
28*858ea5e5SAndroid Build Coastguard Worker    exclude_srcs: [
29*858ea5e5SAndroid Build Coastguard Worker        "src/jit_disasm.c",
30*858ea5e5SAndroid Build Coastguard Worker    ],
31*858ea5e5SAndroid Build Coastguard Worker    local_include_dirs: [
32*858ea5e5SAndroid Build Coastguard Worker        "include",
33*858ea5e5SAndroid Build Coastguard Worker        "include/uapi",
34*858ea5e5SAndroid Build Coastguard Worker        "src/kernel/bpf"
35*858ea5e5SAndroid Build Coastguard Worker    ],
36*858ea5e5SAndroid Build Coastguard Worker    target: {
37*858ea5e5SAndroid Build Coastguard Worker        // There is an unfortunate interaction between the bionic uapi headers
38*858ea5e5SAndroid Build Coastguard Worker        // (also used by musl) and the kernel headers distributed with bpftool.
39*858ea5e5SAndroid Build Coastguard Worker        // The bionic uapi headers include <linux/compiler_types.h>, which they
40*858ea5e5SAndroid Build Coastguard Worker        // expect to be resolved to their own copy of compiler_types.h that
41*858ea5e5SAndroid Build Coastguard Worker        // includes compiler.h.  It instead resolves to the bpftool copy,
42*858ea5e5SAndroid Build Coastguard Worker        // which includes compiler-gcc.h directly, triggering an error if
43*858ea5e5SAndroid Build Coastguard Worker        // the _LINUX_COMPILER_H_ header guard is not already defined.  Hack
44*858ea5e5SAndroid Build Coastguard Worker        // around it by always including linux/compiler.h from the command line.
45*858ea5e5SAndroid Build Coastguard Worker        musl: {
46*858ea5e5SAndroid Build Coastguard Worker
47*858ea5e5SAndroid Build Coastguard Worker            cflags: ["-include linux/compiler.h"],
48*858ea5e5SAndroid Build Coastguard Worker        },
49*858ea5e5SAndroid Build Coastguard Worker        bionic: {
50*858ea5e5SAndroid Build Coastguard Worker            cflags: ["-include linux/compiler.h"],
51*858ea5e5SAndroid Build Coastguard Worker        },
52*858ea5e5SAndroid Build Coastguard Worker    },
53*858ea5e5SAndroid Build Coastguard Worker    static_libs: [
54*858ea5e5SAndroid Build Coastguard Worker        "libbpf",
55*858ea5e5SAndroid Build Coastguard Worker        "libcap",
56*858ea5e5SAndroid Build Coastguard Worker        "libelf",
57*858ea5e5SAndroid Build Coastguard Worker        "libz",
58*858ea5e5SAndroid Build Coastguard Worker    ],
59*858ea5e5SAndroid Build Coastguard Worker    cflags: [
60*858ea5e5SAndroid Build Coastguard Worker        "-DBPFTOOL_WITHOUT_SKELETONS",
61*858ea5e5SAndroid Build Coastguard Worker        "-DBPFTOOL_VERSION=\"5.16.0-c446fdacb10d\"",
62*858ea5e5SAndroid Build Coastguard Worker        "-DUSE_LIBCAP",
63*858ea5e5SAndroid Build Coastguard Worker        "-Wno-missing-field-initializers",
64*858ea5e5SAndroid Build Coastguard Worker        "-Wno-pointer-arith",
65*858ea5e5SAndroid Build Coastguard Worker        "-Wno-unused-parameter",
66*858ea5e5SAndroid Build Coastguard Worker    ]
67*858ea5e5SAndroid Build Coastguard Worker}
68