diff --git a/ci/docker/i686-unknown-linux-gnu/Dockerfile b/ci/docker/i686-unknown-linux-gnu/Dockerfile index 6cdc1942c50c7..31d854fb70d7f 100644 --- a/ci/docker/i686-unknown-linux-gnu/Dockerfile +++ b/ci/docker/i686-unknown-linux-gnu/Dockerfile @@ -1,4 +1,5 @@ -FROM ubuntu:23.10 +#FROM ubuntu:23.10 +FROM ubuntu:24.04 RUN apt-get update RUN apt-get install -y --no-install-recommends \ gcc-multilib libc6-dev ca-certificates diff --git a/ci/docker/x86_64-unknown-linux-gnu/Dockerfile b/ci/docker/x86_64-unknown-linux-gnu/Dockerfile index aa5d5e043f9b1..2d6908fcb57a8 100644 --- a/ci/docker/x86_64-unknown-linux-gnu/Dockerfile +++ b/ci/docker/x86_64-unknown-linux-gnu/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:23.10 +FROM ubuntu:24.04 RUN apt-get update RUN apt-get install -y --no-install-recommends \ gcc libc6-dev ca-certificates linux-headers-generic diff --git a/libc-test/build.rs b/libc-test/build.rs index 0746d3d607007..e4db527e9dda0 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -3227,7 +3227,7 @@ fn test_neutrino(target: &str) { false // keep me for smaller diffs when something is added above }); - cfg.skip_static(move |name| (name == "__dso_handle")); + cfg.skip_static(move |name| name == "__dso_handle"); cfg.generate("../src/lib.rs", "main.rs"); } diff --git a/src/macros.rs b/src/macros.rs index beb80024dbfa3..017c057299b52 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -191,7 +191,7 @@ cfg_if! { })*) => ($( #[inline] $(#[$attr])* - pub $($constness)* unsafe extern fn $i($($arg: $argty),* + pub $($constness)* unsafe extern "C" fn $i($($arg: $argty),* ) -> $ret { $($body);* } @@ -206,7 +206,7 @@ cfg_if! { })*) => ($( #[inline] $(#[$attr])* - pub $($constness)* extern fn $i($($arg: $argty),* + pub $($constness)* extern "C" fn $i($($arg: $argty),* ) -> $ret { $($body);* } @@ -237,7 +237,7 @@ cfg_if! { })*) => ($( #[inline] $(#[$attr])* - pub unsafe extern fn $i($($arg: $argty),* + pub unsafe extern "C" fn $i($($arg: $argty),* ) -> $ret { $($body);* } @@ -252,7 +252,7 @@ cfg_if! { })*) => ($( #[inline] $(#[$attr])* - pub extern fn $i($($arg: $argty),* + pub extern "C" fn $i($($arg: $argty),* ) -> $ret { $($body);* } diff --git a/src/unix/bsd/apple/b64/x86_64/mod.rs b/src/unix/bsd/apple/b64/x86_64/mod.rs index 653650c26289f..dc5c2dde64e0b 100644 --- a/src/unix/bsd/apple/b64/x86_64/mod.rs +++ b/src/unix/bsd/apple/b64/x86_64/mod.rs @@ -1,3 +1,5 @@ +#![allow(unpredictable_function_pointer_comparisons)] + pub type boolean_t = ::c_uint; pub type mcontext_t = *mut __darwin_mcontext64; diff --git a/src/unix/linux_like/linux/gnu/b32/arm/mod.rs b/src/unix/linux_like/linux/gnu/b32/arm/mod.rs index 89c93aba8818e..ba4abb76f7a46 100644 --- a/src/unix/linux_like/linux/gnu/b32/arm/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/arm/mod.rs @@ -6,7 +6,7 @@ s! { pub sa_sigaction: ::sighandler_t, pub sa_mask: ::sigset_t, pub sa_flags: ::c_int, - pub sa_restorer: ::Option, + pub sa_restorer: ::Option, } pub struct statfs { diff --git a/src/unix/linux_like/linux/gnu/b32/csky/mod.rs b/src/unix/linux_like/linux/gnu/b32/csky/mod.rs index 5e92e30073bee..d9f6c9cc75159 100644 --- a/src/unix/linux_like/linux/gnu/b32/csky/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/csky/mod.rs @@ -6,7 +6,7 @@ s! { pub sa_sigaction: ::sighandler_t, pub sa_mask: ::sigset_t, pub sa_flags: ::c_int, - pub sa_restorer: ::Option, + pub sa_restorer: ::Option, } pub struct statfs { diff --git a/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs b/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs index 8ca7d3d214094..8ad5780b3ecd4 100644 --- a/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs @@ -6,7 +6,7 @@ s! { pub sa_sigaction: ::sighandler_t, pub sa_mask: ::sigset_t, pub sa_flags: ::c_int, - pub sa_restorer: ::Option, + pub sa_restorer: ::Option, } pub struct statfs { diff --git a/src/unix/linux_like/linux/gnu/b32/mips/mod.rs b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs index fa2707500dbe4..cbb8e874d7eeb 100644 --- a/src/unix/linux_like/linux/gnu/b32/mips/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs @@ -75,7 +75,7 @@ s! { pub sa_flags: ::c_int, pub sa_sigaction: ::sighandler_t, pub sa_mask: ::sigset_t, - pub sa_restorer: ::Option, + pub sa_restorer: ::Option, _resv: [::c_int; 1], } diff --git a/src/unix/linux_like/linux/gnu/b32/mod.rs b/src/unix/linux_like/linux/gnu/b32/mod.rs index d5b11347eb8b7..0d7ef19fc0f2f 100644 --- a/src/unix/linux_like/linux/gnu/b32/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mod.rs @@ -1,4 +1,5 @@ //! 32-bit specific definitions for linux-like values +#![allow(unpredictable_function_pointer_comparisons)] use pthread_mutex_t; diff --git a/src/unix/linux_like/linux/gnu/b32/powerpc.rs b/src/unix/linux_like/linux/gnu/b32/powerpc.rs index dd5732e0dcc14..4b803debda909 100644 --- a/src/unix/linux_like/linux/gnu/b32/powerpc.rs +++ b/src/unix/linux_like/linux/gnu/b32/powerpc.rs @@ -6,7 +6,7 @@ s! { pub sa_sigaction: ::sighandler_t, pub sa_mask: ::sigset_t, pub sa_flags: ::c_int, - pub sa_restorer: ::Option, + pub sa_restorer: ::Option, } pub struct statfs { diff --git a/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs b/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs index da9cf29c48668..f029624078b9e 100644 --- a/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs @@ -8,7 +8,7 @@ s! { pub sa_sigaction: ::sighandler_t, pub sa_mask: ::sigset_t, pub sa_flags: ::c_int, - pub sa_restorer: ::Option, + pub sa_restorer: ::Option, } pub struct statfs { diff --git a/src/unix/linux_like/linux/gnu/b32/x86/mod.rs b/src/unix/linux_like/linux/gnu/b32/x86/mod.rs index 27f477bb48f85..d3d2d803af1f0 100644 --- a/src/unix/linux_like/linux/gnu/b32/x86/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/x86/mod.rs @@ -7,7 +7,7 @@ s! { pub sa_sigaction: ::sighandler_t, pub sa_mask: ::sigset_t, pub sa_flags: ::c_int, - pub sa_restorer: ::Option, + pub sa_restorer: ::Option, } pub struct statfs { diff --git a/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs b/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs index 284a1788f4409..619fdef1a841d 100644 --- a/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs @@ -15,7 +15,7 @@ s! { #[cfg(target_arch = "sparc64")] __reserved0: ::c_int, pub sa_flags: ::c_int, - pub sa_restorer: ::Option, + pub sa_restorer: ::Option, } pub struct statfs { diff --git a/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs b/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs index ac3f88905f38e..b2d95c5a391a1 100644 --- a/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs @@ -140,7 +140,7 @@ s! { pub sa_sigaction: ::sighandler_t, pub sa_mask: ::sigset_t, pub sa_flags: ::c_int, - pub sa_restorer: ::Option, + pub sa_restorer: ::Option, } pub struct stack_t { diff --git a/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs b/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs index f7b52be805cab..74d2f315223df 100644 --- a/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs @@ -142,7 +142,7 @@ s! { pub sa_flags: ::c_int, pub sa_sigaction: ::sighandler_t, pub sa_mask: ::sigset_t, - pub sa_restorer: ::Option, + pub sa_restorer: ::Option, } pub struct stack_t { diff --git a/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs b/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs index 3088c25a2646f..a521f2457fcd1 100644 --- a/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs @@ -19,7 +19,7 @@ s! { #[cfg(target_arch = "sparc64")] __reserved0: ::c_int, pub sa_flags: ::c_int, - pub sa_restorer: ::Option, + pub sa_restorer: ::Option, } pub struct statfs { diff --git a/src/unix/linux_like/linux/gnu/b64/s390x.rs b/src/unix/linux_like/linux/gnu/b64/s390x.rs index 61ee2dcc9b50a..3b99326ef0764 100644 --- a/src/unix/linux_like/linux/gnu/b64/s390x.rs +++ b/src/unix/linux_like/linux/gnu/b64/s390x.rs @@ -18,7 +18,7 @@ s! { pub sa_sigaction: ::sighandler_t, __glibc_reserved0: ::c_int, pub sa_flags: ::c_int, - pub sa_restorer: ::Option, + pub sa_restorer: ::Option, pub sa_mask: ::sigset_t, } diff --git a/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs b/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs index de2f0d6e470f6..f6b0b90a5b9e6 100644 --- a/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs @@ -19,7 +19,7 @@ s! { #[cfg(target_arch = "sparc64")] __reserved0: ::c_int, pub sa_flags: ::c_int, - pub sa_restorer: ::Option, + pub sa_restorer: ::Option, } pub struct statfs { diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs index 609c74429c5bc..6d9d0c9460720 100644 --- a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs @@ -1,4 +1,5 @@ //! x86_64-specific definitions for 64-bit linux-like values +#![allow(unpredictable_function_pointer_comparisons)] pub type c_char = i8; pub type wchar_t = i32; @@ -16,7 +17,7 @@ s! { #[cfg(target_arch = "sparc64")] __reserved0: ::c_int, pub sa_flags: ::c_int, - pub sa_restorer: ::Option, + pub sa_restorer: ::Option, } pub struct statfs { diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index d6e5eb69c7fbb..d4194479154b0 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -400,6 +400,7 @@ s! { pub chunk_size: ::__u32, pub headroom: ::__u32, pub flags: ::__u32, + pub tx_metadata_len: ::__u32, } pub struct xdp_umem_reg_v1 { diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index 699c8181f8466..963be56425210 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -145,7 +145,7 @@ s! { pub sa_sigaction: ::sighandler_t, pub sa_mask: ::sigset_t, pub sa_flags: ::c_int, - pub sa_restorer: ::Option, + pub sa_restorer: ::Option, } pub struct statvfs { diff --git a/src/unix/linux_like/linux/uclibc/arm/mod.rs b/src/unix/linux_like/linux/uclibc/arm/mod.rs index cff82f005acee..13008639b8f80 100644 --- a/src/unix/linux_like/linux/uclibc/arm/mod.rs +++ b/src/unix/linux_like/linux/uclibc/arm/mod.rs @@ -167,7 +167,7 @@ s! { pub struct sigaction { pub sa_sigaction: ::sighandler_t, pub sa_flags: ::c_ulong, - pub sa_restorer: ::Option, + pub sa_restorer: ::Option, pub sa_mask: sigset_t, } diff --git a/src/unix/linux_like/linux/uclibc/x86_64/mod.rs b/src/unix/linux_like/linux/uclibc/x86_64/mod.rs index 390119e3b5091..1b731a82e679a 100644 --- a/src/unix/linux_like/linux/uclibc/x86_64/mod.rs +++ b/src/unix/linux_like/linux/uclibc/x86_64/mod.rs @@ -146,7 +146,7 @@ s! { pub struct sigaction { pub sa_handler: ::sighandler_t, pub sa_flags: ::c_ulong, - pub sa_restorer: ::Option, + pub sa_restorer: ::Option, pub sa_mask: ::sigset_t, } diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 26a4029d94f87..586ee565e6a4d 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -346,17 +346,17 @@ cfg_if! { #[link(name = "m", cfg(not(target_feature = "crt-static")))] #[link(name = "dl", cfg(not(target_feature = "crt-static")))] #[link(name = "c", cfg(not(target_feature = "crt-static")))] - extern {} + extern "C" {} } else if #[cfg(any(target_env = "musl", target_env = "ohos"))] { #[cfg_attr(feature = "rustc-dep-of-std", link(name = "c", kind = "static", modifiers = "-bundle", cfg(target_feature = "crt-static")))] #[cfg_attr(feature = "rustc-dep-of-std", link(name = "c", cfg(not(target_feature = "crt-static"))))] - extern {} + extern "C" {} } else if #[cfg(target_os = "emscripten")] { #[link(name = "c")] - extern {} + extern "C" {} } else if #[cfg(all(target_os = "android", feature = "rustc-dep-of-std"))] { #[link(name = "c", kind = "static", modifiers = "-bundle", cfg(target_feature = "crt-static"))] @@ -364,7 +364,7 @@ cfg_if! { cfg(target_feature = "crt-static"))] #[link(name = "m", cfg(not(target_feature = "crt-static")))] #[link(name = "c", cfg(not(target_feature = "crt-static")))] - extern {} + extern "C" {} } else if #[cfg(any(target_os = "macos", target_os = "ios", target_os = "tvos", @@ -376,38 +376,38 @@ cfg_if! { ))] { #[link(name = "c")] #[link(name = "m")] - extern {} + extern "C" {} } else if #[cfg(target_os = "haiku")] { #[link(name = "root")] #[link(name = "network")] - extern {} + extern "C" {} } else if #[cfg(target_env = "newlib")] { #[link(name = "c")] #[link(name = "m")] - extern {} + extern "C" {} } else if #[cfg(target_env = "illumos")] { #[link(name = "c")] #[link(name = "m")] - extern {} + extern "C" {} } else if #[cfg(target_os = "redox")] { #[cfg_attr(feature = "rustc-dep-of-std", link(name = "c", kind = "static", modifiers = "-bundle", cfg(target_feature = "crt-static")))] #[cfg_attr(feature = "rustc-dep-of-std", link(name = "c", cfg(not(target_feature = "crt-static"))))] - extern {} + extern "C" {} } else if #[cfg(target_os = "aix")] { #[link(name = "c")] #[link(name = "m")] #[link(name = "bsd")] #[link(name = "pthread")] - extern {} + extern "C" {} } else { #[link(name = "c")] #[link(name = "m")] #[link(name = "rt")] #[link(name = "pthread")] - extern {} + extern "C" {} } } @@ -1444,7 +1444,7 @@ cfg_if! { cfg_if! { if #[cfg(not(target_os = "redox"))] { - extern { + extern "C" { pub fn getsid(pid: pid_t) -> pid_t; #[cfg_attr(all(target_os = "macos", target_arch = "x86"), link_name = "pause$UNIX2003")] @@ -1483,7 +1483,7 @@ cfg_if! { cfg_if! { if #[cfg(target_os = "nto")] { - extern { + extern "C" { pub fn readlinkat(dirfd: ::c_int, pathname: *const ::c_char, buf: *mut ::c_char, @@ -1504,7 +1504,7 @@ cfg_if! { ) -> ::c_int; } } else { - extern { + extern "C" { pub fn readlinkat(dirfd: ::c_int, pathname: *const ::c_char, buf: *mut ::c_char, @@ -1545,7 +1545,7 @@ cfg_if! { target_os = "illumos", target_os = "nto", )))] { - extern { + extern "C" { pub fn cfmakeraw(termios: *mut ::termios); pub fn cfsetspeed(termios: *mut ::termios, speed: ::speed_t) -> ::c_int;