// Copyright (C) 2013 The Android Open Source Project // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // *** THIS PACKAGE HAS SPECIAL LICENSING CONDITIONS. PLEASE // CONSULT THE OWNERS AND opensource-licensing@google.com BEFORE // DEPENDING ON IT IN YOUR PROJECT. *** package { default_applicable_licenses: ["external_elfutils_license"], } // http://go/android-license-faq license { name: "external_elfutils_license", visibility: [":__subpackages__"], license_kinds: [ "SPDX-license-identifier-Apache-2.0", "SPDX-license-identifier-BSD", "SPDX-license-identifier-GFDL", // by exception only "SPDX-license-identifier-GPL-2.0-or-later", "SPDX-license-identifier-GPL-3.0-or-later", "SPDX-license-identifier-LGPL-3.0-or-later", ], license_text: [ "COPYING", "COPYING-GPLV2", "COPYING-LGPLV3", "NOTICE", ], } cc_defaults { name: "elfutils_defaults", cflags: [ "-DHAVE_CONFIG_H", "-D_GNU_SOURCE", // upper bound for the number of lines of the resulting mnemonic files "-DNMNES=1000", "-std=gnu99", "-Werror", // to suppress the "pointer of type ‘void *’ used in arithmetic" warning "-Wno-pointer-arith", "-Wno-typedef-redefinition", ], header_libs: [ "elfutils_headers", ], export_header_lib_headers: ["elfutils_headers"], visibility: [ "//external/dwarves:__subpackages__", "//external/elfutils:__subpackages__", "//external/libabigail:__subpackages__", "//external/libbpf:__subpackages__", ], } cc_library { name: "libelf", host_supported: true, vendor_available: true, defaults: ["elfutils_defaults"], srcs: ["libelf/*.c",], static_libs: ["libz"], export_include_dirs: ["libelf"], target: { darwin: { enabled: false, }, android: { cflags: [ "-D_FILE_OFFSET_BITS=64", "-include AndroidFixup.h", ], shared: { enabled: false, }, }, }, visibility: [ "//device/google/contexthub/util/nanoapp_postprocess", "//external/igt-gpu-tools", "//external/mesa3d", ], } cc_library_headers { name: "elfutils_headers", host_supported: true, vendor_available: true, export_include_dirs: [ ".", "include", "lib", ], target: { android: { export_include_dirs: ["bionic-fixup"], }, }, visibility: [":__subpackages__"], } cc_library_host_static { name: "libdw", defaults: ["elfutils_defaults"], target: { darwin: { enabled: false, }, }, srcs: [ "backends/*.c", "libcpu/*_disasm.c", "libdw/*.c", "libdwelf/*.c", "libdwfl/*.c", "libebl/*.c", ], generated_headers: [ "i386_dis", "i386_mnemonics", "x86_64_dis", "x86_64_mnemonics", ], exclude_srcs: [ // Do not enabled compression support "libdwfl/bzip2.c", "libdwfl/lzma.c", "libdwfl/zstd.c", // Those headers are incompatible with clang due to nested function // definitions. "libdwfl/dwfl_segment_report_module.c", "libdwfl/debuginfod-client.c", "libdwfl/elf-from-memory.c", "libdwfl/link_map.c", // Those are common source files actually used as headers and not // compiled standalone. "backends/common-reloc.c", "backends/linux-core-note.c", "backends/x86_corenote.c", ], local_include_dirs: [ "libcpu", "libasm", "libdwelf", "libdwfl", "libebl", ], export_include_dirs: [ "libdw", ], static_libs: [ "libelf" ], compile_multilib: "64", }