| 51340584 | 15-Jun-2025 |
Trevor Gross <[email protected]> |
Allow new `unpredictable_function_pointer_comparisons` lints
These appeared in a recent nightly from our `PartialEq` derives. Add `allow`s where needed to suppress them, since removing the derive wo
Allow new `unpredictable_function_pointer_comparisons` lints
These appeared in a recent nightly from our `PartialEq` derives. Add `allow`s where needed to suppress them, since removing the derive would be breaking.
(backport <https://github.com/rust-lang/libc/pull/4489>) [ applied to PSP as well - Trevor ] (cherry picked from commit e6378105c41a6bf525bd6a746db11e0c52ce172e)
show more ...
|
| c04c92ed | 02-Jun-2025 |
Trevor Gross <[email protected]> |
Replace handwritten `Debug` impls with derives
`s_no_extra_traits!` doesn't derive `Debug` so there are a lot of handwritten implementations. However, since we have a derive-like solution for unions
Replace handwritten `Debug` impls with derives
`s_no_extra_traits!` doesn't derive `Debug` so there are a lot of handwritten implementations. However, since we have a derive-like solution for unions now (printing them like an opaque struct), there really isn't any reason these can't all be derived.
Add `derive(Debug)` to `s_no_extra_traits`, still gated behind `feature = "extra_traits"`, which allows getting rid of manual implementations.
(backport <https://github.com/rust-lang/libc/pull/4471>) (cherry picked from commit 65c39bf1b0c7b904cf512280860120307d17703b)
show more ...
|
| f4619be1 | 25-Mar-2025 |
Ola x Nilsson <[email protected]> |
gnu: Adapt struct stat64 for gnu_time_bits64
References:
ARM: https://github.com/bminor/glibc/blob/77930e0447e0b37a129db0e13c6c6f5e60a3019e/sysdeps/unix/sysv/linux/arm/bits/struct_stat.h
MIPS: htt
gnu: Adapt struct stat64 for gnu_time_bits64
References:
ARM: https://github.com/bminor/glibc/blob/77930e0447e0b37a129db0e13c6c6f5e60a3019e/sysdeps/unix/sysv/linux/arm/bits/struct_stat.h
MIPS: https://github.com/bminor/glibc/blob/77930e0447e0b37a129db0e13c6c6f5e60a3019e/sysdeps/unix/sysv/linux/mips/bits/struct_stat.h
POWERPC: https://github.com/bminor/glibc/blob/77930e0447e0b37a129db0e13c6c6f5e60a3019e/sysdeps/unix/sysv/linux/powerpc/bits/struct_stat.h
SPARC: https://github.com/bminor/glibc/blob/77930e0447e0b37a129db0e13c6c6f5e60a3019e/sysdeps/unix/sysv/linux/sparc/bits/struct_stat.h
x86: https://github.com/bminor/glibc/blob/77930e0447e0b37a129db0e13c6c6f5e60a3019e/sysdeps/unix/sysv/linux/x86/bits/struct_stat.h
Common definition for _TIME_BITS=64 https://github.com/bminor/glibc/blob/77930e0447e0b37a129db0e13c6c6f5e60a3019e/sysdeps/unix/sysv/linux/bits/struct_stat_time64_helper.h
(backport <https://github.com/rust-lang/libc/pull/4433>) (cherry picked from commit 402a8513eb44dc5cd413cf105d59be0d0bd50b55)
show more ...
|
| 85f205b5 | 27-Mar-2023 |
Ola x Nilsson <[email protected]> |
gnu: Update struct msqid_ds for 64-bit time
References:
Common definition for _TIME_BITS=64 https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/sysdeps/unix/sysv/linux/bit
gnu: Update struct msqid_ds for 64-bit time
References:
Common definition for _TIME_BITS=64 https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/sysdeps/unix/sysv/linux/bits/types/struct_msqid64_ds_helper.h
Generic implementation used by x86 and arm: https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/sysdeps/unix/sysv/linux/bits/types/struct_msqid_ds.h
PowerPC: https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/sysdeps/unix/sysv/linux/powerpc/bits/types/struct_msqid_ds.h
MIPS: https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/sysdeps/unix/sysv/linux/mips/bits/types/struct_msqid_ds.h
SPARC: https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/sysdeps/unix/sysv/linux/sparc/bits/types/struct_msqid_ds.h
(backport <https://github.com/rust-lang/libc/pull/4433>) (cherry picked from commit bb5a84a4dabe325c5a24fd0cfa04f63e91cdb0fe)
show more ...
|
| e2f0562e | 20-Mar-2023 |
Ola x Nilsson <[email protected]> |
gnu: Update struct shmid_ds for 64-bit time
References:
Common definition for _TIME_BITS=64 https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/sysdeps/unix/sysv/linux/bit
gnu: Update struct shmid_ds for 64-bit time
References:
Common definition for _TIME_BITS=64 https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/sysdeps/unix/sysv/linux/bits/types/struct_shmid64_ds_helper.h
Generic implementation used by x86 and arm: https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/sysdeps/unix/sysv/linux/bits/types/struct_shmid_ds.h
PowerPC: https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/sysdeps/unix/sysv/linux/powerpc/bits/types/struct_shmid_ds.h
MIPS: (no changes required) https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/sysdeps/unix/sysv/linux/mips/bits/types/struct_shmid_ds.h
SPARC: https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/sysdeps/unix/sysv/linux/sparc/bits/types/struct_shmid_ds.h
(backport <https://github.com/rust-lang/libc/pull/4433>) (cherry picked from commit 831b6269787ed0f226859352fdde1befaa249d03)
show more ...
|
| 0789132d | 18-Mar-2025 |
Ola x Nilsson <[email protected]> |
gnu: Adapt stat64 for gnu_file_offset_bits64
(backport <https://github.com/rust-lang/libc/pull/4345>) (cherry picked from commit 96e81e718d4ca91f29353b362d9b5e93c176663f) |
| c2501a64 | 20-Mar-2023 |
Ola x Nilsson <[email protected]> |
gnu: Update F_GETLK for gnu_file_offset_bits64
gnu_file_offset_bits64 means _FILE_OFFSET_BITS=64.
(backport <https://github.com/rust-lang/libc/pull/4345>) (cherry picked from commit 862ba8aa2f22099
gnu: Update F_GETLK for gnu_file_offset_bits64
gnu_file_offset_bits64 means _FILE_OFFSET_BITS=64.
(backport <https://github.com/rust-lang/libc/pull/4345>) (cherry picked from commit 862ba8aa2f22099b4411547ec1884232c5b02ae2)
show more ...
|
| fa16c8e3 | 06-Mar-2025 |
Koutheir Attouchi <[email protected]> |
Make msqid_ds.__msg_cbytes public.
(backport <https://github.com/rust-lang/libc/pull/4301>) (cherry picked from commit a4fd45edc8e9807fc0e7f5e5ac737e1cf3f2b7a6) |
| 8448147a | 18-Dec-2024 |
Taiki Endo <[email protected]> |
Define c_char at top-level and remove per-target c_char definitions
(backport <https://github.com/rust-lang/libc/pull/4202>) (cherry picked from commit 0a02b941cf105dc4d4c5b5bd1ddc7bb546ad89c9) |
| 108310db | 27-Nov-2024 |
Trevor Gross <[email protected]> |
Make use of the crate's prelude to replace individual imports
Automatically apply changes with the following:
#!/bin/bash
set -eux
files=()
# Types either defined in this crate o
Make use of the crate's prelude to replace individual imports
Automatically apply changes with the following:
#!/bin/bash
set -eux
files=()
# Types either defined in this crate or in `core` prelude_types=( c_char c_double c_float c_int c_longlong c_long c_short c_uchar c_uint c_ulonglong c_ulong c_ushort c_void intptr_t size_t ssize_t Clone Copy Option Send Sync )
# Reexports from core prelude_modules=( fmt hash iter mem )
# Everything in the prelude prelude=( "${prelude_types[@]}" "${prelude_modules[@]}" )
# Generate a list of all files excluding `lib.rs` (since the prelude being # defined there makes string matching weird). while IFS= read -r -d '' file; do files+=("$file") done < <(find src -name '*.rs' -not -name '*lib.rs' -not -name '*macros.rs' -not -name 'fixed_width_ints.rs' -print0)
for file in "${files[@]}"; do needs_prelude=0
# If the file already has some sort of glob import, skip it if rg --pcre2 -q 'use (crate|super)::(?!prelude).*\*' "$file"; then continue fi
# Core types always require the prelude to handle rustc-dep-of-std if rg --pcre2 -q '\b(?<!\.)(Option|Clone|Copy|Send|Sync|fmt|hash|iter|mem)\b' "$file"; then needs_prelude=1 fi
# If we use any types that are specified in the prelude then we will import it for ty in "${prelude[@]}"; do # If the type is defined in the current module, we don't need it from the prelude if rg -q "type $ty =" "$file"; then continue fi
if rg -qU '((crate|super)::'"$ty"'|use (crate|super)::(\{\n){0,2}.*'"$ty)" "$file"; then needs_prelude=1 fi done
# Check if the prelude is needed and does not already exist; if so, add it if [ "$needs_prelude" = "1" ] && ! rg -q 'use crate::prelude::\*' "$file"; then # Split the file into two parts: module-level attributes and rest # Imports will be added after module-level attributes
attrs=$(awk '/^#!|^\/\/!/ {found=NR} {lines[NR]=$0} END {for (i=1; i<=found; i++) print lines[i]}' "$file") rest=$(awk '/^#!|^\/\/!/ {found=NR} END {if (found) {for (i=found+1; i<=NR; i++) print lines[i]} else {for (i=1; i<=NR; i++) print lines[i]}} {lines[NR]=$0}' "$file")
printf "%s\n" "$attrs" > "$file" printf "\n%s\n\n" "use crate::prelude::*;" >> "$file" printf "%s" "$rest" >> "$file" fi
for ty in "${prelude[@]}"; do export TY="$ty" # env for perl to use
# Remove simple imports `use crate::ty;` perl -pi -0777 -e 's/use ((crate|super)::)?($ENV{TY});//g' "$file"
# Remove the type if it is part of a group import perl -pi -0777 -e 's/(use (crate|super)::\{?(.*|(\n.*){0,2}))\b$ENV{TY}\b,? ?/$1/g' "$file"
# Replace pathed `crate::ty` perl -pi -0777 -e 's/(crate|super)::($ENV{TY})\b/$2/g' "$file" done
# For some reason, rustfmt doesn't trim leading newlines. Do so manually here. perl -pi -0777 -e 's/\A\n+//' "$file"
rustfmt "$file" done
./ci/style.sh
(backport <https://github.com/rust-lang/libc/pull/4161>) (cherry picked from commit f8a018a8e3efaf8cc4fbad84974255b0fa899fc2)
Applied by rerunning the script rather than resolving conflicts manually.
show more ...
|
| 643182f7 | 26-Nov-2024 |
Eduardo Sánchez Muñoz <[email protected]> |
Automatic migration to Rust edition 2021
Migration script:
```sh set -ex
git restore Cargo.toml src
for file in $(find src -name "*.rs"); do perl -pi -077 -e 's/(?<!\w)::(Option|Copy|Clone)\b/$
Automatic migration to Rust edition 2021
Migration script:
```sh set -ex
git restore Cargo.toml src
for file in $(find src -name "*.rs"); do perl -pi -077 -e 's/(?<!\w)::(Option|Copy|Clone)\b/$1/g' "$file" done
implicit_c_long_ulong_char=( src/fuchsia/mod.rs src/solid/mod.rs src/unix/aix/mod.rs src/unix/bsd/apple/mod.rs src/unix/bsd/freebsdlike/freebsd/mod.rs src/unix/bsd/freebsdlike/mod.rs src/unix/bsd/netbsdlike/netbsd/mod.rs src/unix/bsd/netbsdlike/openbsd/mod.rs src/unix/bsd/netbsdlike/mod.rs src/unix/bsd/mod.rs src/unix/haiku/mod.rs src/unix/hurd/mod.rs src/unix/linux_like/android/b32/mod.rs src/unix/linux_like/android/b64/mod.rs src/unix/linux_like/android/mod.rs src/unix/linux_like/linux/gnu/b32/mod.rs src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs src/unix/linux_like/linux/gnu/b64/mod.rs src/unix/linux_like/linux/gnu/mod.rs src/unix/linux_like/linux/musl/mod.rs src/unix/linux_like/linux/uclibc/mips/mod.rs src/unix/linux_like/linux/uclibc/mod.rs src/unix/linux_like/linux/mod.rs src/unix/linux_like/mod.rs src/unix/newlib/mod.rs src/unix/nto/mod.rs src/unix/mod.rs src/vxworks/mod.rs )
for file in "${implicit_c_long_ulong_char[@]}"; do perl -pi -077 -e 's/(?<!\w)::(c_long|c_ulong|c_char)\b/$1/g' "$file" done
implicit_off_t=( src/unix/linux_like/linux/gnu/mod.rs src/unix/linux_like/linux/mod.rs src/unix/linux_like/mod.rs src/unix/mod.rs )
for file in "${implicit_off_t[@]}"; do perl -pi -077 -e 's/(?<!\w)::(off_t)\b/$1/g' "$file" done
implicit_off64_t=( src/unix/linux_like/android/mod.rs src/unix/linux_like/mod.rs )
for file in "${implicit_off64_t[@]}"; do perl -pi -077 -e 's/(?<!\w)::(off64_t)\b/$1/g' "$file" done
implicit_Ioctl=( src/unix/linux_like/linux/mod.rs )
for file in "${implicit_Ioctl[@]}"; do perl -pi -077 -e 's/(?<!\w)::(Ioctl)\b/$1/g' "$file" done
perl -pi -077 -e 's/(?<!\w)::(__u8|__u16|__u32|__s16|__s32)\b/$1/g' src/unix/linux_like/linux/mod.rs
perl -pi -077 -e 's/(?<!\w)::(SIG[A-Z]+)\b/$1/g' src/unix/solarish/mod.rs
perl -pi -077 -e 's/(?<!\w)::c_ulong\b/crate::c_ulong/g' src/unix/newlib/generic.rs perl -pi -077 -e 's/(?<!\w)::c_ulong\b/crate::c_ulong/g' src/unix/linux_like/linux/arch/generic/mod.rs perl -pi -077 -e 's/(?<!\w)::c_ulonglong\b/crate::c_ulonglong/g' src/unix/linux_like/linux/gnu/b64/mod.rs perl -pi -077 -e 's/(?<!\w)::c_ulonglong\b/crate::c_ulonglong/g' src/unix/linux_like/linux/mod.rs perl -pi -077 -e 's/(?<!\w)::c_ulonglong\b/crate::c_ulonglong/g' src/unix/linux_like/mod.rs perl -pi -077 -e 's/(?<!\w)::c_short\b/crate::c_short/g' src/unix/linux_like/linux/gnu/b32/mod.rs perl -pi -077 -e 's/(?<!\w)::c_short\b/crate::c_short/g' src/unix/newlib/mod.rs perl -pi -077 -e 's/(?<!\w)::c_float\b/c_float/g' src/unix/linux_like/linux/gnu/b64/s390x.rs perl -pi -077 -e 's/(?<!\w)::c_float\b/c_float/g' src/unix/linux_like/linux/musl/b64/s390x.rs
function handle_type() { type="$1" uses_type="$(rg -l "[^\w]::$type\b" src || echo)" has_type_def="$(rg -l "(type|struct) $type " src || echo)" has_type_import="$(rg -l "use ([0-9a-zA-Z_]+::)*$type;" src || echo)"
add_import=($(comm -3 <(echo "$uses_type" | sort) <(printf "%s\n%s" "$has_type_def" "$has_type_import" | sort) | cut -f1)) for file in "${add_import[@]}"; do # Split the file into two parts: module-level attributes and rest # Imports will be added after module-level attributes
awk '/^#!|^\/\/!/ {found=NR} {lines[NR]=$0} END {for (i=1; i<=found; i++) print lines[i]}' \ "$file" > "$file.attrs" awk '/^#!|^\/\/!/ {found=NR} END {if (found) {for (i=found+1; i<=NR; i++) print lines[i]} else {for (i=1; i<=NR; i++) print lines[i]}} {lines[NR]=$0}' \ "$file" > "$file.rest"
cat "$file.attrs" > "$file" echo >> "$file" echo 'use crate::'"$type"';' >> "$file" echo >> "$file" cat "$file.rest" >> "$file"
rm "$file.attrs" "$file.rest" done
for file in $uses_type; do perl -pi -077 -e 's/(?<!\w)::('"$type"')\b/$1/g' "$file" done }
handle_type c_void handle_type c_int handle_type c_uint handle_type c_char handle_type c_schar handle_type c_uchar handle_type c_short handle_type c_ushort handle_type c_long handle_type c_ulong handle_type c_longlong handle_type c_ulonglong handle_type c_float handle_type c_double handle_type size_t handle_type ssize_t handle_type intptr_t handle_type ptrdiff_t handle_type off_t handle_type off64_t handle_type Ioctl handle_type cmsghdr # To avoid "line formatted, but exceeded maximum width"
targets=( aarch64-apple-darwin aarch64-apple-ios aarch64-apple-ios-macabi aarch64-apple-ios-sim aarch64-apple-tvos aarch64-apple-tvos-sim aarch64-apple-visionos aarch64-apple-visionos-sim aarch64-apple-watchos aarch64-apple-watchos-sim aarch64-kmc-solid_asp3 aarch64-linux-android aarch64-nintendo-switch-freestanding aarch64-pc-windows-gnullvm aarch64-pc-windows-msvc aarch64-unknown-freebsd aarch64-unknown-fuchsia aarch64-unknown-hermit aarch64-unknown-illumos aarch64-unknown-linux-gnu aarch64-unknown-linux-gnu_ilp32 aarch64-unknown-linux-musl aarch64-unknown-linux-ohos aarch64-unknown-netbsd aarch64-unknown-none aarch64-unknown-none-softfloat aarch64-unknown-nto-qnx700 aarch64-unknown-nto-qnx710 aarch64-unknown-openbsd aarch64-unknown-redox #aarch64-unknown-teeos aarch64-unknown-trusty aarch64-unknown-uefi aarch64-uwp-windows-msvc aarch64-wrs-vxworks aarch64_be-unknown-linux-gnu aarch64_be-unknown-linux-gnu_ilp32 aarch64_be-unknown-netbsd arm-linux-androideabi arm-unknown-linux-gnueabi arm-unknown-linux-gnueabihf arm-unknown-linux-musleabi arm-unknown-linux-musleabihf arm64_32-apple-watchos arm64e-apple-darwin arm64e-apple-ios arm64e-apple-tvos arm64ec-pc-windows-msvc armeb-unknown-linux-gnueabi armebv7r-none-eabi armebv7r-none-eabihf armv4t-none-eabi armv4t-unknown-linux-gnueabi armv5te-none-eabi armv5te-unknown-linux-gnueabi armv5te-unknown-linux-musleabi armv5te-unknown-linux-uclibceabi armv6-unknown-freebsd armv6-unknown-netbsd-eabihf armv6k-nintendo-3ds armv7-linux-androideabi armv7-rtems-eabihf armv7-sony-vita-newlibeabihf armv7-unknown-freebsd armv7-unknown-linux-gnueabi armv7-unknown-linux-gnueabihf armv7-unknown-linux-musleabi armv7-unknown-linux-musleabihf armv7-unknown-linux-ohos armv7-unknown-linux-uclibceabi armv7-unknown-linux-uclibceabihf armv7-unknown-netbsd-eabihf armv7-unknown-trusty armv7-wrs-vxworks-eabihf armv7a-kmc-solid_asp3-eabi armv7a-kmc-solid_asp3-eabihf armv7a-none-eabi armv7a-none-eabihf armv7k-apple-watchos armv7r-none-eabi armv7r-none-eabihf armv7s-apple-ios armv8r-none-eabihf #avr-unknown-gnu-atmega328 bpfeb-unknown-none bpfel-unknown-none csky-unknown-linux-gnuabiv2 csky-unknown-linux-gnuabiv2hf hexagon-unknown-linux-musl #hexagon-unknown-none-elf i386-apple-ios #i586-pc-nto-qnx700 i586-pc-windows-msvc i586-unknown-linux-gnu i586-unknown-linux-musl i586-unknown-netbsd i686-apple-darwin i686-linux-android i686-pc-windows-gnu i686-pc-windows-gnullvm i686-pc-windows-msvc i686-unknown-freebsd i686-unknown-haiku i686-unknown-hurd-gnu i686-unknown-linux-gnu i686-unknown-linux-musl i686-unknown-netbsd i686-unknown-openbsd i686-unknown-redox i686-unknown-uefi i686-uwp-windows-gnu i686-uwp-windows-msvc i686-win7-windows-msvc i686-wrs-vxworks loongarch64-unknown-linux-gnu loongarch64-unknown-linux-musl loongarch64-unknown-linux-ohos loongarch64-unknown-none loongarch64-unknown-none-softfloat #m68k-unknown-linux-gnu mips-unknown-linux-gnu mips-unknown-linux-musl mips-unknown-linux-uclibc mips64-openwrt-linux-musl mips64-unknown-linux-gnuabi64 mips64-unknown-linux-muslabi64 mips64el-unknown-linux-gnuabi64 mips64el-unknown-linux-muslabi64 mipsel-sony-psp mipsel-sony-psx mipsel-unknown-linux-gnu mipsel-unknown-linux-musl mipsel-unknown-linux-uclibc mipsel-unknown-netbsd mipsel-unknown-none mipsisa32r6-unknown-linux-gnu mipsisa32r6el-unknown-linux-gnu mipsisa64r6-unknown-linux-gnuabi64 mipsisa64r6el-unknown-linux-gnuabi64 msp430-none-elf nvptx64-nvidia-cuda powerpc-unknown-freebsd powerpc-unknown-linux-gnu powerpc-unknown-linux-gnuspe powerpc-unknown-linux-musl powerpc-unknown-linux-muslspe powerpc-unknown-netbsd powerpc-unknown-openbsd powerpc-wrs-vxworks powerpc-wrs-vxworks-spe powerpc64-ibm-aix powerpc64-unknown-freebsd powerpc64-unknown-linux-gnu powerpc64-unknown-linux-musl powerpc64-unknown-openbsd powerpc64-wrs-vxworks powerpc64le-unknown-freebsd powerpc64le-unknown-linux-gnu powerpc64le-unknown-linux-musl riscv32-wrs-vxworks riscv32e-unknown-none-elf riscv32em-unknown-none-elf riscv32emc-unknown-none-elf riscv32gc-unknown-linux-gnu riscv32gc-unknown-linux-musl riscv32i-unknown-none-elf riscv32im-risc0-zkvm-elf riscv32im-unknown-none-elf riscv32ima-unknown-none-elf riscv32imac-esp-espidf riscv32imac-unknown-none-elf riscv32imac-unknown-nuttx-elf riscv32imac-unknown-xous-elf riscv32imafc-esp-espidf riscv32imafc-unknown-none-elf riscv32imafc-unknown-nuttx-elf riscv32imc-esp-espidf riscv32imc-unknown-none-elf riscv32imc-unknown-nuttx-elf riscv64-linux-android riscv64-wrs-vxworks riscv64gc-unknown-freebsd riscv64gc-unknown-fuchsia riscv64gc-unknown-hermit riscv64gc-unknown-linux-gnu riscv64gc-unknown-linux-musl #riscv64gc-unknown-netbsd riscv64gc-unknown-none-elf riscv64gc-unknown-nuttx-elf riscv64gc-unknown-openbsd riscv64imac-unknown-none-elf riscv64imac-unknown-nuttx-elf s390x-unknown-linux-gnu s390x-unknown-linux-musl sparc-unknown-linux-gnu sparc-unknown-none-elf sparc64-unknown-linux-gnu sparc64-unknown-netbsd sparc64-unknown-openbsd sparcv9-sun-solaris thumbv4t-none-eabi thumbv5te-none-eabi thumbv6m-none-eabi thumbv6m-nuttx-eabi thumbv7a-pc-windows-msvc thumbv7a-uwp-windows-msvc thumbv7em-none-eabi thumbv7em-none-eabihf thumbv7em-nuttx-eabi thumbv7em-nuttx-eabihf thumbv7m-none-eabi thumbv7m-nuttx-eabi thumbv7neon-linux-androideabi thumbv7neon-unknown-linux-gnueabihf thumbv7neon-unknown-linux-musleabihf thumbv8m.base-none-eabi thumbv8m.base-nuttx-eabi thumbv8m.main-none-eabi thumbv8m.main-none-eabihf thumbv8m.main-nuttx-eabi thumbv8m.main-nuttx-eabihf wasm32-unknown-emscripten wasm32-unknown-unknown wasm32-wasip1 wasm32-wasip1-threads wasm32-wasip2 wasm32v1-none wasm64-unknown-unknown x86_64-apple-darwin x86_64-apple-ios x86_64-apple-ios-macabi x86_64-apple-tvos x86_64-apple-watchos-sim x86_64-fortanix-unknown-sgx x86_64-linux-android x86_64-pc-nto-qnx710 x86_64-pc-solaris x86_64-pc-windows-gnu x86_64-pc-windows-gnullvm x86_64-pc-windows-msvc x86_64-unikraft-linux-musl x86_64-unknown-dragonfly x86_64-unknown-freebsd x86_64-unknown-fuchsia x86_64-unknown-haiku x86_64-unknown-hermit x86_64-unknown-hurd-gnu x86_64-unknown-illumos x86_64-unknown-l4re-uclibc x86_64-unknown-linux-gnu x86_64-unknown-linux-gnux32 x86_64-unknown-linux-musl #x86_64-unknown-linux-none x86_64-unknown-linux-ohos x86_64-unknown-netbsd x86_64-unknown-none x86_64-unknown-openbsd x86_64-unknown-redox x86_64-unknown-trusty x86_64-unknown-uefi x86_64-uwp-windows-gnu x86_64-uwp-windows-msvc x86_64-win7-windows-msvc x86_64-wrs-vxworks x86_64h-apple-darwin #xtensa-esp32-espidf #xtensa-esp32-none-elf #xtensa-esp32s2-espidf #xtensa-esp32s2-none-elf #xtensa-esp32s3-espidf #xtensa-esp32s3-none-elf )
for target in "${targets[@]}"; do echo "Migrating 2015 -> 2018 target $target" cargo fix --target "$target" -Zbuild-std=core --features extra_traits --allow-dirty --edition --broken-code --lib done
freebsd_versions=(freebsd13 freebsd14 freebsd15) for ver in "${freebsd_versions[@]}"; do echo "Migrating 2015 -> 2018 $ver" RUSTFLAGS="--cfg $ver" cargo fix --target i686-unknown-freebsd -Zbuild-std=core --features extra_traits --allow-dirty --edition --broken-code --lib RUSTFLAGS="--cfg $ver" cargo fix --target x86_64-unknown-freebsd -Zbuild-std=core --features extra_traits --allow-dirty --edition --broken-code --lib done
perl -pi -077 -e 's/edition = "2015"/edition = "2018"/' Cargo.toml
for target in "${targets[@]}"; do echo "Migrating 2018 -> 2021 target $target" cargo fix --target "$target" -Zbuild-std=core --features extra_traits --allow-dirty --edition --broken-code --lib done
perl -pi -077 -e 's/edition = "2018"/edition = "2021"/' Cargo.toml
for target in "${targets[@]}"; do echo "Checking target $target" cargo check --target "$target" -Zbuild-std=core --features extra_traits --lib || { echo "Failed for target $target" exit 1 } done
for ver in "${freebsd_versions[@]}"; do echo "Checking $ver" RUSTFLAGS="--cfg $ver" cargo check --target i686-unknown-freebsd -Zbuild-std=core --features extra_traits --lib || { echo "Failed for i686 $freebsd_versions" exit 1 } RUSTFLAGS="--cfg $ver" cargo check --target x86_64-unknown-freebsd -Zbuild-std=core --features extra_traits || --lib { echo "Failed for x86_64 $freebsd_versions" exit 1 } done
ci/style.sh ```
(backport <https://github.com/rust-lang/libc/pull/4132>) (cherry picked from commit 20f6aa4c8135ba5e2c079ff21b20f0a1be87e1c4)
[ applied by rerunning the script rather than resolving conflicts. Also updated the script to fail on error and to pass `--lib` so `cargo fix` doesn't try to upgrade anything that requires `std`. -Trevor ]
show more ...
|
| 50f26e08 | 19-Nov-2024 |
Trevor Gross <[email protected]> |
Apply formatting to macro bodies
Run `ci/style.sh` with the changes introduced in [1].
[1]: https://github.com/rust-lang/libc/pull/4107
(backport <https://github.com/rust-lang/libc/pull/4107>)
Th
Apply formatting to macro bodies
Run `ci/style.sh` with the changes introduced in [1].
[1]: https://github.com/rust-lang/libc/pull/4107
(backport <https://github.com/rust-lang/libc/pull/4107>)
This is the `libc-0.2` version of 49cb0ff99f ("Apply formatting to macro bodies"), though not a direct cherry pick.
show more ...
|
| 05911590 | 23-Apr-2024 |
Ola x Nilsson <[email protected]> |
gnu: Add f_flags to struct statfs for arm, mips, powerpc and x86
(backport <https://github.com/rust-lang/libc/pull/3663>) (cherry picked from commit 12e3a0b29439ba399086222b845717bba6670ff2) |
| b5b553d0 | 12-Jul-2022 |
Trevor Gross <[email protected]> |
Require rust >= 1.25 and drop libc_align conditional
This is mostly taken from Josh's work at [1], I just updated to account for conflicts and new uses of `libc_align`.
[1]: https://github.com/rust
Require rust >= 1.25 and drop libc_align conditional
This is mostly taken from Josh's work at [1], I just updated to account for conflicts and new uses of `libc_align`.
[1]: https://github.com/rust-lang/libc/pull/2845
Co-authored-by: Josh Triplett <[email protected]>
show more ...
|
| 255a5152 | 10-Aug-2024 |
David Carlier <[email protected]> |
linux adding new syscall SYS_mseal for x86_64 glibc/musl.
(backport <https://github.com/rust-lang/libc/pull/3798>) (cherry picked from commit 396c63c594915655bbd5aa8e6ea4aaab4f35a548) |
| 466516dd | 07-Sep-2023 |
Harry Stern <[email protected]> |
Move all seccomp consts and structs into top-level mod
Seccomp constants and structs were partially defined in the top-level mod.rs for linux and partially outside. This commit moves everything into
Move all seccomp consts and structs into top-level mod
Seccomp constants and structs were partially defined in the top-level mod.rs for linux and partially outside. This commit moves everything into the top-level mod and adds missing entries as of linux 6.4.12.
Signed-off-by: Harry Stern <[email protected]>
show more ...
|
| 26bbe2da | 14-Oct-2023 |
Артём Павлов [Artyom Pavlov] <[email protected]> |
Add `MCL_ONFAULT` constants |
| 133e4b13 | 14-Apr-2023 |
Ricardo Ribalda <[email protected]> |
Add kexec_file_load system call for arm linux
This syscall was introduced in Linux 5.0. References:
- torvalds/linux@4ab65ba7a5cbad47520274d88d066bf8eb83f161
Signed-off-by: Ricardo Ribalda <ribald
Add kexec_file_load system call for arm linux
This syscall was introduced in Linux 5.0. References:
- torvalds/linux@4ab65ba7a5cbad47520274d88d066bf8eb83f161
Signed-off-by: Ricardo Ribalda <[email protected]>
show more ...
|
| d36bf066 | 18-Jan-2023 |
Tom Dohrmann <[email protected]> |
add `user_regs` for linux on arm
This struct is used for `PTRACE_GETREGS` & `PTRACE_SETREGS`. We mirror the name used in `glibc`. This struct is called `pt_regs` in the kernel. glibc uses a single a
add `user_regs` for linux on arm
This struct is used for `PTRACE_GETREGS` & `PTRACE_SETREGS`. We mirror the name used in `glibc`. This struct is called `pt_regs` in the kernel. glibc uses a single array `uregs` instead of individual fields. The `asm/ptrace.h` header defined by the linux kernel defines macros to access the individual registers. Instead of `uregs` we just define the registers as individual fields.
show more ...
|
| ce3a66a2 | 09-Sep-2022 |
Christian Duerr <[email protected]> |
Add new Linux system call constants
This adds the latest Linux system call constants based on the Kernel's system call table:
https://github.com/torvalds/linux/blob/master/arch/x86/entry/syscalls/s
Add new Linux system call constants
This adds the latest Linux system call constants based on the Kernel's system call table:
https://github.com/torvalds/linux/blob/master/arch/x86/entry/syscalls/syscall_64.tbl
show more ...
|
| 8ff52d72 | 08-Mar-2022 |
Sergio Lopez <[email protected]> |
linux_like: add rseq syscall
Add the rseq syscall to all arches in linux_like.
Signed-off-by: Sergio Lopez <[email protected]> |
| ad3f860b | 08-Feb-2022 |
lancethepants <[email protected]> |
Set __rlimit_resource_t definition for all uclibc (c_ulong). Bring all linux RLIMIT definitions into arch/generic/mod.rs or respective architectures. Define all RLIMIT constants for all architectures
Set __rlimit_resource_t definition for all uclibc (c_ulong). Bring all linux RLIMIT definitions into arch/generic/mod.rs or respective architectures. Define all RLIMIT constants for all architectures. Move BLKSSZGET/BLKPBSZGET with their other Ioctls Constants. arch/generic/mod.rs No need to check for mips(64), powerpc(64), or sparc(64).
show more ...
|
| 26665e70 | 11-Feb-2022 |
Amanieu d'Antras <[email protected]> |
Implement extra traits for ucontext_t |
| de8654b3 | 11-Feb-2022 |
Amanieu d'Antras <[email protected]> |
Add mcontext_t and ucontext_t for ARM Linux |
| 33842946 | 17-Jan-2022 |
lancethepants <[email protected]> |
Consolidate all Ioctl constants and functions by architecture. |