|
Revision tags: 0.2.174 |
|
| #
264a5399 |
| 16-Jun-2025 |
Ola x Nilsson <[email protected]> |
Add missing timespec.tv_nsec for gnux32
The tv_nsec field was removed by mistake for gnux32 in bbaa0173daa4 ("gnu: Update struct timespec for GNU _TIME_BITS=64").
Fixes #4495
Link: https://github.
Add missing timespec.tv_nsec for gnux32
The tv_nsec field was removed by mistake for gnux32 in bbaa0173daa4 ("gnu: Update struct timespec for GNU _TIME_BITS=64").
Fixes #4495
Link: https://github.com/bminor/glibc/blob/d1b27eeda3d92f33314e93537437cab11ddf4777/time/bits/types/struct_timespec.h#L11-L31
[ add referenced commit summary and link to the message - Trevor ]
(backport <https://github.com/rust-lang/libc/pull/4497>) (cherry picked from commit e9bd0b43e0b6830072e5af3e7c6618ec62732363)
show more ...
|
|
Revision tags: 0.2.173 |
|
| #
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 ...
|
|
Revision tags: 0.2.172, ctest-v0.4.11, ctest-v0.4.10 |
|
| #
516e529e |
| 25-Mar-2025 |
Ola x Nilsson <[email protected]> |
gnu: Move struct timex from gnu to gnu/b32 and gnu/b64
Will make it easier to adapt for _TIME_BITS=64
(backport <https://github.com/rust-lang/libc/pull/4433>) (cherry picked from commit 87d9e201c3f
gnu: Move struct timex from gnu to gnu/b32 and gnu/b64
Will make it easier to adapt for _TIME_BITS=64
(backport <https://github.com/rust-lang/libc/pull/4433>) (cherry picked from commit 87d9e201c3feb62e58f6ede10637ecc45db2f7b4)
show more ...
|
|
Revision tags: 0.2.171, 0.2.170, 0.2.169, 0.2.168, ctest-v0.4.9, 0.2.167, 0.2.166, 0.2.165, 0.2.164, 0.2.163, 0.2.162, 0.2.161, 0.2.160, 0.2.159, 0.2.158, 0.2.157, 0.2.156, 0.2.155, 0.2.154, ctest-v0.4.8, 0.2.153, 0.2.152, 0.2.151, 0.2.150, 0.2.149, 0.2.148, 0.2.147, ctest-v0.4.7, 0.2.146, 0.2.145, 0.2.144, 0.2.143, ctest-v0.4.6, 0.2.142, 0.2.141 |
|
| #
dfcfcf84 |
| 27-Mar-2023 |
Ola x Nilsson <[email protected]> |
gnu: Update struct timespec for GNU _TIME_BITS=64
Use a GNU libc specific version of struct timespec in unix/linux_like/linux/gnu and keep the version in unix for all other unix libc's.
Big-endian
gnu: Update struct timespec for GNU _TIME_BITS=64
Use a GNU libc specific version of struct timespec in unix/linux_like/linux/gnu and keep the version in unix for all other unix libc's.
Big-endian platforms wants 32 bits of padding before tv_nsec, little-endian after.
GNU libc always uses long for tv_nsec.
References:
https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/time/bits/types/struct_timespec.h
(backport <https://github.com/rust-lang/libc/pull/4433>) (cherry picked from commit bbaa0173daa439f55e6fabfd71982fc579bb3e8c)
show more ...
|
| #
8f3da768 |
| 21-Nov-2024 |
Ola x Nilsson <[email protected]> |
gnu: Use _TIME_BITS=64 versions of glibc symbols
Set the link names of relevant symbols to use be the same as when a C program is built against GNU libc with -D_TIME_BITS=64 -- which also requires -
gnu: Use _TIME_BITS=64 versions of glibc symbols
Set the link names of relevant symbols to use be the same as when a C program is built against GNU libc with -D_TIME_BITS=64 -- which also requires -D_FILE_OFFSET_BITS=64.
References:
https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/io/fcntl.h fcntl on line 190
https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/io/sys/poll.h ppoll on line 71
https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/io/sys/stat.h difftime on line 86 fstat on line 218 fstat64 on line 249 fstatat on line 270 fstatat64 on line 296 futimens on line 456 gmtime on line 140 gmtime_r on line 163 localtime on line 141 localtime_r on line 167 lstat on line 318 lstat64 on line 318 mktime on line 88 stat on line 214 stat64 on line 214 time on line 85 timegm on line 249 utimensat on line 439
https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/io/utime.h utime on line 56
https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/misc/sys/ioctl.h ioctl on line 45
https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/misc/sys/select.h pselect on line 134 select on line 108
https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/posix/glob.h glob on line 154 glob64 on line 174 globfree on line 160 globfree64 on line 180
https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/posix/sched.h sched_rr_get_interval on line 81
https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/posix/sys/wait.h wait4 on line 163
https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/resource/sys/resource.h getrusage on line 93
https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/rt/aio.h aio_suspend on line 197
https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/rt/mqueue.h mq_timedreceive on line 91 mq_timedsend on line 99
https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/signal/signal.h sigtimedwait on line 279
https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/socket/sys/socket.h getsockopt on line 260 recvmmsg on line 219 recvmsg on line 219 sendmmsg on line 199 sendmsg on line 178 setsockopt on line 281
https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/sysdeps/nptl/pthread.h pthread_cond_timedwait on line 1151 pthread_mutex_timedlock on line 805
https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/sysdeps/pthread/semaphore.h sem_timedwait on line 68
https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/sysdeps/unix/sysv/linux/bits/time.h clock_adjtime on line 82
https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/sysdeps/unix/sysv/linux/sys/epoll.h epoll_pwait2 on line 146
https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/sysdeps/unix/sysv/linux/sys/prctl.h prctl on line 45
https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/sysdeps/unix/sysv/linux/sys/timerfd.h timerfd_gettime on line 67 timerfd_settime on line 52
https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/sysdeps/unix/sysv/linux/sys/timex.h adjtimex on line 70 ntp_adjtime on line 76 ntp_gettime on line 72
https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/sysvipc/sys/msg.h msgctl on line 65
https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/sysvipc/sys/sem.h semctl on line 55
https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/sysvipc/sys/shm.h shmctl on line 53
https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/time/sys/time.h adjtime on line 102 futimes on line 200 gettimeofday on line 71 lutimes on line 196 settimeofday on line 98 utimes on line 176
https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/time/time.h clock_getres on line 299 clock_gettime on line 302 clock_nanosleep on line 328 clock_settime on line 305 ctime_r on line 206 nanosleep on line 328 timer_gettime on line 366 timer_settime on line 361
(backport <https://github.com/rust-lang/libc/pull/4433>) (cherry picked from commit 4c58e4b560b29408f8f3aba012add7756ea70d0d)
show more ...
|
| #
b6971335 |
| 15-Apr-2025 |
Jakub Janowski <[email protected]> |
Cleanup IOCTL definitions in linux_like tree
(backport <https://github.com/rust-lang/libc/pull/4418>) (cherry picked from commit 49a6e233a085866dff1a4c410dc21d1cd96e861e)
|
| #
3db74e3c |
| 11-May-2025 |
The 8472 <[email protected]> |
linux: add new flags for pwritev2/preadv2
(backport <https://github.com/rust-lang/libc/pull/4452>) (cherry picked from commit 6e7549d34f839aa3b76476df0408a155fec81186)
|
| #
a598506f |
| 15-Apr-2025 |
Yuri Astrakhan <[email protected]> |
chore: apply some clippy lints
(backport <https://github.com/rust-lang/libc/pull/4415>) [ drop changes around the FreeBSD version in build.rs since the logic isn't the same - Trevor ] (cherry pick
chore: apply some clippy lints
(backport <https://github.com/rust-lang/libc/pull/4415>) [ drop changes around the FreeBSD version in build.rs since the logic isn't the same - Trevor ] (cherry picked from commit a283b9e66d4a8e9371b0aa69d8534010a1c7d9e7)
show more ...
|
| #
2f3e8685 |
| 12-Apr-2025 |
rusty-snake <[email protected]> |
Update pidfd constants and types (Linux 6.9-6.15)
(backport <https://github.com/rust-lang/libc/pull/4402>) (cherry picked from commit 126f2c66d23a00f8dfd1d99459fb6a1f9011dfbb)
|
| #
1ff2f218 |
| 09-Apr-2025 |
David Carlier <[email protected]> |
adding linux glibc ptrace_sud_config and related PTRACE_*ET_SYSCALL_USER_DISPATCH_CONFIG.
[ref](https://github.com/torvalds/linux/blob/a24588245776dafc227243a01bfbeb8a59bafba9/include/uapi/linux/ptr
adding linux glibc ptrace_sud_config and related PTRACE_*ET_SYSCALL_USER_DISPATCH_CONFIG.
[ref](https://github.com/torvalds/linux/blob/a24588245776dafc227243a01bfbeb8a59bafba9/include/uapi/linux/ptrace.h#L138) [ref](https://github.com/torvalds/linux/blob/a24588245776dafc227243a01bfbeb8a59bafba9/include/uapi/linux/ptrace.h#L115)
(backport <https://github.com/rust-lang/libc/pull/4386>) (cherry picked from commit 795a6d6e6619742755e79db38bb33da7d534d9a7)
show more ...
|
| #
c553ad52 |
| 20-Mar-2023 |
Ola x Nilsson <[email protected]> |
gnu: Update struct aiocb for gnu_file_offset_bits64
(backport <https://github.com/rust-lang/libc/pull/4345>) (cherry picked from commit 7ba56f2adf2585e6ca6293c934209ccf20f8eb67)
|
| #
394f97fa |
| 21-Nov-2024 |
Ola x Nilsson <[email protected]> |
gnu: Add proper structs for fpos_t and fpos64_t
(backport <https://github.com/rust-lang/libc/pull/4345>) (cherry picked from commit 872642ada4a2992d9125bd7c47d31a2d50491b1d)
|
| #
c6a40ea4 |
| 21-Nov-2024 |
Ola x Nilsson <[email protected]> |
gnu: Use _FILE_OFFSET_BITS=64 versions of glibc symbols
When _FILE_OFFSET_BITS=64, glibc redirects some function calls to 64 bit versions. These symbols are sometimes the public LFS variants, somet
gnu: Use _FILE_OFFSET_BITS=64 versions of glibc symbols
When _FILE_OFFSET_BITS=64, glibc redirects some function calls to 64 bit versions. These symbols are sometimes the public LFS variants, sometimes hidden variants.
(backport <https://github.com/rust-lang/libc/pull/4345>) (cherry picked from commit 2b4fafbbea40c66c8fc5c7001afb3ed2dbe141c4)
show more ...
|
| #
01499643 |
| 14-Feb-2025 |
David Carlier <[email protected]> |
linux: deprecate obsolete packet filter interfaces.
sockaddr_ll/AF_PACKET are in place since Linux 2.2
(backport <https://github.com/rust-lang/libc/pull/4267>) (cherry picked from commit eb78ad0090
linux: deprecate obsolete packet filter interfaces.
sockaddr_ll/AF_PACKET are in place since Linux 2.2
(backport <https://github.com/rust-lang/libc/pull/4267>) (cherry picked from commit eb78ad0090fb2d2195bd4564368468334d399dea)
show more ...
|
| #
0987973a |
| 27-Nov-2024 |
arctic-alpaca <[email protected]> |
move AF_XDP structs and constants to linux/mod.rs
(backport <https://github.com/rust-lang/libc/pull/4163>) (cherry picked from commit 7eaea55a4571530a4ca1cc5431c95cdc9b05d38a)
|
| #
4f1c07bc |
| 05-Jan-2025 |
lvllvl <[email protected]> |
Chore: add labels to each FIXME
(backport <https://github.com/rust-lang/libc/pull/4229>) (cherry picked from commit 6b8535b3703e8ccc3d044095de38fa222c5a083f)
|
| #
1e2da75b |
| 08-Dec-2024 |
David Carlier <[email protected]> |
adding POSIX memccpy and mempcpy GNU extension.
[memccpy](https://pubs.opengroup.org/onlinepubs/9699919799/functions/memccpy.html)
[mempcpy](https://man7.org/linux/man-pages/man3/mempcpy.3.html)
(
adding POSIX memccpy and mempcpy GNU extension.
[memccpy](https://pubs.opengroup.org/onlinepubs/9699919799/functions/memccpy.html)
[mempcpy](https://man7.org/linux/man-pages/man3/mempcpy.3.html)
(backport <https://github.com/rust-lang/libc/pull/4186>) (cherry picked from commit ba5930dbc20dba0dbb3d39496313f6be4468cf01)
show more ...
|
| #
8592ff94 |
| 08-Dec-2024 |
Jukka Taimisto <[email protected]> |
Lift IFA_* constants from linux/gnu to linux
(backport <https://github.com/rust-lang/libc/pull/4185>) (cherry picked from commit 70c1e823ef4faf5a77202bb01698da2a2b1c216a)
|
| #
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 ...
|
| #
c1cdf7b0 |
| 16-Oct-2024 |
J. Neuschäfer <[email protected]> |
linux_like: Unify statx definitions
The statx system call and corresponding constants are defined by the Linux kernel and don't depend on the libc or architecture. The only difference is whether a l
linux_like: Unify statx definitions
The statx system call and corresponding constants are defined by the Linux kernel and don't depend on the libc or architecture. The only difference is whether a libc exports the statx syscall wrapper or not.
We can thus unify the statx definitions for all Linux "like" platforms: GNU (glibc), Android (bionic), and (in a later commit) musl.
Plain u64 (or uint64_t in C) can't be used for the statx fields because bionic defines them as __u64, and provides incompatible definitions of uint64_t and __u64.
(backport <https://github.com/rust-lang/libc/pull/3978>) (cherry picked from commit e46bbe467087e5e6fdfdf480532594296c993d4f)
show more ...
|
| #
19464c3a |
| 20-Nov-2024 |
arctic-alpaca <[email protected]> |
move changes to `src/unix/linux_like/linux/mod.rs`
(backport <https://github.com/rust-lang/libc/pull/3956>) (cherry picked from commit 88aa42a2c6a7addf3ab66dd77cbd014e0af6181c)
|
| #
e28e2ec9 |
| 20-Nov-2024 |
arctic-alpaca <[email protected]> |
update/add missing AF_XDP structs & constants
(backport <https://github.com/rust-lang/libc/pull/3956>) (cherry picked from commit 6bc41c9ce4cb22672db71a7f54f8f733c717f31b)
|
| #
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 ...
|
| #
ab0819b0 |
| 25-Feb-2024 |
Martin Liska <[email protected]> |
Add glibc's function: malloc_stats
The function is used to report stats about glibc's memory allocator to stderr:
``` Arena 0: system bytes = 1350406144 in use bytes = 3725633952 Arena 1: s
Add glibc's function: malloc_stats
The function is used to report stats about glibc's memory allocator to stderr:
``` Arena 0: system bytes = 1350406144 in use bytes = 3725633952 Arena 1: system bytes = 1895907328 in use bytes = 1653748608 Total (incl. mmap): system bytes = 277286912 in use bytes = 2410356000 max mmap regions = 56 max mmap bytes = 2876198912 ```
(backport <https://github.com/rust-lang/libc/pull/3596>) (cherry picked from commit 78e6d62b3fd328fc77d6bcb852445f7bd175efe9)
show more ...
|