1*387f9dfdSAndroid Build Coastguard Worker// 2*387f9dfdSAndroid Build Coastguard Worker// Copyright (C) 2018 The Android Open Source Project 3*387f9dfdSAndroid Build Coastguard Worker// 4*387f9dfdSAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License"); 5*387f9dfdSAndroid Build Coastguard Worker// you may not use this file except in compliance with the License. 6*387f9dfdSAndroid Build Coastguard Worker// You may obtain a copy of the License at 7*387f9dfdSAndroid Build Coastguard Worker// 8*387f9dfdSAndroid Build Coastguard Worker// http://www.apache.org/licenses/LICENSE-2.0 9*387f9dfdSAndroid Build Coastguard Worker// 10*387f9dfdSAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software 11*387f9dfdSAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS, 12*387f9dfdSAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*387f9dfdSAndroid Build Coastguard Worker// See the License for the specific language governing permissions and 14*387f9dfdSAndroid Build Coastguard Worker// limitations under the License. 15*387f9dfdSAndroid Build Coastguard Worker// 16*387f9dfdSAndroid Build Coastguard Worker 17*387f9dfdSAndroid Build Coastguard Workerpackage { 18*387f9dfdSAndroid Build Coastguard Worker default_applicable_licenses: ["external_bcc_license"], 19*387f9dfdSAndroid Build Coastguard Worker} 20*387f9dfdSAndroid Build Coastguard Worker 21*387f9dfdSAndroid Build Coastguard Worker// Added automatically by a large-scale-change that took the approach of 22*387f9dfdSAndroid Build Coastguard Worker// 'apply every license found to every target'. While this makes sure we respect 23*387f9dfdSAndroid Build Coastguard Worker// every license restriction, it may not be entirely correct. 24*387f9dfdSAndroid Build Coastguard Worker// 25*387f9dfdSAndroid Build Coastguard Worker// e.g. GPL in an MIT project might only apply to the contrib/ directory. 26*387f9dfdSAndroid Build Coastguard Worker// 27*387f9dfdSAndroid Build Coastguard Worker// Please consider splitting the single license below into multiple licenses, 28*387f9dfdSAndroid Build Coastguard Worker// taking care not to lose any license_kind information, and overriding the 29*387f9dfdSAndroid Build Coastguard Worker// default license using the 'licenses: [...]' property on targets as needed. 30*387f9dfdSAndroid Build Coastguard Worker// 31*387f9dfdSAndroid Build Coastguard Worker// For unused files, consider creating a 'fileGroup' with "//visibility:private" 32*387f9dfdSAndroid Build Coastguard Worker// to attach the license to, and including a comment whether the files may be 33*387f9dfdSAndroid Build Coastguard Worker// used in the current project. 34*387f9dfdSAndroid Build Coastguard Worker// 35*387f9dfdSAndroid Build Coastguard Worker// large-scale-change included anything that looked like it might be a license 36*387f9dfdSAndroid Build Coastguard Worker// text as a license_text. e.g. LICENSE, NOTICE, COPYING etc. 37*387f9dfdSAndroid Build Coastguard Worker// 38*387f9dfdSAndroid Build Coastguard Worker// Please consider removing redundant or irrelevant files from 'license_text:'. 39*387f9dfdSAndroid Build Coastguard Worker// See: http://go/android-license-faq 40*387f9dfdSAndroid Build Coastguard Workerlicense { 41*387f9dfdSAndroid Build Coastguard Worker name: "external_bcc_license", 42*387f9dfdSAndroid Build Coastguard Worker visibility: [":__subpackages__"], 43*387f9dfdSAndroid Build Coastguard Worker license_kinds: [ 44*387f9dfdSAndroid Build Coastguard Worker "SPDX-license-identifier-Apache-2.0", 45*387f9dfdSAndroid Build Coastguard Worker "SPDX-license-identifier-BSD", 46*387f9dfdSAndroid Build Coastguard Worker "SPDX-license-identifier-BSL-1.0", 47*387f9dfdSAndroid Build Coastguard Worker "SPDX-license-identifier-GPL", 48*387f9dfdSAndroid Build Coastguard Worker "SPDX-license-identifier-GPL-2.0", 49*387f9dfdSAndroid Build Coastguard Worker "SPDX-license-identifier-MIT", 50*387f9dfdSAndroid Build Coastguard Worker "SPDX-license-identifier-NCSA", 51*387f9dfdSAndroid Build Coastguard Worker "legacy_unencumbered", 52*387f9dfdSAndroid Build Coastguard Worker ], 53*387f9dfdSAndroid Build Coastguard Worker license_text: [ 54*387f9dfdSAndroid Build Coastguard Worker "LICENSE", 55*387f9dfdSAndroid Build Coastguard Worker "LICENSE.txt", 56*387f9dfdSAndroid Build Coastguard Worker ], 57*387f9dfdSAndroid Build Coastguard Worker} 58*387f9dfdSAndroid Build Coastguard Worker 59*387f9dfdSAndroid Build Coastguard Workercc_defaults { 60*387f9dfdSAndroid Build Coastguard Worker name: "libbpf_defaults", 61*387f9dfdSAndroid Build Coastguard Worker cflags: [ 62*387f9dfdSAndroid Build Coastguard Worker "-Wnullable-to-nonnull-conversion", 63*387f9dfdSAndroid Build Coastguard Worker "-Wthread-safety", 64*387f9dfdSAndroid Build Coastguard Worker "-Wunused-parameter", 65*387f9dfdSAndroid Build Coastguard Worker ], 66*387f9dfdSAndroid Build Coastguard Worker tidy: true, 67*387f9dfdSAndroid Build Coastguard Worker tidy_checks: [ 68*387f9dfdSAndroid Build Coastguard Worker "android-*", 69*387f9dfdSAndroid Build Coastguard Worker "cert-*", 70*387f9dfdSAndroid Build Coastguard Worker "clang-analyzer-security*", 71*387f9dfdSAndroid Build Coastguard Worker // Many calls to snprintf/sscanf/memset/memcpy in libbpf.c have the following warning. 72*387f9dfdSAndroid Build Coastguard Worker "-clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling", 73*387f9dfdSAndroid Build Coastguard Worker // Disabling due to many unavoidable warnings from POSIX API usage. 74*387f9dfdSAndroid Build Coastguard Worker "-google-runtime-int", 75*387f9dfdSAndroid Build Coastguard Worker ], 76*387f9dfdSAndroid Build Coastguard Worker} 77*387f9dfdSAndroid Build Coastguard Worker 78*387f9dfdSAndroid Build Coastguard Workercc_library_headers { 79*387f9dfdSAndroid Build Coastguard Worker name: "libbpf_bcc_headers", 80*387f9dfdSAndroid Build Coastguard Worker vendor_available: true, 81*387f9dfdSAndroid Build Coastguard Worker host_supported: false, 82*387f9dfdSAndroid Build Coastguard Worker native_bridge_supported: true, 83*387f9dfdSAndroid Build Coastguard Worker export_include_dirs: ["src/cc/includes/"], 84*387f9dfdSAndroid Build Coastguard Worker target: { 85*387f9dfdSAndroid Build Coastguard Worker linux_bionic: { 86*387f9dfdSAndroid Build Coastguard Worker enabled: true, 87*387f9dfdSAndroid Build Coastguard Worker }, 88*387f9dfdSAndroid Build Coastguard Worker }, 89*387f9dfdSAndroid Build Coastguard Worker} 90*387f9dfdSAndroid Build Coastguard Worker 91*387f9dfdSAndroid Build Coastguard Workercc_library { 92*387f9dfdSAndroid Build Coastguard Worker name: "libbpf_bcc", 93*387f9dfdSAndroid Build Coastguard Worker vendor_available: true, 94*387f9dfdSAndroid Build Coastguard Worker host_supported: false, 95*387f9dfdSAndroid Build Coastguard Worker native_bridge_supported: true, 96*387f9dfdSAndroid Build Coastguard Worker target: { 97*387f9dfdSAndroid Build Coastguard Worker android: { 98*387f9dfdSAndroid Build Coastguard Worker srcs: [ 99*387f9dfdSAndroid Build Coastguard Worker "src/cc/libbpf.c", 100*387f9dfdSAndroid Build Coastguard Worker "src/cc/perf_reader.c", 101*387f9dfdSAndroid Build Coastguard Worker "src/cc/bcc_zip.c", 102*387f9dfdSAndroid Build Coastguard Worker ], 103*387f9dfdSAndroid Build Coastguard Worker sanitize: { 104*387f9dfdSAndroid Build Coastguard Worker misc_undefined: ["integer"], 105*387f9dfdSAndroid Build Coastguard Worker }, 106*387f9dfdSAndroid Build Coastguard Worker }, 107*387f9dfdSAndroid Build Coastguard Worker }, 108*387f9dfdSAndroid Build Coastguard Worker shared_libs: ["libbpf_minimal"], 109*387f9dfdSAndroid Build Coastguard Worker 110*387f9dfdSAndroid Build Coastguard Worker header_libs: [ 111*387f9dfdSAndroid Build Coastguard Worker "libbpf_bcc_headers", 112*387f9dfdSAndroid Build Coastguard Worker ], 113*387f9dfdSAndroid Build Coastguard Worker export_header_lib_headers: ["libbpf_bcc_headers"], 114*387f9dfdSAndroid Build Coastguard Worker local_include_dirs: ["src/cc"], 115*387f9dfdSAndroid Build Coastguard Worker 116*387f9dfdSAndroid Build Coastguard Worker defaults: ["bpf_cc_defaults"], 117*387f9dfdSAndroid Build Coastguard Worker cflags: [ 118*387f9dfdSAndroid Build Coastguard Worker "-DHAVE_EXTERNAL_LIBBPF", 119*387f9dfdSAndroid Build Coastguard Worker "-DMINIMAL_LIBBPF", 120*387f9dfdSAndroid Build Coastguard Worker "-Wno-sign-compare", 121*387f9dfdSAndroid Build Coastguard Worker "-Wno-typedef-redefinition", 122*387f9dfdSAndroid Build Coastguard Worker "-Wno-unused-parameter", 123*387f9dfdSAndroid Build Coastguard Worker ], 124*387f9dfdSAndroid Build Coastguard Worker} 125