Now that these exist in core, there isn't any reason to duplicate the definitions here. For 1.0 we should remove the types from libc in favor of using core::ffi.
Ideally we would also make a change in 0.2 to reexport the types rather than redefining them. We can't do this yet because our MSRV is 1.63 and core::ffi::c_char is not available until 1.64. However even once the MSRV upgrade happens, we need to be a bit careful; Rust 1.85 (rust-lang/rust#132975) and libc 0.2.169 corrected the signedness of c_char on a number of platforms which was accepted minor breakage. If we switch to reexporting then we break things a second time for new libc with older Rust.
Now that these exist in
core, there isn't any reason to duplicate the definitions here. For 1.0 we should remove the types fromlibcin favor of usingcore::ffi.Ideally we would also make a change in 0.2 to reexport the types rather than redefining them. We can't do this yet because our MSRV is 1.63 and
core::ffi::c_charis not available until 1.64. However even once the MSRV upgrade happens, we need to be a bit careful; Rust 1.85 (rust-lang/rust#132975) and libc 0.2.169 corrected the signedness ofc_charon a number of platforms which was accepted minor breakage. If we switch to reexporting then we break things a second time for new libc with older Rust.