// Sysroot Libraries package { default_applicable_licenses: ["prebuilts_rust_license"], } // Added automatically by a large-scale-change that took the approach of // 'apply every license found to every target'. While this makes sure we respect // every license restriction, it may not be entirely correct. // // e.g. GPL in an MIT project might only apply to the contrib/ directory. // // Please consider splitting the single license below into multiple licenses, // taking care not to lose any license_kind information, and overriding the // default license using the 'licenses: [...]' property on targets as needed. // // For unused files, consider creating a 'fileGroup' with "//visibility:private" // to attach the license to, and including a comment whether the files may be // used in the current project. // See: http://go/android-license-faq license { name: "prebuilts_rust_license", visibility: [":__subpackages__"], license_kinds: [ "SPDX-license-identifier-Apache-2.0", "SPDX-license-identifier-BSD", "SPDX-license-identifier-GPL", "SPDX-license-identifier-GPL-2.0", "SPDX-license-identifier-GPL-3.0", "SPDX-license-identifier-LGPL", "SPDX-license-identifier-MIT", "SPDX-license-identifier-NCSA", "SPDX-license-identifier-OpenSSL", "legacy_notice", "legacy_permissive", "legacy_unencumbered", ], // large-scale-change unable to identify any license_text files } rust_stdlib_prebuilt_host { name: "libstd", crate_name: "std", sysroot: true, } // stdlibs source path relative to toolchain root stdlibs_src_path = "src/stdlibs" // The basic crates are only available as static libraries // .rust_sysroot is appended to the name to prevent accidental direct usage // of these crates by user code. // The most likely place for this to occur would be liblibc. rust_defaults { name: "rust_sysroot_defaults", no_stdlibs: true, edition: "2021", native_coverage: false, host_supported: true, sysroot: true, native_bridge_supported: true, product_available: true, ramdisk_available: true, recovery_available: true, vendor_available: true, vendor_ramdisk_available: true, apex_available: [ "//apex_available:platform", "//apex_available:anyapex", ], target: { glibc: { enabled: false, }, darwin_x86_64: { enabled: false, }, darwin_arm64: { enabled: true, }, musl: { enabled: false, }, musl_arm64: { enabled: true, }, }, min_sdk_version: "29", } rust_toolchain_library_rlib { name: "libcore.rust_sysroot", defaults: ["rust_sysroot_defaults"], crate_name: "core", toolchain_crate_root: stdlibs_src_path + "/library/core/src/lib.rs", toolchain_srcs: [ stdlibs_src_path + "/library/core/src/**/*.rs", stdlibs_src_path + "/library/core/src/**/*.md", stdlibs_src_path + "/library/core/primitive_docs/*.md", stdlibs_src_path + "/library/stdarch/crates/core_arch/src/**/*.rs", stdlibs_src_path + "/library/stdarch/crates/core_arch/src/**/*.md", stdlibs_src_path + "/library/portable-simd/crates/core_simd/src/**/*.rs", stdlibs_src_path + "/library/portable-simd/crates/core_simd/src/**/*.md", ], sanitize: { never: true, }, edition: "2021", } rust_toolchain_library_rlib { name: "librustc_demangle.rust_sysroot", defaults: ["rust_sysroot_defaults"], crate_name: "rustc_demangle", toolchain_crate_root: stdlibs_src_path + "/vendor/rustc-demangle/src/lib.rs", toolchain_srcs: [ stdlibs_src_path + "/vendor/rustc-demangle/src/**/*.rs", stdlibs_src_path + "/vendor/rustc-demangle/src/**/*.md", ], features: [ "core", "compiler_builtins", ], rlibs: [ "libcompiler_builtins.rust_sysroot", "libcore.rust_sysroot", ], edition: "2015", } rust_toolchain_library_rlib { name: "libcompiler_builtins.rust_sysroot", defaults: ["rust_sysroot_defaults"], crate_name: "compiler_builtins", features: [ "compiler-builtins", "core", "default", "weak-intrinsics", ], toolchain_crate_root: stdlibs_src_path + "/vendor/compiler_builtins/src/lib.rs", toolchain_srcs: [ stdlibs_src_path + "/vendor/compiler_builtins/src/**/*.rs", stdlibs_src_path + "/vendor/compiler_builtins/src/**/*.md", ], rlibs: ["libcore.rust_sysroot"], flags: [ "-C", "panic=abort", "-C", "overflow-checks=off", ], edition: "2018", } rust_toolchain_library_rlib { name: "liblibc.rust_sysroot", defaults: ["rust_sysroot_defaults"], crate_name: "libc", features: ["align"], toolchain_crate_root: stdlibs_src_path + "/vendor/libc/src/lib.rs", toolchain_srcs: [ stdlibs_src_path + "/vendor/libc/src/**/*.rs", stdlibs_src_path + "/vendor/libc/src/**/*.md", ], rlibs: [ "libcompiler_builtins.rust_sysroot", "libcore.rust_sysroot", ], // Generated via build.rs autodetect on compiler version. May need to be // regenerated on compiler version bump. cfgs: [ "freebsd11", "libc_priv_mod_use", "libc_union", "libc_const_size_of", "libc_align", "libc_core_cvoid", "libc_packedN", "libc_thread_local", "libc_const_extern_fn", ], edition: "2015", } rust_toolchain_library_rlib { name: "liballoc.rust_sysroot", defaults: ["rust_sysroot_defaults"], crate_name: "alloc", toolchain_crate_root: stdlibs_src_path + "/library/alloc/src/lib.rs", toolchain_srcs: [ stdlibs_src_path + "/library/alloc/src/**/*.rs", stdlibs_src_path + "/library/alloc/src/**/*.md", ], features: ["compiler-builtins-weak-intrinsics"], rlibs: [ "libcompiler_builtins.rust_sysroot", "libcore.rust_sysroot", ], edition: "2021", } rust_toolchain_library_rlib { name: "libcfg_if.rust_sysroot", defaults: ["rust_sysroot_defaults"], crate_name: "cfg_if", features: [ "compiler_builtins", "core", ], toolchain_crate_root: stdlibs_src_path + "/vendor/cfg-if/src/lib.rs", toolchain_srcs: [ stdlibs_src_path + "/vendor/cfg-if/src/**/*.rs", stdlibs_src_path + "/vendor/cfg-if/src/**/*.md", ], rlibs: [ "libcompiler_builtins.rust_sysroot", "libcore.rust_sysroot", ], edition: "2018", } rust_toolchain_library_rlib { name: "libstd_detect.rust_sysroot", defaults: ["rust_sysroot_defaults"], crate_name: "std_detect", features: [ "std_detect_file_io", "std_detect_dlsym_getauxval", ], toolchain_crate_root: stdlibs_src_path + "/library/stdarch/crates/std_detect/src/lib.rs", toolchain_srcs: [ stdlibs_src_path + "/library/stdarch/crates/std_detect/src/**/*.rs", stdlibs_src_path + "/library/stdarch/crates/std_detect/src/**/*.md", ], rlibs: [ "libcompiler_builtins.rust_sysroot", "libcore.rust_sysroot", "liballoc.rust_sysroot", "libcfg_if.rust_sysroot", ], } rust_toolchain_library_rlib { name: "libpanic_abort.rust_sysroot", defaults: ["rust_sysroot_defaults"], crate_name: "panic_abort", toolchain_crate_root: stdlibs_src_path + "/library/panic_abort/src/lib.rs", toolchain_srcs: [ stdlibs_src_path + "/library/panic_abort/src/**/*.rs", stdlibs_src_path + "/library/panic_abort/src/**/*.md", ], rlibs: [ "liballoc.rust_sysroot", "libcompiler_builtins.rust_sysroot", "libcore.rust_sysroot", "libcfg_if.rust_sysroot", "liblibc.rust_sysroot", ], flags: ["-C panic=abort"], } rust_toolchain_library_rlib { name: "libpanic_unwind.rust_sysroot", defaults: ["rust_sysroot_defaults"], crate_name: "panic_unwind", toolchain_crate_root: stdlibs_src_path + "/library/panic_unwind/src/lib.rs", toolchain_srcs: [ stdlibs_src_path + "/library/panic_unwind/src/**/*.rs", stdlibs_src_path + "/library/panic_unwind/src/**/*.md", ], rlibs: [ "liballoc.rust_sysroot", "libcore.rust_sysroot", "liblibc.rust_sysroot", "libunwind.rust_sysroot", "libcompiler_builtins.rust_sysroot", "libcfg_if.rust_sysroot", ], } rust_toolchain_library_rlib { name: "libunwind.rust_sysroot", defaults: ["rust_sysroot_defaults"], crate_name: "unwind", toolchain_crate_root: stdlibs_src_path + "/library/unwind/src/lib.rs", toolchain_srcs: [ stdlibs_src_path + "/library/unwind/src/**/*.rs", stdlibs_src_path + "/library/unwind/src/**/*.md", ], rlibs: [ "libcompiler_builtins.rust_sysroot", "libcore.rust_sysroot", "liblibc.rust_sysroot", "libcfg_if.rust_sysroot", ], } rust_toolchain_library_rlib { name: "libhashbrown.rust_sysroot", defaults: ["rust_sysroot_defaults"], edition: "2021", crate_name: "hashbrown", toolchain_crate_root: stdlibs_src_path + "/vendor/hashbrown/src/lib.rs", toolchain_srcs: [ stdlibs_src_path + "/vendor/hashbrown/src/**/*.rs", stdlibs_src_path + "/vendor/hashbrown/src/**/*.md", ], features: [ "alloc", "compiler_builtins", "core", "nightly", "rustc-dep-of-std", "rustc-internal-api", ], cfgs: ["has_extern_crate_alloc"], rlibs: [ "libcore.rust_sysroot", "libcompiler_builtins.rust_sysroot", "liballoc.rust_sysroot", "libunwind.rust_sysroot", ], } // Top level sysroot libraries are available both as static and dynamic rust_toolchain_library { name: "libstd", defaults: ["rust_sysroot_defaults"], crate_name: "std", target: { linux_bionic: { rlibs: ["libpanic_abort.rust_sysroot"], }, linux_musl: { rlibs: [ "libpanic_abort.rust_sysroot", "libpanic_unwind.rust_sysroot", ], }, android: { rlibs: ["libpanic_abort.rust_sysroot"], }, }, toolchain_crate_root: stdlibs_src_path + "/library/std/src/lib.rs", toolchain_srcs: [ stdlibs_src_path + "/library/std/src/**/*.rs", stdlibs_src_path + "/library/std/src/**/*.md", stdlibs_src_path + "/library/std/primitive_docs/*.md", stdlibs_src_path + "/library/core/src/**/*.md", stdlibs_src_path + "/library/backtrace/src/**/*.rs", stdlibs_src_path + "/library/backtrace/src/**/*.md", stdlibs_src_path + "/library/portable-simd/crates/std_float/src/**/*.rs", stdlibs_src_path + "/library/portable-simd/crates/std_float/src/**/*.md", stdlibs_src_path + "/library/stdarch/crates/core_arch/src/**/*.md", stdlibs_src_path + "/library/stdarch/crates/core_simd/src/**/*.md", stdlibs_src_path + "/library/portable-simd/crates/core_simd/src/**/*.md", ], cfgs: ["backtrace_in_libstd"], features: [ "default", "std_detect_dlsym_getauxval", "std_detect_file_io", "profiler", "compiler-builtins-weak-intrinsics", ], rlibs: [ "libcompiler_builtins.rust_sysroot", "libcore.rust_sysroot", "librustc_demangle.rust_sysroot", "liblibc.rust_sysroot", "libcfg_if.rust_sysroot", "liballoc.rust_sysroot", "libhashbrown.rust_sysroot", "libunwind.rust_sysroot", "libprofiler_builtins.rust_sysroot", "libstd_detect.rust_sysroot", ], } rust_toolchain_library_rlib { name: "libprofiler_builtins.rust_sysroot", defaults: ["rust_sysroot_defaults"], crate_name: "profiler_builtins", toolchain_crate_root: stdlibs_src_path + "/library/profiler_builtins/src/lib.rs", toolchain_srcs: [ stdlibs_src_path + "/library/profiler_builtins/src/**/*.rs", stdlibs_src_path + "/library/profiler_builtins/src/**/*.md", ], rlibs: [ "libcompiler_builtins.rust_sysroot", "libcore.rust_sysroot", ], } rust_toolchain_library { name: "libgetopts", host_supported: true, vendor_available: true, product_available: true, crate_name: "getopts", toolchain_crate_root: stdlibs_src_path + "/vendor/getopts/src/lib.rs", toolchain_srcs: [ stdlibs_src_path + "/vendor/getopts/src/**/*.rs", stdlibs_src_path + "/vendor/getopts/src/**/*.md", ], rlibs: ["libunicode_width.rust_toolchain"], edition: "2015", apex_available: [ "//apex_available:platform", "com.android.virt", ], } rust_toolchain_library { name: "libtest", crate_name: "test", host_supported: true, vendor_available: true, product_available: true, toolchain_crate_root: stdlibs_src_path + "/library/test/src/lib.rs", toolchain_srcs: [ stdlibs_src_path + "/library/test/src/**/*.rs", stdlibs_src_path + "/library/test/src/**/*.md", ], rlibs: [ "liblibc.rust_toolchain", "libcfg_if.rust_toolchain", "libgetopts", ], } rust_toolchain_library_rlib { name: "libunicode_width.rust_toolchain", host_supported: true, vendor_available: true, product_available: true, crate_name: "unicode_width", toolchain_crate_root: stdlibs_src_path + "/vendor/unicode-width/src/lib.rs", toolchain_srcs: [ stdlibs_src_path + "/vendor/unicode-width/src/**/*.rs", stdlibs_src_path + "/vendor/unicode-width/src/**/*.md", ], edition: "2015", apex_available: [ "//apex_available:platform", "com.android.virt", ], } rust_toolchain_library_rlib { name: "libcfg_if.rust_toolchain", crate_name: "cfg_if", host_supported: true, vendor_available: true, product_available: true, toolchain_crate_root: stdlibs_src_path + "/vendor/cfg-if/src/lib.rs", toolchain_srcs: [ stdlibs_src_path + "/vendor/cfg-if/src/**/*.rs", stdlibs_src_path + "/vendor/cfg-if/src/**/*.md", ], } rust_toolchain_library_rlib { name: "liblibc.rust_toolchain", crate_name: "libc", host_supported: true, vendor_available: true, product_available: true, toolchain_crate_root: stdlibs_src_path + "/vendor/libc/src/lib.rs", toolchain_srcs: [ stdlibs_src_path + "/vendor/libc/src/**/*.rs", stdlibs_src_path + "/vendor/libc/src/**/*.md", ], cfgs: [ "freebsd11", "libc_priv_mod_use", "libc_union", "libc_const_size_of", "libc_align", "libc_core_cvoid", "libc_packedN", "libc_thread_local", ], features: [ "std", "align", ], edition: "2015", } // Rustc and Clang have mismatched LLVM versions, cross language LTO may break when LLVM bitcode // format changes. Disallow LTO until we can synchronise the versions. http://b/240643019 cc_defaults { name: "rust_static_cc_lib_defaults", visibility: ["//visibility:public"], lto: { never: true, }, } rust_stdlib_prebuilt_filegroup_host { name: "stdlib_prebuilts", srcs: [ "**/*.rlib", "**/*.a", "**/*.so", "**/*.dylib", ], visibility: ["//visibility:private"], } rust_toolchain_rustc_prebuilt { name: "rustc", toolchain_prebuilt_src: "bin/rustc", toolchain_deps: [ "lib/*", "lib64/*", ], deps: [ ":gcc.lib", ":gcc.lib32", ":gcc.lib64", ":gcc.sysroot", ":stdlib_prebuilts", ], } rust_toolchain_rustc_prebuilt { name: "clippy-driver", toolchain_prebuilt_src: "bin/clippy-driver", } rust_toolchain_rustc_prebuilt { name: "rustdoc", toolchain_prebuilt_src: "bin/rustdoc", } dirgroup { name: "trusty_dirgroup_prebuilts_rust", dirs: ["."], visibility: ["//trusty/vendor/google/aosp/scripts"], }