diff options
-rw-r--r-- | Cargo.toml | 16 | ||||
-rw-r--r-- | README.md | 2 | ||||
-rw-r--r-- | libc-test/build.rs | 2 | ||||
-rw-r--r-- | src/lib.rs | 27 | ||||
-rw-r--r-- | src/unix/bsd/apple/mod.rs | 5 | ||||
-rw-r--r-- | src/unix/mod.rs | 7 | ||||
-rw-r--r-- | src/windows/mod.rs | 2 |
7 files changed, 35 insertions, 26 deletions
diff --git a/Cargo.toml b/Cargo.toml index 719470d383..a89376c41d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,28 +1,32 @@ [package] - name = "libc" -version = "0.2.43" +version = "0.2.44" authors = ["The Rust Project Developers"] license = "MIT OR Apache-2.0" readme = "README.md" repository = "https://github.com/rust-lang/libc" homepage = "https://github.com/rust-lang/libc" documentation = "http://doc.rust-lang.org/libc" -description = """ -A library for types and bindings to native C functions often found in libc or -other common platform libraries. -""" +keywords = ["libc", "ffi", "bindings", "operating", "system" ] +categories = ["external-ffi-bindings", "no-std", "os"] build = "build.rs" exclude = ["/ci/*", "/.travis.yml", "/appveyor.yml"] +description = """ +Raw FFI bindings to platform libraries like libc. +""" [badges] travis-ci = { repository = "rust-lang/libc" } appveyor = { repository = "rust-lang/libc", project_name = "rust-lang-libs/libc" } +[dependencies] +rustc-std-workspace-core = { version = "1.0.0", optional = true } + [features] default = ["use_std"] use_std = [] align = [] +rustc-dep-of-std = ['align', 'rustc-std-workspace-core'] [workspace] members = ["libc-test"] @@ -1,7 +1,7 @@ libc ==== -Rust wrapper over the system's `libc`. +Raw FFI bindings to platform libraries like `libc`. [![Build Status](https://travis-ci.org/rust-lang/libc.svg?branch=master)](https://travis-ci.org/rust-lang/libc) [![Build status](https://ci.appveyor.com/api/projects/status/github/rust-lang/libc?svg=true)](https://ci.appveyor.com/project/rust-lang-libs/libc) diff --git a/libc-test/build.rs b/libc-test/build.rs index 9afb6240e0..66cef4a2d2 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -449,7 +449,7 @@ fn main() { // which is absent in glibc, has to be defined. "__timeval" if linux => true, - // Fixed on stdbuild with repr(packed(4)) + // Fixed on feature=align with repr(packed(4)) // Once repr_packed stabilizes we can fix this unconditionally // and remove this check. "kevent" | "shmid_ds" if apple && x86_64 => true, diff --git a/src/lib.rs b/src/lib.rs index 54f67895a6..03e78041ab 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -150,22 +150,25 @@ ) )] // Attributes needed when building as part of the standard library -#![cfg_attr(feature = "stdbuild", feature(staged_api, cfg_target_vendor))] -#![cfg_attr(feature = "stdbuild", feature(link_cfg, repr_packed))] -#![cfg_attr(feature = "stdbuild", allow(warnings))] -#![cfg_attr( - feature = "stdbuild", - unstable( - feature = "libc", - reason = "use `libc` from crates.io", - issue = "27783" - ) -)] -#![cfg_attr(not(feature = "use_std"), no_std)] +#![cfg_attr(feature = "rustc-dep-of-std", feature(cfg_target_vendor))] +#![cfg_attr(feature = "rustc-dep-of-std", feature(link_cfg, repr_packed))] +#![cfg_attr(feature = "rustc-dep-of-std", feature(no_core))] +#![cfg_attr(feature = "rustc-dep-of-std", no_core)] +#![cfg_attr(feature = "rustc-dep-of-std", allow(warnings))] +#![cfg_attr(not(any(feature = "use_std", feature = "rustc-dep-of-std")), no_std)] #[cfg(all(not(cross_platform_docs), feature = "use_std"))] extern crate std as core; +#[cfg(feature = "rustc-dep-of-std")] +extern crate rustc_std_workspace_core as core; +#[cfg(feature = "rustc-dep-of-std")] +#[allow(unused_imports)] +use core::iter; +#[cfg(feature = "rustc-dep-of-std")] +#[allow(unused_imports)] +use core::option; + #[macro_use] mod macros; diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index ee8108de92..2dc3245a96 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -245,7 +245,7 @@ s! { pub f_reserved: [::uint32_t; 8], } - #[cfg_attr(feature = "stdbuild", repr(packed(4)))] + #[cfg_attr(feature = "rustc-dep-of-std", repr(packed(4)))] pub struct kevent { pub ident: ::uintptr_t, pub filter: ::int16_t, @@ -535,7 +535,7 @@ s! { pub _key: ::key_t, } - #[cfg_attr(feature = "stdbuild", repr(packed(4)))] + #[cfg_attr(feature = "rustc-dep-of-std", repr(packed(4)))] pub struct shmid_ds { pub shm_perm: ipc_perm, pub shm_segsz: ::size_t, @@ -772,6 +772,7 @@ pub const MAP_SHARED: ::c_int = 0x0001; pub const MAP_PRIVATE: ::c_int = 0x0002; pub const MAP_FIXED: ::c_int = 0x0010; pub const MAP_ANON: ::c_int = 0x1000; +pub const MAP_ANONYMOUS: ::c_int = MAP_ANON; pub const VM_FLAGS_FIXED: ::c_int = 0x0000; pub const VM_FLAGS_ANYWHERE: ::c_int = 0x0001; diff --git a/src/unix/mod.rs b/src/unix/mod.rs index cfbb1e7fa8..ff9e1954bb 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -318,17 +318,18 @@ cfg_if! { // cargo build, don't pull in anything extra as the libstd dep // already pulls in all libs. } else if #[cfg(target_env = "musl")] { - #[cfg_attr(feature = "stdbuild", + #[cfg_attr(feature = "rustc-dep-of-std", link(name = "c", kind = "static", cfg(target_feature = "crt-static")))] - #[cfg_attr(feature = "stdbuild", + #[cfg_attr(feature = "rustc-dep-of-std", link(name = "c", cfg(not(target_feature = "crt-static"))))] extern {} } else if #[cfg(target_os = "emscripten")] { #[link(name = "c")] extern {} } else if #[cfg(all(target_os = "netbsd", - feature = "stdbuild", target_vendor = "rumprun"))] { + feature = "rustc-dep-of-std", + target_vendor = "rumprun"))] { // Since we don't use -nodefaultlibs on Rumprun, libc is always pulled // in automatically by the linker. We avoid passing it explicitly, as it // causes some versions of binutils to crash with an assertion failure. diff --git a/src/windows/mod.rs b/src/windows/mod.rs index 79ef49109b..f46eb362d8 100644 --- a/src/windows/mod.rs +++ b/src/windows/mod.rs @@ -178,7 +178,7 @@ pub const EILSEQ: ::c_int = 42; pub const STRUNCATE: ::c_int = 80; // inline comment below appeases style checker -#[cfg(all(target_env = "msvc", feature = "stdbuild"))] // " if " +#[cfg(all(target_env = "msvc", feature = "rustc-dep-of-std"))] // " if " #[link(name = "msvcrt", cfg(not(target_feature = "crt-static")))] #[link(name = "libcmt", cfg(target_feature = "crt-static"))] extern {} |