diff --git a/libc-test/build.rs b/libc-test/build.rs index 76dea8e77c1a7..2a27434bab8fd 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -4064,8 +4064,7 @@ fn test_linux(target: &str) { "epoll_params" => true, // FIXME(linux): Requires >= 6.12 kernel headers. - "dmabuf_cmsg" | - "dmabuf_token" => true, + "dmabuf_cmsg" | "dmabuf_token" => true, _ => false, } diff --git a/src/fuchsia/mod.rs b/src/fuchsia/mod.rs index 012c34c9959b6..1f247e3a8979a 100644 --- a/src/fuchsia/mod.rs +++ b/src/fuchsia/mod.rs @@ -3616,7 +3616,7 @@ extern "C" { pub fn abort() -> !; pub fn exit(status: c_int) -> !; pub fn _exit(status: c_int) -> !; - pub fn atexit(cb: extern "C" fn()) -> c_int; + pub fn atexit(cb: unsafe extern "C" fn()) -> c_int; pub fn system(s: *const c_char) -> c_int; pub fn getenv(s: *const c_char) -> *mut c_char; @@ -4317,7 +4317,7 @@ extern "C" { abstime: *const crate::timespec, ) -> c_int; pub fn clone( - cb: extern "C" fn(*mut c_void) -> c_int, + cb: unsafe extern "C" fn(*mut c_void) -> c_int, child_stack: *mut c_void, flags: c_int, arg: *mut c_void, diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index 8fb5f945cd6b6..2ac866e87cb36 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -3887,7 +3887,7 @@ extern "C" { pub fn pthread_spin_trylock(lock: *mut crate::pthread_spinlock_t) -> c_int; pub fn pthread_spin_unlock(lock: *mut crate::pthread_spinlock_t) -> c_int; pub fn clone( - cb: extern "C" fn(*mut c_void) -> c_int, + cb: unsafe extern "C" fn(*mut c_void) -> c_int, child_stack: *mut c_void, flags: c_int, arg: *mut c_void, diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index fdc17e3daf43a..6290553538ac8 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -6573,7 +6573,7 @@ extern "C" { pub fn pthread_spin_trylock(lock: *mut crate::pthread_spinlock_t) -> c_int; pub fn pthread_spin_unlock(lock: *mut crate::pthread_spinlock_t) -> c_int; pub fn clone( - cb: extern "C" fn(*mut c_void) -> c_int, + cb: unsafe extern "C" fn(*mut c_void) -> c_int, child_stack: *mut c_void, flags: c_int, arg: *mut c_void, diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 2db79f5ac00cb..72276a0ef7871 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -1671,7 +1671,7 @@ cfg_if! { ) -> ssize_t; pub fn fmemopen(buf: *mut c_void, size: size_t, mode: *const c_char) -> *mut FILE; pub fn open_memstream(ptr: *mut *mut c_char, sizeloc: *mut size_t) -> *mut FILE; - pub fn atexit(cb: extern "C" fn()) -> c_int; + pub fn atexit(cb: unsafe extern "C" fn()) -> c_int; #[cfg_attr(target_os = "netbsd", link_name = "__sigaction14")] pub fn sigaction(signum: c_int, act: *const sigaction, oldact: *mut sigaction) -> c_int; diff --git a/src/unix/nto/mod.rs b/src/unix/nto/mod.rs index f071750cd1ccb..6574fcd259f14 100644 --- a/src/unix/nto/mod.rs +++ b/src/unix/nto/mod.rs @@ -3418,10 +3418,14 @@ extern "C" { // Models the implementation in stdlib.h. Ctest will fail if trying to use the // default symbol from libc -pub unsafe fn atexit(cb: extern "C" fn()) -> c_int { +pub unsafe fn atexit(cb: unsafe extern "C" fn()) -> c_int { extern "C" { static __dso_handle: *mut c_void; - pub fn __cxa_atexit(cb: extern "C" fn(), __arg: *mut c_void, __dso: *mut c_void) -> c_int; + pub fn __cxa_atexit( + cb: unsafe extern "C" fn(), + __arg: *mut c_void, + __dso: *mut c_void, + ) -> c_int; } __cxa_atexit(cb, 0 as *mut c_void, __dso_handle) } diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index bef014eccb010..eb893e302f91b 100644 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -1197,7 +1197,7 @@ extern "C" { pub fn free(p: *mut c_void); pub fn abort() -> !; pub fn exit(status: c_int) -> !; - pub fn atexit(cb: extern "C" fn()) -> c_int; + pub fn atexit(cb: unsafe extern "C" fn()) -> c_int; pub fn system(s: *const c_char) -> c_int; pub fn getenv(s: *const c_char) -> *mut c_char; diff --git a/src/windows/mod.rs b/src/windows/mod.rs index 9161b32ca0ce6..7f598fb9b4f1f 100644 --- a/src/windows/mod.rs +++ b/src/windows/mod.rs @@ -334,7 +334,7 @@ extern "C" { pub fn abort() -> !; pub fn exit(status: c_int) -> !; pub fn _exit(status: c_int) -> !; - pub fn atexit(cb: extern "C" fn()) -> c_int; + pub fn atexit(cb: unsafe extern "C" fn()) -> c_int; pub fn system(s: *const c_char) -> c_int; pub fn getenv(s: *const c_char) -> *mut c_char;