1*7304104dSAndroid Build Coastguard Worker// Copyright (C) 2013 The Android Open Source Project 2*7304104dSAndroid Build Coastguard Worker// 3*7304104dSAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License"); 4*7304104dSAndroid Build Coastguard Worker// you may not use this file except in compliance with the License. 5*7304104dSAndroid Build Coastguard Worker// You may obtain a copy of the License at 6*7304104dSAndroid Build Coastguard Worker// 7*7304104dSAndroid Build Coastguard Worker// http://www.apache.org/licenses/LICENSE-2.0 8*7304104dSAndroid Build Coastguard Worker// 9*7304104dSAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software 10*7304104dSAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS, 11*7304104dSAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*7304104dSAndroid Build Coastguard Worker// See the License for the specific language governing permissions and 13*7304104dSAndroid Build Coastguard Worker// limitations under the License. 14*7304104dSAndroid Build Coastguard Worker 15*7304104dSAndroid Build Coastguard Worker// *** THIS PACKAGE HAS SPECIAL LICENSING CONDITIONS. PLEASE 16*7304104dSAndroid Build Coastguard Worker// CONSULT THE OWNERS AND [email protected] BEFORE 17*7304104dSAndroid Build Coastguard Worker// DEPENDING ON IT IN YOUR PROJECT. *** 18*7304104dSAndroid Build Coastguard Workerpackage { 19*7304104dSAndroid Build Coastguard Worker default_applicable_licenses: ["external_elfutils_license"], 20*7304104dSAndroid Build Coastguard Worker} 21*7304104dSAndroid Build Coastguard Worker 22*7304104dSAndroid Build Coastguard Worker// http://go/android-license-faq 23*7304104dSAndroid Build Coastguard Workerlicense { 24*7304104dSAndroid Build Coastguard Worker name: "external_elfutils_license", 25*7304104dSAndroid Build Coastguard Worker visibility: [":__subpackages__"], 26*7304104dSAndroid Build Coastguard Worker license_kinds: [ 27*7304104dSAndroid Build Coastguard Worker "SPDX-license-identifier-Apache-2.0", 28*7304104dSAndroid Build Coastguard Worker "SPDX-license-identifier-BSD", 29*7304104dSAndroid Build Coastguard Worker "SPDX-license-identifier-GFDL", // by exception only 30*7304104dSAndroid Build Coastguard Worker "SPDX-license-identifier-GPL-2.0-or-later", 31*7304104dSAndroid Build Coastguard Worker "SPDX-license-identifier-GPL-3.0-or-later", 32*7304104dSAndroid Build Coastguard Worker "SPDX-license-identifier-LGPL-3.0-or-later", 33*7304104dSAndroid Build Coastguard Worker ], 34*7304104dSAndroid Build Coastguard Worker license_text: [ 35*7304104dSAndroid Build Coastguard Worker "COPYING", 36*7304104dSAndroid Build Coastguard Worker "COPYING-GPLV2", 37*7304104dSAndroid Build Coastguard Worker "COPYING-LGPLV3", 38*7304104dSAndroid Build Coastguard Worker "NOTICE", 39*7304104dSAndroid Build Coastguard Worker ], 40*7304104dSAndroid Build Coastguard Worker} 41*7304104dSAndroid Build Coastguard Worker 42*7304104dSAndroid Build Coastguard Worker// Properties to apply to all static libraries that use elfutils. 43*7304104dSAndroid Build Coastguard Worker// Soong doesn't have propagation for static library dependencies, 44*7304104dSAndroid Build Coastguard Worker// and this have to be included explicitly by elfutils users. 45*7304104dSAndroid Build Coastguard Workercc_defaults { 46*7304104dSAndroid Build Coastguard Worker name: "elfutils_transitive_defaults", 47*7304104dSAndroid Build Coastguard Worker static_libs: [ 48*7304104dSAndroid Build Coastguard Worker "libz", 49*7304104dSAndroid Build Coastguard Worker "libzstd", 50*7304104dSAndroid Build Coastguard Worker ], 51*7304104dSAndroid Build Coastguard Worker} 52*7304104dSAndroid Build Coastguard Worker 53*7304104dSAndroid Build Coastguard Workercc_defaults { 54*7304104dSAndroid Build Coastguard Worker name: "elfutils_defaults", 55*7304104dSAndroid Build Coastguard Worker defaults: ["elfutils_transitive_defaults"], 56*7304104dSAndroid Build Coastguard Worker cflags: [ 57*7304104dSAndroid Build Coastguard Worker "-DHAVE_CONFIG_H", 58*7304104dSAndroid Build Coastguard Worker "-D_GNU_SOURCE", 59*7304104dSAndroid Build Coastguard Worker // upper bound for the number of lines of the resulting mnemonic files 60*7304104dSAndroid Build Coastguard Worker "-DNMNES=1000", 61*7304104dSAndroid Build Coastguard Worker "-std=gnu99", 62*7304104dSAndroid Build Coastguard Worker "-Werror", 63*7304104dSAndroid Build Coastguard Worker // to suppress the "pointer of type ‘void *’ used in arithmetic" warning 64*7304104dSAndroid Build Coastguard Worker "-Wno-pointer-arith", 65*7304104dSAndroid Build Coastguard Worker "-Wno-typedef-redefinition", 66*7304104dSAndroid Build Coastguard Worker ], 67*7304104dSAndroid Build Coastguard Worker header_libs: [ 68*7304104dSAndroid Build Coastguard Worker "elfutils_headers", 69*7304104dSAndroid Build Coastguard Worker ], 70*7304104dSAndroid Build Coastguard Worker export_header_lib_headers: ["elfutils_headers"], 71*7304104dSAndroid Build Coastguard Worker 72*7304104dSAndroid Build Coastguard Worker visibility: [ 73*7304104dSAndroid Build Coastguard Worker "//external/dwarves:__subpackages__", 74*7304104dSAndroid Build Coastguard Worker "//external/elfutils:__subpackages__", 75*7304104dSAndroid Build Coastguard Worker "//external/libabigail:__subpackages__", 76*7304104dSAndroid Build Coastguard Worker "//external/libbpf:__subpackages__", 77*7304104dSAndroid Build Coastguard Worker "//external/stg:__subpackages__", 78*7304104dSAndroid Build Coastguard Worker ], 79*7304104dSAndroid Build Coastguard Worker} 80*7304104dSAndroid Build Coastguard Worker 81*7304104dSAndroid Build Coastguard Workercc_library { 82*7304104dSAndroid Build Coastguard Worker name: "libelf", 83*7304104dSAndroid Build Coastguard Worker host_supported: true, 84*7304104dSAndroid Build Coastguard Worker native_bridge_supported: true, 85*7304104dSAndroid Build Coastguard Worker vendor_available: true, 86*7304104dSAndroid Build Coastguard Worker defaults: ["elfutils_defaults"], 87*7304104dSAndroid Build Coastguard Worker 88*7304104dSAndroid Build Coastguard Worker srcs: ["libelf/*.c"], 89*7304104dSAndroid Build Coastguard Worker 90*7304104dSAndroid Build Coastguard Worker export_include_dirs: ["libelf"], 91*7304104dSAndroid Build Coastguard Worker 92*7304104dSAndroid Build Coastguard Worker target: { 93*7304104dSAndroid Build Coastguard Worker darwin: { 94*7304104dSAndroid Build Coastguard Worker enabled: false, 95*7304104dSAndroid Build Coastguard Worker }, 96*7304104dSAndroid Build Coastguard Worker android: { 97*7304104dSAndroid Build Coastguard Worker cflags: [ 98*7304104dSAndroid Build Coastguard Worker "-D_FILE_OFFSET_BITS=64", 99*7304104dSAndroid Build Coastguard Worker "-include AndroidFixup.h", 100*7304104dSAndroid Build Coastguard Worker ], 101*7304104dSAndroid Build Coastguard Worker shared: { 102*7304104dSAndroid Build Coastguard Worker enabled: false, 103*7304104dSAndroid Build Coastguard Worker }, 104*7304104dSAndroid Build Coastguard Worker }, 105*7304104dSAndroid Build Coastguard Worker musl: { 106*7304104dSAndroid Build Coastguard Worker cflags: [ 107*7304104dSAndroid Build Coastguard Worker "-include AndroidFixup.h", 108*7304104dSAndroid Build Coastguard Worker ], 109*7304104dSAndroid Build Coastguard Worker }, 110*7304104dSAndroid Build Coastguard Worker }, 111*7304104dSAndroid Build Coastguard Worker 112*7304104dSAndroid Build Coastguard Worker visibility: [ 113*7304104dSAndroid Build Coastguard Worker "//art:__subpackages__", // For use in tests only. 114*7304104dSAndroid Build Coastguard Worker "//device/google/contexthub/util/nanoapp_postprocess", 115*7304104dSAndroid Build Coastguard Worker "//external/bcc/libbpf-tools", 116*7304104dSAndroid Build Coastguard Worker "//external/bpftool", 117*7304104dSAndroid Build Coastguard Worker "//external/igt-gpu-tools", 118*7304104dSAndroid Build Coastguard Worker "//external/mesa3d", 119*7304104dSAndroid Build Coastguard Worker ], 120*7304104dSAndroid Build Coastguard Worker} 121*7304104dSAndroid Build Coastguard Worker 122*7304104dSAndroid Build Coastguard Workercc_library_headers { 123*7304104dSAndroid Build Coastguard Worker name: "elfutils_headers", 124*7304104dSAndroid Build Coastguard Worker host_supported: true, 125*7304104dSAndroid Build Coastguard Worker native_bridge_supported: true, 126*7304104dSAndroid Build Coastguard Worker vendor_available: true, 127*7304104dSAndroid Build Coastguard Worker export_include_dirs: [ 128*7304104dSAndroid Build Coastguard Worker ".", 129*7304104dSAndroid Build Coastguard Worker "include", 130*7304104dSAndroid Build Coastguard Worker "lib", 131*7304104dSAndroid Build Coastguard Worker ], 132*7304104dSAndroid Build Coastguard Worker target: { 133*7304104dSAndroid Build Coastguard Worker android: { 134*7304104dSAndroid Build Coastguard Worker export_include_dirs: ["bionic-fixup"], 135*7304104dSAndroid Build Coastguard Worker }, 136*7304104dSAndroid Build Coastguard Worker musl: { 137*7304104dSAndroid Build Coastguard Worker export_include_dirs: ["bionic-fixup"], 138*7304104dSAndroid Build Coastguard Worker }, 139*7304104dSAndroid Build Coastguard Worker }, 140*7304104dSAndroid Build Coastguard Worker visibility: [":__subpackages__"], 141*7304104dSAndroid Build Coastguard Worker} 142*7304104dSAndroid Build Coastguard Worker 143*7304104dSAndroid Build Coastguard Workercc_library { 144*7304104dSAndroid Build Coastguard Worker name: "libdw", 145*7304104dSAndroid Build Coastguard Worker host_supported: true, 146*7304104dSAndroid Build Coastguard Worker device_supported: false, 147*7304104dSAndroid Build Coastguard Worker defaults: ["elfutils_defaults"], 148*7304104dSAndroid Build Coastguard Worker target: { 149*7304104dSAndroid Build Coastguard Worker darwin: { 150*7304104dSAndroid Build Coastguard Worker enabled: false, 151*7304104dSAndroid Build Coastguard Worker }, 152*7304104dSAndroid Build Coastguard Worker musl: { 153*7304104dSAndroid Build Coastguard Worker static_libs: [ 154*7304104dSAndroid Build Coastguard Worker "libfts", 155*7304104dSAndroid Build Coastguard Worker ], 156*7304104dSAndroid Build Coastguard Worker }, 157*7304104dSAndroid Build Coastguard Worker }, 158*7304104dSAndroid Build Coastguard Worker srcs: [ 159*7304104dSAndroid Build Coastguard Worker "backends/*.c", 160*7304104dSAndroid Build Coastguard Worker "libcpu/*_disasm.c", 161*7304104dSAndroid Build Coastguard Worker "libdw/*.c", 162*7304104dSAndroid Build Coastguard Worker "libdwelf/*.c", 163*7304104dSAndroid Build Coastguard Worker "libdwfl/*.c", 164*7304104dSAndroid Build Coastguard Worker "libebl/*.c", 165*7304104dSAndroid Build Coastguard Worker ], 166*7304104dSAndroid Build Coastguard Worker generated_headers: [ 167*7304104dSAndroid Build Coastguard Worker "i386_dis", 168*7304104dSAndroid Build Coastguard Worker "i386_mnemonics", 169*7304104dSAndroid Build Coastguard Worker "x86_64_dis", 170*7304104dSAndroid Build Coastguard Worker "x86_64_mnemonics", 171*7304104dSAndroid Build Coastguard Worker ], 172*7304104dSAndroid Build Coastguard Worker exclude_srcs: [ 173*7304104dSAndroid Build Coastguard Worker // Do not enabled compression support 174*7304104dSAndroid Build Coastguard Worker "libdwfl/bzip2.c", 175*7304104dSAndroid Build Coastguard Worker "libdwfl/lzma.c", 176*7304104dSAndroid Build Coastguard Worker // These depend on argp which doesn't exist in musl 177*7304104dSAndroid Build Coastguard Worker "libdwfl/argp-std.c", 178*7304104dSAndroid Build Coastguard Worker // Those are common source files actually used as headers and not 179*7304104dSAndroid Build Coastguard Worker // compiled standalone. 180*7304104dSAndroid Build Coastguard Worker "backends/common-reloc.c", 181*7304104dSAndroid Build Coastguard Worker "backends/linux-core-note.c", 182*7304104dSAndroid Build Coastguard Worker "backends/x86_corenote.c", 183*7304104dSAndroid Build Coastguard Worker ], 184*7304104dSAndroid Build Coastguard Worker local_include_dirs: [ 185*7304104dSAndroid Build Coastguard Worker "libcpu", 186*7304104dSAndroid Build Coastguard Worker "libasm", 187*7304104dSAndroid Build Coastguard Worker "libdwelf", 188*7304104dSAndroid Build Coastguard Worker "libdwfl", 189*7304104dSAndroid Build Coastguard Worker "libebl", 190*7304104dSAndroid Build Coastguard Worker ], 191*7304104dSAndroid Build Coastguard Worker export_include_dirs: [ 192*7304104dSAndroid Build Coastguard Worker "libdw", 193*7304104dSAndroid Build Coastguard Worker ], 194*7304104dSAndroid Build Coastguard Worker static_libs: [ 195*7304104dSAndroid Build Coastguard Worker "libelf", 196*7304104dSAndroid Build Coastguard Worker ], 197*7304104dSAndroid Build Coastguard Worker whole_static_libs: [ 198*7304104dSAndroid Build Coastguard Worker "libeu", 199*7304104dSAndroid Build Coastguard Worker ], 200*7304104dSAndroid Build Coastguard Worker compile_multilib: "64", 201*7304104dSAndroid Build Coastguard Worker} 202