blob: e621a29aa01474f02f0630aeb73fb1ce78685d62 [file] [log] [blame]
//
// Copyright (C) 2017 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.
//
package {
default_applicable_licenses: ["prebuilts_clang_host_linux-x86_license"],
}
// See: http://go/android-license-faq
// SPDX-license-identifier-GPL and SPDX-license-identifier-LGPL removed
// those files are dual-licensed 'OR PSF'
license {
name: "prebuilts_clang_host_linux-x86_license",
visibility: [":__subpackages__"],
license_kinds: [
"SPDX-license-identifier-Apache-2.0",
"SPDX-license-identifier-BSD",
"SPDX-license-identifier-MIT",
"SPDX-license-identifier-NCSA",
"SPDX-license-identifier-PSF-2.0",
"SPDX-license-identifier-Zlib",
"legacy_unencumbered",
],
// large-scale-change unable to identify any license_text files
}
llvm_prebuilt_library_static {
name: "libFuzzer",
vendor_available: true,
sdk_version: "minimum",
sanitize: {
never: true,
},
}
llvm_prebuilt_library_static {
name: "libomp",
sdk_version: "minimum",
vendor_available: true,
product_available: true,
sanitize: {
never: true,
},
}
cc_defaults {
name: "libclang_rt-prebuilt-default",
ramdisk_available: true,
vendor_ramdisk_available: true,
apex_available: [
"//apex_available:anyapex",
"//apex_available:platform",
],
}
///////////////////////////////////////////////////////////////////////////////
libclang_rt_prebuilt_library_static {
name: "libclang_rt.builtins",
defaults: ["libclang_rt-prebuilt-default"],
sdk_version: "minimum",
recovery_available: true,
vendor_available: true,
product_available: true,
native_bridge_supported: true,
host_supported: true,
sanitize: {
never: true,
},
stl: "none",
}
libclang_rt_prebuilt_library_static {
name: "libclang_rt.builtins-exported",
lib_name: "libclang_rt.builtins",
suffix: "-exported",
defaults: ["libclang_rt-prebuilt-default"],
sdk_version: "minimum",
recovery_available: true,
vendor_available: true,
product_available: true,
native_bridge_supported: true,
sanitize: {
never: true,
},
enabled: false,
target: {
android_arm: {
enabled: true,
},
android_x86: {
enabled: true,
},
},
stl: "none",
// This exported variant of the builtins library is only intended for use in
// libc.so and libm.so, which exports some builtins symbols for backwards
// compatibility.
visibility: [
"//bionic:__subpackages__",
"//frameworks/libs/native_bridge_support/libc:__subpackages__",
"//frameworks/libs/native_bridge_support/android_api/libc:__subpackages__",
],
}
///////////////////////////////////////////////////////////////////////////////
libclang_rt_prebuilt_library_shared {
name: "libclang_rt.asan",
defaults: ["libclang_rt-prebuilt-default"],
host_supported: true,
recovery_available: true,
native_bridge_supported: true,
sdk_version: "24",
check_elf_files: false, // Bypass circular dependency between libc++
is_llndk: true,
}
///////////////////////////////////////////////////////////////////////////////
libclang_rt_prebuilt_library_static {
name: "libclang_rt.asan.static",
defaults: ["libclang_rt-prebuilt-default"],
host_supported: true,
recovery_available: true,
native_bridge_supported: true,
sdk_version: "24",
}
///////////////////////////////////////////////////////////////////////////////
libclang_rt_prebuilt_library_static {
name: "libclang_rt.asan_cxx.static",
defaults: ["libclang_rt-prebuilt-default"],
host_supported: true,
recovery_available: true,
native_bridge_supported: true,
sdk_version: "24",
}
///////////////////////////////////////////////////////////////////////////////
libclang_rt_prebuilt_library_shared {
name: "libclang_rt.ubsan_standalone",
defaults: ["libclang_rt-prebuilt-default"],
host_supported: true,
vendor_available: true,
product_available: true,
recovery_available: true,
double_loadable: true,
stl: "c++_shared",
sdk_version: "24",
check_elf_files: false, // Bypass circular dependency between libc++
}
///////////////////////////////////////////////////////////////////////////////
libclang_rt_prebuilt_library_static {
name: "libclang_rt.ubsan_standalone.static",
defaults: ["libclang_rt-prebuilt-default"],
sdk_version: "24",
vendor_available: true,
product_available: true,
recovery_available: true,
double_loadable: true,
host_supported: true,
stl: "c++_static",
check_elf_files: false, // Bypass circular dependency between libc++
}
///////////////////////////////////////////////////////////////////////////////
libclang_rt_prebuilt_library_static {
name: "libclang_rt.ubsan_minimal",
defaults: ["libclang_rt-prebuilt-default"],
sdk_version: "24",
vendor_available: true,
product_available: true,
recovery_available: true,
double_loadable: true,
host_supported: true,
native_bridge_supported: true,
}
///////////////////////////////////////////////////////////////////////////////
libclang_rt_prebuilt_library_static {
name: "libclang_rt.hwasan_static",
sdk_version: "minimum",
enabled: false,
recovery_available: true,
vendor_available: true,
product_available: true,
host_supported: true,
target: {
bionic_arm64: {
enabled: true,
},
},
defaults: [
"libclang_rt-prebuilt-default",
],
}
///////////////////////////////////////////////////////////////////////////////
libclang_rt_prebuilt_library_shared {
name: "libclang_rt.hwasan",
sdk_version: "minimum",
enabled: false,
recovery_available: true,
host_supported: true,
target: {
bionic_arm64: {
enabled: true,
},
},
check_elf_files: false, // Bypass circular dependency between libc++
is_llndk: true,
defaults: [
"libclang_rt-prebuilt-default",
],
}
///////////////////////////////////////////////////////////////////////////////
libclang_rt_prebuilt_library_static {
name: "libclang_rt.profile",
defaults: ["libclang_rt-prebuilt-default"],
host_supported: true,
sdk_version: "minimum",
recovery_available: true,
vendor_available: true,
product_available: true,
check_elf_files: false, // Bypass circular dependency between libc++
}
///////////////////////////////////////////////////////////////////////////////
libclang_rt_prebuilt_library_static {
name: "libclang_rt.fuzzer",
defaults: ["libclang_rt-prebuilt-default"],
sdk_version: "minimum",
host_supported: true,
recovery_available: true,
vendor_available: true,
product_available: true,
ramdisk_available: false,
vendor_ramdisk_available: false,
sanitize: {
never: true,
},
}
///////////////////////////////////////////////////////////////////////////////
libclang_rt_prebuilt_library_static {
name: "libclang_rt.fuzzer_interceptors",
defaults: ["libclang_rt-prebuilt-default"],
sdk_version: "minimum",
host_supported: true,
recovery_available: true,
vendor_available: true,
product_available: true,
ramdisk_available: false,
vendor_ramdisk_available: false,
}
///////////////////////////////////////////////////////////////////////////////
libclang_rt_prebuilt_object {
name: "clang_rt.crtbegin",
host_supported: true,
defaults: ["libclang_rt-prebuilt-default"],
}
libclang_rt_prebuilt_object {
name: "clang_rt.crtend",
host_supported: true,
defaults: ["libclang_rt-prebuilt-default"],
}
///////////////////////////////////////////////////////////////////////////////
cc_defaults {
name: "libunwind-android-default",
defaults: [
"libclang_rt-prebuilt-default",
"linux_bionic_supported",
],
sdk_version: "minimum",
recovery_available: true,
vendor_available: true,
product_available: true,
native_bridge_supported: true,
sanitize: {
never: true,
},
stl: "none",
// The unwinder needs functions from libc (and libdl), but libc.so links
// against libunwind*.a. Clear the system_shared_libs property so that Soong
// doesn't complain about the cyclic dependency.
system_shared_libs: [],
}
llvm_prebuilt_library_static {
name: "libunwind",
defaults: ["libunwind-android-default"],
target: {
musl: {
enabled: true,
},
},
}
llvm_prebuilt_library_static {
name: "libunwind-exported",
defaults: ["libunwind-android-default"],
// The libunwind-exported.a library is only intended for use with libc.so,
// which needs to export the unwinder API.
visibility: [
"//bionic:__subpackages__",
"//frameworks/libs/native_bridge_support/libc:__subpackages__",
"//frameworks/libs/native_bridge_support/android_api/libc:__subpackages__",
],
}
llvm_prebuilt_library_static {
name: "libsimpleperf_readelf",
host_supported: true,
sdk_version: "minimum",
sanitize: {
never: true,
},
target: {
windows: {
enabled: true,
},
},
visibility: [
"//cts/tests/tests/simpleperf",
"//system/extras/simpleperf",
],
}
// -----------------------------------------------------------------------------
// Export libc++ and libclang-cpp.so.
// -----------------------------------------------------------------------------
llvm_host_defaults {
name: "llvm-build-host-tools-defaults",
target: {
// We don't have a musl build of libclang-cpp.so, so disable the host
// tools for musl.
musl: {
enabled: false,
},
},
}
// Export libclang-cpp shared library
llvm_prebuilt_library_shared {
name: "libclang-cpp_host",
host_supported: true,
device_supported: false,
sanitize: {
never: true,
},
shared_libs: ["libc++"],
target: {
darwin: {
strip: {
none: true,
},
},
},
}
cc_defaults {
name: "libc++-device-base-default",
device_supported: true,
ramdisk_available: true,
vendor_ramdisk_available: true,
recovery_available: true,
native_bridge_supported: true,
sdk_version: "minimum",
}
cc_defaults {
name: "libc++-device-default",
defaults: ["libc++-device-base-default"],
vendor_available: true,
product_available: true,
apex_available: [
"//apex_available:platform",
"//apex_available:anyapex",
],
}
// The "noexcept" variants of libc++_static and libc++demangle are intended for
// use in the dynamic linker. The linker doesn't implement ELF TLS for itself,
// so it needs to avoid using the per-thread EH globals pointer.
cc_defaults {
name: "libc++-noexcept-default",
defaults: ["libc++-device-base-default"],
host_supported: false,
apex_available: [
"com.android.runtime",
],
visibility: [
"//bionic:__subpackages__",
"//frameworks/libs/native_bridge_support:__subpackages__",
],
}
llvm_prebuilt_library_shared {
name: "libc++",
host_supported: true,
defaults: ["libc++-device-default"],
double_loadable: true,
// TODO(b/298326651): Soong doesn't output a shared library module for
// libc.native_bridge, so when check_elf_file.py checks
// libc++.native_bridge, it's missing a --shared-lib argument for libc.so.
check_elf_files: false,
}
llvm_prebuilt_library_shared {
name: "libc++abi_shared",
host_supported: true,
device_supported: false,
}
llvm_prebuilt_library_static {
name: "libc++_static",
host_supported: true,
defaults: ["libc++-device-default"],
target: {
windows: {
enabled: true,
},
},
stl: "none",
}
llvm_prebuilt_library_static {
name: "libc++abi_static",
host_supported: true,
device_supported: false,
target: {
windows: {
enabled: true,
},
},
stl: "none",
}
llvm_prebuilt_library_static {
name: "libc++demangle",
host_supported: false,
defaults: ["libc++-device-default"],
stl: "none",
}
llvm_prebuilt_library_static {
name: "libc++_static_noexcept",
defaults: ["libc++-noexcept-default"],
stl: "none",
}
llvm_prebuilt_library_static {
name: "libc++demangle_noexcept",
defaults: ["libc++-noexcept-default"],
stl: "none",
}
// Stub out this library. It's not needed anymore because libc++.so and
// libc++_static.a now contain the stable std::filesystem APIs.
// TODO: Remove dependencies on this library, then remove this library.
cc_library_static {
name: "libc++fs",
srcs: [],
host_supported: true,
defaults: ["libc++-device-default"],
min_sdk_version: "apex_inherit",
stl: "none",
}
clang_builtin_headers {
name: "clang_builtin_headers_resources",
tool_files: ["soong/generate_clang_builtin_headers_resources.sh"],
out: ["clang_builtin_headers_resources.inc"],
}
// Export llvm tools as a filegroup which is packaged and available for CI
// tests.
llvm_tools_filegroup {
name: "llvm-tools",
visibility: ["//development/scripts:__subpackages__"],
// The tools and libs in the filegroup are in
// ./soong/clangprebuilts.go:llvmToolsFiles
}
llvm_prebuilt_build_tool {
name: "llvm-dwarfdump",
}
llvm_prebuilt_build_tool {
name: "llvm-objdump",
}
subdirs = [
"soong",
]