b071f6405c
When linking an executable without dynamic linking, this is a pure improvement. It significantly reduces code size and avoids a lot of buggy behaviors. It is supported in all browsers for many years and in all maintained versions of Node. It does change the ABI, so people who are dynamically linking with a library or executable that uses the old ABI may need to turn it off. It can be disabled if needed by passing `-Clink-arg -sWASM_BIGINT=0` to `rustc`. But few people will want to turn it off.
149 lines
4.9 KiB
TOML
149 lines
4.9 KiB
TOML
cargo-features = ["public-dependency"]
|
|
|
|
[package]
|
|
name = "std"
|
|
version = "0.0.0"
|
|
license = "MIT OR Apache-2.0"
|
|
repository = "https://github.com/rust-lang/rust.git"
|
|
description = "The Rust Standard Library"
|
|
edition = "2021"
|
|
|
|
[lib]
|
|
crate-type = ["dylib", "rlib"]
|
|
|
|
[dependencies]
|
|
alloc = { path = "../alloc", public = true }
|
|
cfg-if = { version = "1.0", features = ['rustc-dep-of-std'] }
|
|
panic_unwind = { path = "../panic_unwind", optional = true }
|
|
panic_abort = { path = "../panic_abort" }
|
|
core = { path = "../core", public = true }
|
|
compiler_builtins = { version = "=0.1.138" }
|
|
unwind = { path = "../unwind" }
|
|
hashbrown = { version = "0.15", default-features = false, features = [
|
|
'rustc-dep-of-std',
|
|
] }
|
|
std_detect = { path = "../stdarch/crates/std_detect", default-features = false, features = [
|
|
'rustc-dep-of-std',
|
|
] }
|
|
|
|
# Dependencies of the `backtrace` crate
|
|
rustc-demangle = { version = "0.1.24", features = ['rustc-dep-of-std'] }
|
|
|
|
[target.'cfg(not(all(windows, target_env = "msvc", not(target_vendor = "uwp"))))'.dependencies]
|
|
miniz_oxide = { version = "0.7.0", optional = true, default-features = false }
|
|
addr2line = { version = "0.22.0", optional = true, default-features = false }
|
|
|
|
[target.'cfg(not(all(windows, target_env = "msvc")))'.dependencies]
|
|
libc = { version = "0.2.162", default-features = false, features = [
|
|
'rustc-dep-of-std',
|
|
], public = true }
|
|
|
|
[target.'cfg(all(not(target_os = "aix"), not(all(windows, target_env = "msvc", not(target_vendor = "uwp")))))'.dependencies]
|
|
object = { version = "0.36.0", default-features = false, optional = true, features = [
|
|
'read_core',
|
|
'elf',
|
|
'macho',
|
|
'pe',
|
|
'unaligned',
|
|
'archive',
|
|
] }
|
|
|
|
[target.'cfg(target_os = "aix")'.dependencies]
|
|
object = { version = "0.36.0", default-features = false, optional = true, features = [
|
|
'read_core',
|
|
'xcoff',
|
|
'unaligned',
|
|
'archive',
|
|
] }
|
|
|
|
[target.'cfg(windows)'.dependencies.windows-targets]
|
|
path = "../windows_targets"
|
|
|
|
[dev-dependencies]
|
|
rand = { version = "0.8.5", default-features = false, features = ["alloc"] }
|
|
rand_xorshift = "0.3.0"
|
|
|
|
[target.'cfg(any(all(target_family = "wasm", target_os = "unknown"), target_os = "xous", all(target_vendor = "fortanix", target_env = "sgx")))'.dependencies]
|
|
dlmalloc = { version = "0.2.4", features = ['rustc-dep-of-std'] }
|
|
|
|
[target.x86_64-fortanix-unknown-sgx.dependencies]
|
|
fortanix-sgx-abi = { version = "0.5.0", features = [
|
|
'rustc-dep-of-std',
|
|
], public = true }
|
|
|
|
[target.'cfg(target_os = "hermit")'.dependencies]
|
|
hermit-abi = { version = "0.4.0", features = [
|
|
'rustc-dep-of-std',
|
|
], public = true }
|
|
|
|
[target.'cfg(target_os = "wasi")'.dependencies]
|
|
wasi = { version = "0.11.0", features = [
|
|
'rustc-dep-of-std',
|
|
], default-features = false }
|
|
|
|
[target.'cfg(target_os = "uefi")'.dependencies]
|
|
r-efi = { version = "4.5.0", features = ['rustc-dep-of-std'] }
|
|
r-efi-alloc = { version = "1.0.0", features = ['rustc-dep-of-std'] }
|
|
|
|
[features]
|
|
backtrace = [
|
|
'addr2line/rustc-dep-of-std',
|
|
'object/rustc-dep-of-std',
|
|
'miniz_oxide/rustc-dep-of-std',
|
|
]
|
|
|
|
panic-unwind = ["panic_unwind"]
|
|
compiler-builtins-c = ["alloc/compiler-builtins-c"]
|
|
compiler-builtins-mem = ["alloc/compiler-builtins-mem"]
|
|
compiler-builtins-no-asm = ["alloc/compiler-builtins-no-asm"]
|
|
compiler-builtins-no-f16-f128 = ["alloc/compiler-builtins-no-f16-f128"]
|
|
compiler-builtins-mangled-names = ["alloc/compiler-builtins-mangled-names"]
|
|
llvm-libunwind = ["unwind/llvm-libunwind"]
|
|
system-llvm-libunwind = ["unwind/system-llvm-libunwind"]
|
|
|
|
# Make panics and failed asserts immediately abort without formatting any message
|
|
panic_immediate_abort = [
|
|
"core/panic_immediate_abort",
|
|
"alloc/panic_immediate_abort",
|
|
]
|
|
# Choose algorithms that are optimized for binary size instead of runtime performance
|
|
optimize_for_size = ["core/optimize_for_size", "alloc/optimize_for_size"]
|
|
|
|
# Enable std_detect default features for stdarch/crates/std_detect:
|
|
# https://github.com/rust-lang/stdarch/blob/master/crates/std_detect/Cargo.toml
|
|
std_detect_file_io = ["std_detect/std_detect_file_io"]
|
|
std_detect_dlsym_getauxval = ["std_detect/std_detect_dlsym_getauxval"]
|
|
std_detect_env_override = ["std_detect/std_detect_env_override"]
|
|
|
|
# Enable using raw-dylib for Windows imports.
|
|
# This will eventually be the default.
|
|
windows_raw_dylib = ["windows-targets/windows_raw_dylib"]
|
|
|
|
[package.metadata.fortanix-sgx]
|
|
# Maximum possible number of threads when testing
|
|
threads = 125
|
|
# Maximum heap size
|
|
heap_size = 0x8000000
|
|
|
|
[[test]]
|
|
name = "pipe-subprocess"
|
|
path = "tests/pipe_subprocess.rs"
|
|
harness = false
|
|
|
|
[[bench]]
|
|
name = "stdbenches"
|
|
path = "benches/lib.rs"
|
|
test = true
|
|
|
|
[lints.rust.unexpected_cfgs]
|
|
level = "warn"
|
|
check-cfg = [
|
|
'cfg(bootstrap)',
|
|
'cfg(target_arch, values("xtensa"))',
|
|
# std use #[path] imports to portable-simd `std_float` crate
|
|
# and to the `backtrace` crate which messes-up with Cargo list
|
|
# of declared features, we therefor expect any feature cfg
|
|
'cfg(feature, values(any()))',
|
|
# #[cfg(bootstrap)] rtems
|
|
'cfg(target_os, values("rtems"))',
|
|
]
|