[package] name = "relibc" version = "0.6.0+rb0.3.0" authors = ["Jeremy Soller ", "vasilito "] edition = "2024" [lib] name = "relibc" crate-type = ["staticlib"] [workspace] members = [ "src/crt0", "src/crti", "src/crtn", "redox-rt", "ld_so", "generic-rt", ] exclude = ["tests", "dlmalloc-rs"] [workspace.lints.clippy] borrow_as_ptr = "deny" cast_lossless = "warn" # TODO review occurrences cast_possible_truncation = "allow" # TODO review occurrences cast_possible_wrap = "allow" # TODO review occurrences cast_precision_loss = "allow" # TODO review occurrences cast_ptr_alignment = "allow" # TODO review occurrences cast_sign_loss = "allow" # TODO review occurrences missing_errors_doc = "allow" # TODO review occurrences missing_panics_doc = "allow" # TODO review occurrences missing_safety_doc = "allow" # TODO review occurrences mut_from_ref = "warn" # TODO review occurrences precedence = "deny" ptr_as_ptr = "warn" # TODO review occurrences ptr_cast_constness = "warn" # TODO review occurrences ref_as_ptr = "warn" # TODO review occurrences upper_case_acronyms = "allow" # TODO review occurrences zero_ptr = "warn" # must allow on public constants due to cbindgen issue [workspace.lints.rust] dangling_pointers_from_temporaries = "deny" dead_code = "allow" # TODO review occuurences deprecated = "deny" improper_ctypes_definitions = "deny" internal_features = "allow" # core_intrinsics and lang_items irrefutable_let_patterns = "deny" mismatched_lifetime_syntaxes = "deny" non_camel_case_types = "allow" # needed for most POSIX type names non_snake_case = "allow" # TODO review occuurences non_upper_case_globals = "allow" # TODO review occuurences unexpected_cfgs = "deny" unpredictable_function_pointer_comparisons = "deny" unreachable_code = "allow" # TODO review occuurences unsafe_op_in_unsafe_fn = "deny" unused_imports = "deny" unused_must_use = "deny" unused_mut = "deny" unused_unsafe = "deny" unused_variables = "allow" # TODO review occurrences (too many for now) [lints] workspace = true [workspace.dependencies] bitflags = "2" ioslice = { version = "0.6", default-features = false } plain = "0.2" redox-path = "0.3" redox_protocols = { package = "libredox", path = "../libredox", default-features = false, features = ["protocol"] } redox_syscall = { path = "../syscall" } [build-dependencies] cc = "1" [dependencies] bitflags.workspace = true cbitset = "0.2" posix-regex = { version = "0.1.4", features = ["no_std"] } rand = { version = "0.10", default-features = false } rand_xorshift = "0.5" rand_jitter = "0.6" memchr = { version = "2.2.0", default-features = false } plain.workspace = true unicode-width = "0.1" __libc_only_for_layout_checks = { package = "libc", version = "0.2.149", optional = true } md5-crypto = { package = "md-5", version = "0.10.6", default-features = false } sha-crypt = { version = "0.5", default-features = false } base64ct = { version = "1.6", default-features = false, features = ["alloc"] } bcrypt-pbkdf = { version = "0.10", default-features = false, features = [ "alloc", ] } scrypt = { version = "0.11", default-features = false, features = ["simple"] } pbkdf2 = { version = "0.12", features = ["sha2"] } sha2 = { version = "0.10", default-features = false } generic-rt = { path = "generic-rt" } chrono-tz = { version = "0.10", default-features = false } chrono = { version = "0.4", default-features = false, features = ["alloc"] } libm = "0.2" log = "0.4" spin = "0.9.8" argon2 = "0.5.3" [dependencies.dlmalloc] path = "dlmalloc-rs" default-features = false features = ["c_api"] [dependencies.object] version = "0.36.7" git = "https://gitlab.redox-os.org/andypython/object" default-features = false features = ["elf", "read_core"] [target.'cfg(target_os = "linux")'.dependencies] sc = "0.2.7" [target.'cfg(target_os = "redox")'.dependencies] redox_syscall.workspace = true redox-rt = { path = "redox-rt" } redox-path.workspace = true redox_event = { version = "0.4.8", default-features = false, features = [ "redox_syscall", ] } ioslice.workspace = true redox-ioctl = { path = "redox-ioctl" } redox_protocols.workspace = true [features] # to enable trace level, take out this `no_trace` default = ["ld_so_cache", "no_trace"] check_against_libc_crate = ["__libc_only_for_layout_checks"] ld_so_cache = [] math_libm = [] no_trace = ["log/release_max_level_debug"] # for very verbose activity beyond trace level trace_tls = [] [profile.dev] panic = "abort" [profile.release] panic = "abort" [patch.crates-io] cc-11 = { git = "https://github.com/tea/cc-rs", branch = "riscv-abi-arch-fix", package = "cc" } redox_syscall = { path = "../syscall" } libredox = { path = "../libredox" } redox-scheme = { path = "../redox-scheme" }