// // 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, }, } // All libclang_rt.* modules are available to the platform except // hwasan, which is distributed as part of the runtime apex. cc_defaults { name: "libclang_rt-prebuilt-non-platform-default", ramdisk_available: true, vendor_ramdisk_available: true, apex_available: [ "//apex_available:anyapex", ], } cc_defaults { name: "libclang_rt-prebuilt-default", defaults: ["libclang_rt-prebuilt-non-platform-default"], apex_available: [ "//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, llndk_moved_to_apex: true, defaults: [ "libclang_rt-prebuilt-non-platform-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", "linux_bionic_supported", ], 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", } cc_defaults { name: "libc++-ndk-default", sdk_version: "minimum", apex_available: [ "//apex_available:platform", "//apex_available:anyapex", ], } ndk_prebuilt_shared_stl { name: "ndk_libc++_shared", defaults: ["libc++-ndk-default"], stem: "libc++_shared", } ndk_prebuilt_static_stl { name: "ndk_libc++_static", defaults: ["libc++-ndk-default"], stl: "none", } ndk_prebuilt_static_stl { name: "ndk_libc++abi", defaults: ["libc++-ndk-default"], 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__", "//packages/modules/Bluetooth/system:__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", } llvm_prebuilt_build_tool { name: "llvm-strings", } subdirs = [ "soong", ] filegroup { name: "py-clang-srcs", srcs: [ "clang-stable/lib/python3/site-packages/clang/*.py", ], path: "clang-stable/lib/python3/site-packages/clang", } python_library { name: "py-clang", pkg_path: "clang", host_supported: true, srcs: [ ":py-clang-srcs", ], } filegroup { name: "libclang", srcs: [ "clang-stable/lib/libclang.so", ], } dirgroup { name: "trusty_dirgroup_prebuilts_clang_host_linux-x86", dirs: ["."], visibility: ["//trusty/vendor/google/aosp/scripts"], }