chore(deps): update rust crate libc to v0.2.190 - autoclosed
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| libc | dependencies | patch | 0.2.186 → 0.2.190 |
| libc | workspace.dependencies | patch | 0.2.186 → 0.2.190 |
Release Notes
rust-lang/libc (libc)
v0.2.190
There is now a single config for enabling 64-bit time_t: libc_unstable_time64. This can be set
unconditionally; it opts in to 64-bit time_t on the following platforms that use 32-bit by
default:
- 32-bit Linux-GNU
- 32-bit Linux-uClibc
- 32-bit Linux-musl. Note that setting this flag also enables some other changes that happend in
musl v1.2. - 32-bit Windows-GNU
- ESP-IDF (all targets with this environment are 32-bit)
Most other 32-bit platforms are either already using 64-bit time_t, or are considered legacy
and will not be gaining support from their upstream maintainers.
You can enable this using RUSTFLAGS:
RUSTFLAGS='--cfg=libc_unstable_time64' cargo ...
Note that there may still be some changes to features gated by this config option, hence "unstable"
in its name. In the near future we will rename it to just libc_time64. Until then, please test it
out and report any bugs you find!
Support
- Add initial support for HelenOS (#4355)
Added
We are slowly filling out the Default implementations, to reduce the need for mem::zeroed() in user code:
- Unix: Implement
Defaultfor a number of structs, especially on Apple platforms (#5576) - Linux, NetBSD: Give
statvfsaDefaultimpl (#5583) - Linux: Add
Defaultto alinux/can.rsstructs (#5257)
Other additions:
- Expose the
libc_unstable_time64cfg (#5411) - Android, Glibc: Add
pthread_gettid_np(#5359) - Android: Add
RTLD_NEXT(#5323) - Android: Add reuseport BPF socket options (#5366)
- Apple: Add TCP header flags, options and SACK limits (#5358)
- Apple: Add
NET_RT_DUMP2(#5442) - Apple: Add
posix_spawn_file_actions_add(f)chdir(_np)(#5558) - BSD: Add
BPF_WORDALIGN(#5320) - BSD: Add
lchmodandlchflagswhere supported (#5400) - BSD: Add
minheritand related constants (#4849) - Docs: Add more links to public headers and manual pages (#5407), (#5485)
- Emscripten: Add epoll support (#5427)
- FreeBSD: Add
AT_RENAME_*andRENAME_*constants (#5560) - FreeBSD: Add
renameat2(#5563) - FreeBSD: Add
rt_msghdrandrt_metrics(#5367) - Hurd: Add handling of LFS under
libc_unstable_gnu_time_bits(#5242) - Linux-GNU: Add
environ(#5339) - Linux-GNU: Add the new
f_typefield tostatvfsandstatvfs64(#5434) - Linux-like: Add additional
STATX_*constants (#5412) - Linux-musl, Emscripten: Add
SIGEV_THREAD_ID(#5375) - Linux-musl: Add
*_SUPER_MAGICconstants (#5453) - Linux-musl: Make
statxalways available (#5448) - Linux-s390x: Add
max_align_t(#5389) - Linux: Add
BCACHEFS_SUPER_MAGIC(#5516) - Linux: Add
ETH_P_LLDP(#5438) - Linux: Add
FUTEX_ROBUST_UNLOCKandFUTEX_ROBUST_LIST32(#5525) - Linux: Add
NLMSG_*helpers (#5321) - Linux: Update the definition of
siginfo_tand add more getter functions (#5345) - Musl riscv64: Add
SYS_futex_waitv(#5527) - Newlib: Add
__errno(#5346) - OpenBSD: Add
RTLD_NODELETEandRTLD_NOLOAD(#5377) - OpenBSD: Add
getexecpath(#5465) - OpenBSD: Add bindings from
sensors.h(#5510) - OpenBSD: Add missing
HW_*sysctl constants (#5371) - QNX: Add definitions for io-sock (#5469)
- Redox: Add
FILENAME_MAX(#5530) - Redox: Add
clock_settimeandpause(#5363) - Redox: Add
getrandombindings (#5333) - Unix: Add RFC 3678 multicast
group_req/group_source_reqandMCAST_*where supported (#5236) - Unix: Add
HOST_NAME_MAX(#5531) - Unix: Add
_PATH_BSHELLand_PATH_DEFPATHwhere available (#5449) - WASI: Add
SOCK_CLOEXEC(#5336) - WASI: Add locale category constants (#5378)
- WASI: Add more pthread APIs (#5310)
- uClibc: Support 64-bit
time_ton 32-bit platforms via cfg (#5261)
Deprecated
- AIX: deprecate
_kernel_simple_lock(#5380) - Deprecate integer
*_MIN/*_MAXin favor of e.g.c_int::MAX(#5404) - Fuchsia: Deprecate types that do not exist upstream (#5127)
- Hurd: Deprecate
fallocate64, which does not exist on the platform (#5242) - Hurd: Deprecate redundant
glob64types and routines (#5242) - L4Re: deprecate LFS bindings (#5173)
- OpenBSD: Deprecate
syscall,mincore, andKERN_NSELCOLL, all of which have been removed upstream (87992e9895c2) - Unix: Deprecate the POSIX-obsoleted
tmpnam,tempnam(#5478)
Fixed
- breaking AIX: Change the type of
BPF_ALIGNMENTtosize_tto match upstream and harmonize with other platforms. (#5373) - breaking Apple: change the type of
BPF_ALIGNMENTtosize_tto match upstream and harmonize with other platforms. (#5348) - Exclude non-required repository files from the published crate (#5312)
- AIX: Correct the function signature in
fileops_t.fo_select(#5380) - AIX: Fix the alignment of
file(#5380) - Android: Add missing padding to
ucontext_t(#5189) - Android: Fix the value of RISC-V
O_flags (#5554) - Fuchsia: Correct
mcontext_tanducontext_tand make them usable on more platforms (#5127) - Fuchsia: Fix available fields in
glob_tandstatvfs(#5127) - Fuchsia: Fix the definition of
sigeventand correct the layout of otherpthread.htypes (#5127) - Haiku: Correct the definition of
sem_t(#5351) - Linux-GNU: Fix the padding field in
statvfs64on 32-bit RISC-V (#5518) - Linux: Correct PowerPC64 speed symbols with elfv2 (#5342)
- Linux: Fix syscall numbers on 32-bit RISC-V (#5455)
- Musl riscv64: Fix the definition of
ipc_perm(#5527) - Musl riscv64: Fix the name of the
uc_flagsfield inucontext_t(#5527) - NetBSD: Fix
WIFSTOPPED(#5458) - Newlib: Update the
time_talias. This is a correction on Arm32 RTEMS (#5132) - NuttX: Correct
O_open flags (#5414) - RTEMS: Correct
socket.hdefinitions (#5313) - RTEMS: Correct the size of clock and storage type aliases (#5450)
- Redox: Correct
signal.htypes (#5436)
Changed
- The unstable cfg
libc_unstable_musl_v1_2_3has been renamed to a more accurate
libc_unstable_musl_v1_2. The old version will continue to work for now, but will be removed in
1-2 releases. (#5376) - AIX: Make function pointers in signatures
unsafe(#5380) - Cygwin: Change
POSIX_SPAWN_*flags toc_short(#5572) - Hermit: Make iovec fields public (#5460)
- Improve the panic message for out-of-range fds in
FD_*functions (#5528) - Musl riscv64: Fix the name of
__riscv_mc_q_ext_state.__reservedand make it private (#5533) - Various: Make obsolete
statfields non-pub(#5542) - uClibc: No longer link to libutil (#5165)
Removed
libc exposed quite a bit of API on all Apple platforms that is not actually available anywhere other than MacOS. This release removes a number of these cases.
- breaking Apple: Disable
mach.hAPI on Apple mobile OSs (e6bfb187513c) - breaking Apple: Remove a large number of items from iOS, tvOS, watchOS, and visionOS that are only available on MacOS. (#5158)
- breaking Apple: Remove the unsupported
exec*andforkcalls from tvOS and watchOS (#5158)
Additionally, this release cleans up a lot of API that has been deprecated since at least libc 0.2.100, released 2021-08-20.
- breaking Android, Linux: remove unsound
af_alg_ivtrait implementations. The have been deprecated for a long time because they allowed out-of-bounds reads via safe functions. (444db4456f38) - breaking Remove most items that have been deprecated since before 0.2.100 (#5401)
Other removed items:
- Dragonfly: Remove
INHERIT_ZEROthat does not exist upstream (#5587) - Musl riscv64: Remove GNU-gated
REG_*definitions (#5527) - Musl riscv64: Remove non-esxistant
REG_NARGS(#5527)
A huge thank you to our GSoC student Adam Martinez (@dybucc) who did a
huge amount of the time64 work, as well as many of the platform fixes!
v0.2.189
Added
- Emscripten: Add
pthread_sigmask,sigwait,sigwaitinfo,sigtimedwait,faccessat, andpthread_kill(#5270) - Linux SPARC: Enable the
clone3syscall (#4980) - Solarish: Add
CLOCK_PROCESS_CPUTIME_IDandCLOCK_THREAD_CPUTIME_ID(#5274)
Deprecated
- Deprecate
CLONE_INTO_CGROUPandCLONE_CLEAR_SIGHAND. These overflow their types and will be changed to a larger size in the future. (8c6e6710458d)
Fixed
- Musl riscv32: Rename padding fields to avoid a conflict and fix the build (2499ff0ad993)
- NuttX: Fix
wchar_tdefinition under Arm (#5245) - Windows: Add back link names for
time-related symbols (#5300)
v0.2.188
Changed
- Restore
SendandSyncforDIR(35b062263401)
These were removed in 0.2.187 because libc does not actually make Send and Sync
guarantees about DIR (or other extern types), but this caused some crates to break.
The traits are added back for now to allow time to migrate, but will be removed again
in the future; please make sure your crates are not relying on libc::DIR: Send or
libc::DIR: Sync.
v0.2.187
This release contains a number of improvements related to 64-bit time_t configuration.
Of note the existing RUST_LIBC_UNSTABLE_* environment variables have been replaced
with configuration options. The new way to use these is:
RUSTFLAGS='--cfg=libc_unstable_musl_v1_2_3' cargo ...
RUSTFLAGS='--cfg=libc_unstable_gnu_time_bits="64"' cargo ...
Being able to set this via RUSTFLAGS makes it easier to only apply configuration to
specific targets (and notably, not the host if build scripts are used).
There are two other notable changes:
-
The 32-bit
windows-gnutargets now respectlibc_unstable_gnu_time_bits -
uClibc now supports a similar configuration option:
RUSTFLAGS='--cfg=libc_unstable_uclibc_time64'
As a reminder, these options are under active development and may change in the future
(hence the "unstable" in the name). It likely that we will harmonize everything under a
single configuration option before considering them stable.
Support
- Add support for
aarch64-unknown-linux-pauthtest(#5065) - Add support for new QNX targets (#5241)
- Better document breaking change policy and recommended usage (#5179)
Added
- Android: Add
POSIX_SPAWN_*constants (#5104) - Android: Add
getpwent,setpwent, andendpwent(#5160) - Android: Add
preadv2andpwritev2(#5157) - Android: Add
seccomp_notif*structures (#5224) - Android: Add
timer_[create, delete, getoverrun, gettime, settime](#5108) - Apple: Add
PROC_PIDT_SHORTBSDINFOandproc_bsdshortinfo(#5110) - Apple: Add
SIOC*constants fromsockio.h(#5263) - Apple: Add
_IOR,_IOW,_IOWR(#5264) - Apple: Add
bpf_programandbpf_insn(#5235) - Apple: Add additional
kqueueconstants (#5077) - Apple: Update
vm_statistics64with recently added fields (#5253) - Apple: add
IN6_IFF_*andSIOCGIFAFLAG_IN6(#5239) - Dragonfly: Add
O_*,POSIX_FADV_*,NI*, and a few other missing constants (#5116) - Dragonfly: add
fdatasync,dlvsym,reallocarray,qsort_r,pthread_*affinity_np,ftok,extattr_*, anddup3(#5116) - Emscripten: Add
in6_pktinfo(#5256) - FreeBSD: Add SOL_LOCAL (#5185)
- FreeBSD: Add
DLT_*constants (#5235) - FreeBSD: Add
PROC_LOGSIGEXIT_*andPPROT_*(#4657) - FreeBSD: Add
SO_RERROR(#5260) - FreeBSD: add
IN6_IFF_*,in6_ifreq, andSIOCGIFAFLAG_IN6(#5239) - FreeBSD: add
_IO*helpers fromsys/ioccom.h(#5239) - Glibc: Add
PTHREAD_*_MUTEX_INITIALIZER_NPfor riscv64 (#5094) - Glibc: Add new fields to
struct tcp_info(#5215) - Linux: Add
OPEN_TREE_NAMESPACE(#5145) - Linux: Add
SECCOMP_IOCTL_*constants (#5224) - Linux: Add
SO_DETACH_REUSEPORT_BPF(#5081) - Linux: Add
futex_waitv(#5125) - Linux: Add constants for
fsopen,fsconfig,fsmount, andfspick(#5145) - Linux: Add fields to
statxpresent since 6.16 (#4621) - Linux: Add network entry API (#5049)
- Linux: add
ifaddrmsgandrtattr(#5234) - Linux: add
sockaddr_iucv(#5041) - MacOS: Add
ENOTCAPABLE(#4925) - Musl: Add
renameat2(#5113) - NuttX: Add
F_SETFD(#5258) - NuttX: Add
POLLRD*andPOLLWR*constants (#5258) - NuttX: Add
SO_KEEPALIVEand TCP keepalive constants (#5111) - NuttX: Add
TCP_MAXSEG(#5258) - NuttX: Add
eventfdandEFD_*constants (#5258) - NuttX: Add
pipe2(#5258) - NuttX: Add
strerror_r(#5258) - NuttX: Add
netinetstructs and constants (#5258) - NuttX: Add socket structs, functions and constants (#5258)
- QuRT: Add POSIX timer functions (#5091)
- QuRT: Add missing pthread functions from QuRT SDK headers (#5091)
- QuRT: Add missing unistd process and file functions (#5091)
- QuRT: Add mqueue subsystem (message queues, select/pselect) (#5091)
- Redox: Add
*atanddirentfunctions (#5117) - Solarish: Add IP TTL and IPv6 Hop Limit consts (#5089)
- Solarish: Add
port_alertandPORT_ALERT*constants (#5203) - Solarish: add AI_CANONNAME (#5085)
- aarch64: Add SYS_sendfile and SYS_fadvise64 constants (#5133)
Deprecated
- Dragonfly: Deprecate compatibility aliases
CPUCTL_RSMSRandUTX_DB_LASTLOG(#5116)
Fixed
- breaking NetBSD: Correct
tsfrom*const timespecto*mut timespecin _lwp_park` (#5169) - breaking Linux GNU: Change overflowing
PTRACE_*ET_SYSCALL_USER_DISPATCH_CONFIGconstants fromu8toc_uint(#4936) - Fix the soundness bug in the representation of extern types (#5021)
- Cygwin: fix
cpuset_ttypo inCPU_ZERO(#5098) - Dragonfly: ABI fixes including regex offsets,
ifaddrs, pthread barriers, process sizing fields, andmcontextalignment (#5116) - Dragonfly: Correct values of
CPUCTL_CPUID*,EV_HUP, andEV_SYSFLAGS(#5116) - Emscripten: fix pthread type sizes for wasm64 (MEMORY64) (#5156)
- Horizon: Fix the value of
POLLOUT(#5090) - Linux: Correct the value of
EPIOC[GS]PARAMSwith nonstandard _IOC (#5188) - Make VxWorks shims
unsafe(#3727) - NetBSD: Correct getmntinfo to link
__getmntinfo13(#5251) - QNX: Fix the value of
PTHREAD_MUTEX_INITIALIZER(#5241) - QuRT: fix type and definition inaccuracies against SDK headers (#5091)
- Windows: Correctly link to 32-bit time routines on 32-bit platforms (#5059)
- uClibc: Fix constants accidentally removed (#5141)
- uclibc: Fix build issues (#5046)
- uclibc: Fix type of PRIO_PROCESS and friends (#5046)
Changed
- AIX, TeeOS: Drop unneeded
-> c_void(#5240) - Apple: Change
AIO_LISTIO_MAXto account for changes in macOS 27 (#5253) - Glibc: Update the value of
MS_NOUSER(#5215) - L4Re: Update definitions and test infra (#5275)
- Linux: Update the value of
SW_MAXandSW_CNT(#5215) - MacOS: Add
swapped_counttovm_statistics64(#4926) - Windows: Windows-GNU now respects
libc_unstable_gnu_time_bitsfor 64-bittime_tconfig (#5062)
Removed
- Dragonfly: Remove FreeBSD-only
Elf32_Lword,ip_mreq_source, andIP_constants (#5116) - Dragonfly: Remove private VM type bindings (#5116)
- Linux: Remove
KERN_REALROOTDEVandVM_LAPTOP_MODE(#5177) - VxWorks: Remove non-user-facing (kernel) API (#5129)
Other
- Print config information if
LIBC_BUILD_VERBOSEis set (#5272) - Annotate
*LASTconstants as potentially changing (#5120) - Annotate
*MAXconstants as potentially changing (#5122) - BSD: Annotate
ELASTconstants as potentially changing (#5118) - FreeBSD: Annotate
RAND_MAXas potentially changing (#5119) - Linux, L4re: Annotate
*NUMconstants as potentially changing (#5123) - QNX: Restructure to support new platforms (#4984)
- Unix: Annotate
*COUNTconstants as potentially changing (#5121) - uClibc: Add unstable support of 64-bit
time_t(#5046) - (internal) FreeBSD: Replace unstable env to set version with an unstable cfg (#5201)
- (internal) Glibc: Remove public configuration for file offset bits (#5268)
- (internal) Linux: Delete config via
RUST_LIBC_UNSTABLE_LINUX_TIME_BITS64(#5197) - (internal) Replace
RUST_LIBC_UNSTABLEenv withlibc_unstable*cfg (#4977)
Configuration
📅 Schedule: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
- If you want to rebase/retry this PR, check this box
This PR was generated by Mend Renovate. View the repository job log.