[package]
name = "relibc"
version = "0.2.5"
authors = ["Jeremy Soller <jackpot51@gmail.com>"]
edition = "2021"

[lib]
name = "relibc"
crate-type = ["staticlib"]

[workspace]
members = ["src/crt0", "src/crti", "src/crtn", "src/ld_so", "src/platform/redox/redox-exec"]
exclude = ["core_io", "ralloc", "tests"]

[build-dependencies]
cbindgen = "0.24.3"
cc = "1.0.25"
#env_logger = "0.10"

[dependencies]
bitflags = "1"
cbitset = "0.1.0"
core_io = { path = "core_io", features = ["collections"] }
lazy_static = { version = "1.4.0", default-features = false, features = ["spin_no_std"] }
memoffset = "0.5.1"
posix-regex = { path = "posix-regex", features = ["no_std"] }
rand = { version = "0.5.5", default-features = false }
memchr = { version = "2.2.0", default-features = false }
plain = "0.2"
unicode-width = "0.1"
__libc_only_for_layout_checks = { package = "libc", version = "0.2.149", optional = true }

[dependencies.goblin]
version = "0.0.21"
default-features = false
features = ["elf32", "elf64", "endian_fd"]

[dependencies.ralloc]
path = "ralloc"
default-features = false
optional = true

[target.'cfg(target_os = "linux")'.dependencies]
sc = "0.2.3"

[target.'cfg(target_os = "redox")'.dependencies]
redox_syscall = "0.4"
spin = "0.9.0"
redox-exec = { path = "src/platform/redox/redox-exec" }

[features]
default = ["check_against_libc_crate"]
trace = []
check_against_libc_crate = ["__libc_only_for_layout_checks"]

[profile.dev]
panic = "abort"

[profile.release]
panic = "abort"

[patch.crates-io]
redox_syscall = { git = "https://gitlab.redox-os.org/redox-os/syscall" }