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