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!
The unstable cfg libc_unstable_musl_v1_2_3 has 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 to c_short (#5572)
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.h API 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* and fork calls 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_iv trait 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_ZERO that does not exist upstream (#5587)
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [libc](https://github.com/rust-lang/libc) | dependencies | patch | `0.2.189` → `0.2.190` |
---
### Release Notes
<details>
<summary>rust-lang/libc (libc)</summary>
### [`v0.2.190`](https://github.com/rust-lang/libc/releases/tag/0.2.190)
[Compare Source](https://github.com/rust-lang/libc/compare/0.2.189...0.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`:
```sh
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](https://github.com/rust-lang/libc/pull/4355))
##### Added
We are slowly filling out the `Default` implementations, to reduce the need for `mem::zeroed()` in user code:
- Unix: Implement `Default` for a number of structs, especially on Apple platforms ([#​5576](https://github.com/rust-lang/libc/pull/5576))
- Linux, NetBSD: Give `statvfs` a `Default` impl ([#​5583](https://github.com/rust-lang/libc/pull/5583))
- Linux: Add `Default` to a `linux/can.rs` structs ([#​5257](https://github.com/rust-lang/libc/pull/5257))
Other additions:
- Expose the `libc_unstable_time64` cfg ([#​5411](https://github.com/rust-lang/libc/pull/5411))
- Android, Glibc: Add `pthread_gettid_np` ([#​5359](https://github.com/rust-lang/libc/pull/5359))
- Android: Add `RTLD_NEXT` ([#​5323](https://github.com/rust-lang/libc/pull/5323))
- Android: Add reuseport BPF socket options ([#​5366](https://github.com/rust-lang/libc/pull/5366))
- Apple: Add TCP header flags, options and SACK limits ([#​5358](https://github.com/rust-lang/libc/pull/5358))
- Apple: Add `NET_RT_DUMP2` ([#​5442](https://github.com/rust-lang/libc/pull/5442))
- Apple: Add `posix_spawn_file_actions_add(f)chdir(_np)` ([#​5558](https://github.com/rust-lang/libc/pull/5558))
- BSD: Add `BPF_WORDALIGN` ([#​5320](https://github.com/rust-lang/libc/pull/5320))
- BSD: Add `lchmod` and `lchflags` where supported ([#​5400](https://github.com/rust-lang/libc/pull/5400))
- BSD: Add `minherit` and related constants ([#​4849](https://github.com/rust-lang/libc/pull/4849))
- Docs: Add more links to public headers and manual pages ([#​5407](https://github.com/rust-lang/libc/pull/5407)), ([#​5485](https://github.com/rust-lang/libc/pull/5485))
- Emscripten: Add epoll support ([#​5427](https://github.com/rust-lang/libc/pull/5427))
- FreeBSD: Add `AT_RENAME_*` and `RENAME_*` constants ([#​5560](https://github.com/rust-lang/libc/pull/5560))
- FreeBSD: Add `renameat2` ([#​5563](https://github.com/rust-lang/libc/pull/5563))
- FreeBSD: Add `rt_msghdr` and `rt_metrics` ([#​5367](https://github.com/rust-lang/libc/pull/5367))
- Hurd: Add handling of LFS under `libc_unstable_gnu_time_bits` ([#​5242](https://github.com/rust-lang/libc/pull/5242))
- Linux-GNU: Add `environ` ([#​5339](https://github.com/rust-lang/libc/pull/5339))
- Linux-GNU: Add the new `f_type` field to `statvfs` and `statvfs64` ([#​5434](https://github.com/rust-lang/libc/pull/5434))
- Linux-like: Add additional `STATX_*` constants ([#​5412](https://github.com/rust-lang/libc/pull/5412))
- Linux-musl, Emscripten: Add `SIGEV_THREAD_ID` ([#​5375](https://github.com/rust-lang/libc/pull/5375))
- Linux-musl: Add `*_SUPER_MAGIC` constants ([#​5453](https://github.com/rust-lang/libc/pull/5453))
- Linux-musl: Make `statx` always available ([#​5448](https://github.com/rust-lang/libc/pull/5448))
- Linux-s390x: Add `max_align_t` ([#​5389](https://github.com/rust-lang/libc/pull/5389))
- Linux: Add `BCACHEFS_SUPER_MAGIC` ([#​5516](https://github.com/rust-lang/libc/pull/5516))
- Linux: Add `ETH_P_LLDP` ([#​5438](https://github.com/rust-lang/libc/pull/5438))
- Linux: Add `FUTEX_ROBUST_UNLOCK` and `FUTEX_ROBUST_LIST32` ([#​5525](https://github.com/rust-lang/libc/pull/5525))
- Linux: Add `NLMSG_*` helpers ([#​5321](https://github.com/rust-lang/libc/pull/5321))
- Linux: Update the definition of `siginfo_t` and add more getter functions ([#​5345](https://github.com/rust-lang/libc/pull/5345))
- Musl riscv64: Add `SYS_futex_waitv` ([#​5527](https://github.com/rust-lang/libc/pull/5527))
- Newlib: Add `__errno` ([#​5346](https://github.com/rust-lang/libc/pull/5346))
- OpenBSD: Add `RTLD_NODELETE` and `RTLD_NOLOAD` ([#​5377](https://github.com/rust-lang/libc/pull/5377))
- OpenBSD: Add `getexecpath` ([#​5465](https://github.com/rust-lang/libc/pull/5465))
- OpenBSD: Add bindings from `sensors.h` ([#​5510](https://github.com/rust-lang/libc/pull/5510))
- OpenBSD: Add missing `HW_*` sysctl constants ([#​5371](https://github.com/rust-lang/libc/pull/5371))
- QNX: Add definitions for io-sock ([#​5469](https://github.com/rust-lang/libc/pull/5469))
- Redox: Add `FILENAME_MAX` ([#​5530](https://github.com/rust-lang/libc/pull/5530))
- Redox: Add `clock_settime` and `pause` ([#​5363](https://github.com/rust-lang/libc/pull/5363))
- Redox: Add `getrandom` bindings ([#​5333](https://github.com/rust-lang/libc/pull/5333))
- Unix: Add RFC 3678 multicast `group_req`/`group_source_req` and `MCAST_*` where supported ([#​5236](https://github.com/rust-lang/libc/pull/5236))
- Unix: Add `HOST_NAME_MAX` ([#​5531](https://github.com/rust-lang/libc/pull/5531))
- Unix: Add `_PATH_BSHELL` and `_PATH_DEFPATH` where available ([#​5449](https://github.com/rust-lang/libc/pull/5449))
- WASI: Add `SOCK_CLOEXEC` ([#​5336](https://github.com/rust-lang/libc/pull/5336))
- WASI: Add locale category constants ([#​5378](https://github.com/rust-lang/libc/pull/5378))
- WASI: Add more pthread APIs ([#​5310](https://github.com/rust-lang/libc/pull/5310))
- uClibc: Support 64-bit `time_t` on 32-bit platforms via cfg ([#​5261](https://github.com/rust-lang/libc/pull/5261))
##### Deprecated
- AIX: deprecate `_kernel_simple_lock` ([#​5380](https://github.com/rust-lang/libc/pull/5380))
- Deprecate integer `*_MIN`/`*_MAX` in favor of e.g. `c_int::MAX` ([#​5404](https://github.com/rust-lang/libc/pull/5404))
- Fuchsia: Deprecate types that do not exist upstream ([#​5127](https://github.com/rust-lang/libc/pull/5127))
- Hurd: Deprecate `fallocate64`, which does not exist on the platform ([#​5242](https://github.com/rust-lang/libc/pull/5242))
- Hurd: Deprecate redundant `glob64` types and routines ([#​5242](https://github.com/rust-lang/libc/pull/5242))
- L4Re: deprecate LFS bindings ([#​5173](https://github.com/rust-lang/libc/pull/5173))
- OpenBSD: Deprecate `syscall`, `mincore`, and `KERN_NSELCOLL`, all of which have been removed upstream ([87992e9895c2](https://github.com/rust-lang/libc/commit/87992e9895c2bfc6daab97d2e8f20ae895fd9f7b))
- Unix: Deprecate the POSIX-obsoleted `tmpnam`, `tempnam` ([#​5478](https://github.com/rust-lang/libc/pull/5478))
##### Fixed
- **breaking** AIX: Change the type of `BPF_ALIGNMENT` to `size_t` to match upstream and harmonize with other platforms. ([#​5373](https://github.com/rust-lang/libc/pull/5373))
- **breaking** Apple: change the type of `BPF_ALIGNMENT` to `size_t` to match upstream and harmonize with other platforms. ([#​5348](https://github.com/rust-lang/libc/pull/5348))
- Exclude non-required repository files from the published crate ([#​5312](https://github.com/rust-lang/libc/pull/5312))
- AIX: Correct the function signature in `fileops_t.fo_select` ([#​5380](https://github.com/rust-lang/libc/pull/5380))
- AIX: Fix the alignment of `file` ([#​5380](https://github.com/rust-lang/libc/pull/5380))
- Android: Add missing padding to `ucontext_t` ([#​5189](https://github.com/rust-lang/libc/pull/5189))
- Android: Fix the value of RISC-V `O_` flags ([#​5554](https://github.com/rust-lang/libc/pull/5554))
- Fuchsia: Correct `mcontext_t` and `ucontext_t` and make them usable on more platforms ([#​5127](https://github.com/rust-lang/libc/pull/5127))
- Fuchsia: Fix available fields in `glob_t` and `statvfs` ([#​5127](https://github.com/rust-lang/libc/pull/5127))
- Fuchsia: Fix the definition of `sigevent` and correct the layout of other `pthread.h` types ([#​5127](https://github.com/rust-lang/libc/pull/5127))
- Haiku: Correct the definition of `sem_t` ([#​5351](https://github.com/rust-lang/libc/pull/5351))
- Linux-GNU: Fix the padding field in `statvfs64` on 32-bit RISC-V ([#​5518](https://github.com/rust-lang/libc/pull/5518))
- Linux: Correct PowerPC64 speed symbols with elfv2 ([#​5342](https://github.com/rust-lang/libc/pull/5342))
- Linux: Fix syscall numbers on 32-bit RISC-V ([#​5455](https://github.com/rust-lang/libc/pull/5455))
- Musl riscv64: Fix the definition of `ipc_perm` ([#​5527](https://github.com/rust-lang/libc/pull/5527))
- Musl riscv64: Fix the name of the `uc_flags` field in `ucontext_t` ([#​5527](https://github.com/rust-lang/libc/pull/5527))
- NetBSD: Fix `WIFSTOPPED` ([#​5458](https://github.com/rust-lang/libc/pull/5458))
- Newlib: Update the `time_t` alias. This is a correction on Arm32 RTEMS ([#​5132](https://github.com/rust-lang/libc/pull/5132))
- NuttX: Correct `O_` open flags ([#​5414](https://github.com/rust-lang/libc/pull/5414))
- RTEMS: Correct `socket.h` definitions ([#​5313](https://github.com/rust-lang/libc/pull/5313))
- RTEMS: Correct the size of clock and storage type aliases ([#​5450](https://github.com/rust-lang/libc/pull/5450))
- Redox: Correct `signal.h` types ([#​5436](https://github.com/rust-lang/libc/pull/5436))
##### Changed
- The unstable cfg `libc_unstable_musl_v1_2_3` has 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](https://github.com/rust-lang/libc/pull/5376))
- AIX: Make function pointers in signatures `unsafe` ([#​5380](https://github.com/rust-lang/libc/pull/5380))
- Cygwin: Change `POSIX_SPAWN_*` flags to `c_short` ([#​5572](https://github.com/rust-lang/libc/pull/5572))
- Hermit: Make iovec fields public ([#​5460](https://github.com/rust-lang/libc/pull/5460))
- Improve the panic message for out-of-range fds in `FD_*` functions ([#​5528](https://github.com/rust-lang/libc/pull/5528))
- Musl riscv64: Fix the name of `__riscv_mc_q_ext_state.__reserved` and make it private ([#​5533](https://github.com/rust-lang/libc/pull/5533))
- Various: Make obsolete `stat` fields non-`pub` ([#​5542](https://github.com/rust-lang/libc/pull/5542))
- uClibc: No longer link to libutil ([#​5165](https://github.com/rust-lang/libc/pull/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.h` API on Apple mobile OSs ([e6bfb187513c](https://github.com/rust-lang/libc/commit/e6bfb187513c665c94683b9738a855e982173c2f))
- **breaking** Apple: Remove a large number of items from iOS, tvOS, watchOS, and visionOS that are only available on MacOS. ([#​5158](https://github.com/rust-lang/libc/pull/5158))
- **breaking** Apple: Remove the unsupported `exec*` and `fork` calls from tvOS and watchOS ([#​5158](https://github.com/rust-lang/libc/pull/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_iv` trait implementations. The have been deprecated for a long time because they allowed out-of-bounds reads via safe functions. ([444db4456f38](https://github.com/rust-lang/libc/commit/444db4456f3866519b7eacd35a8bb59484bb7bbf))
- **breaking** Remove most items that have been deprecated since before 0.2.100 ([#​5401](https://github.com/rust-lang/libc/pull/5401))
Other removed items:
- Dragonfly: Remove `INHERIT_ZERO` that does not exist upstream ([#​5587](https://github.com/rust-lang/libc/pull/5587))
- Musl riscv64: Remove GNU-gated `REG_*` definitions ([#​5527](https://github.com/rust-lang/libc/pull/5527))
- Musl riscv64: Remove non-esxistant `REG_NARGS` ([#​5527](https://github.com/rust-lang/libc/pull/5527))
A huge thank you to our GSoC student Adam Martinez ([@​dybucc](https://github.com/dybucc)) who did a
huge amount of the time64 work, as well as many of the platform fixes!
</details>
---
### 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 this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Mend Renovate CLI](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC40OC4xIiwidXBkYXRlZEluVmVyIjoiNDQuNDguMSIsInRhcmdldEJyYW5jaCI6Im1hc3RlciIsImxhYmVscyI6W119-->
renovateBot
changed title from chore(deps): update rust crate libc to v0.2.190 to chore(deps): update rust crate libc to v0.2.190 - autoclosed2026-10-04 11:12:30 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
This PR contains the following updates:
0.2.189→0.2.190Release Notes
rust-lang/libc (libc)
v0.2.190Compare Source
There is now a single config for enabling 64-bit
time_t:libc_unstable_time64. This can be setunconditionally; it opts in to 64-bit
time_ton the following platforms that use 32-bit bydefault:
musl v1.2.
Most other 32-bit platforms are either already using 64-bit
time_t, or are considered legacyand will not be gaining support from their upstream maintainers.
You can enable this using
RUSTFLAGS: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 itout and report any bugs you find!
Support
Added
We are slowly filling out the
Defaultimplementations, to reduce the need formem::zeroed()in user code:Defaultfor a number of structs, especially on Apple platforms (#5576)statvfsaDefaultimpl (#5583)Defaultto alinux/can.rsstructs (#5257)Other additions:
libc_unstable_time64cfg (#5411)pthread_gettid_np(#5359)RTLD_NEXT(#5323)NET_RT_DUMP2(#5442)posix_spawn_file_actions_add(f)chdir(_np)(#5558)BPF_WORDALIGN(#5320)lchmodandlchflagswhere supported (#5400)minheritand related constants (#4849)AT_RENAME_*andRENAME_*constants (#5560)renameat2(#5563)rt_msghdrandrt_metrics(#5367)libc_unstable_gnu_time_bits(#5242)environ(#5339)f_typefield tostatvfsandstatvfs64(#5434)STATX_*constants (#5412)SIGEV_THREAD_ID(#5375)*_SUPER_MAGICconstants (#5453)statxalways available (#5448)max_align_t(#5389)BCACHEFS_SUPER_MAGIC(#5516)ETH_P_LLDP(#5438)FUTEX_ROBUST_UNLOCKandFUTEX_ROBUST_LIST32(#5525)NLMSG_*helpers (#5321)siginfo_tand add more getter functions (#5345)SYS_futex_waitv(#5527)__errno(#5346)RTLD_NODELETEandRTLD_NOLOAD(#5377)getexecpath(#5465)sensors.h(#5510)HW_*sysctl constants (#5371)FILENAME_MAX(#5530)clock_settimeandpause(#5363)getrandombindings (#5333)group_req/group_source_reqandMCAST_*where supported (#5236)HOST_NAME_MAX(#5531)_PATH_BSHELLand_PATH_DEFPATHwhere available (#5449)SOCK_CLOEXEC(#5336)time_ton 32-bit platforms via cfg (#5261)Deprecated
_kernel_simple_lock(#5380)*_MIN/*_MAXin favor of e.g.c_int::MAX(#5404)fallocate64, which does not exist on the platform (#5242)glob64types and routines (#5242)syscall,mincore, andKERN_NSELCOLL, all of which have been removed upstream (87992e9895c2)tmpnam,tempnam(#5478)Fixed
BPF_ALIGNMENTtosize_tto match upstream and harmonize with other platforms. (#5373)BPF_ALIGNMENTtosize_tto match upstream and harmonize with other platforms. (#5348)fileops_t.fo_select(#5380)file(#5380)ucontext_t(#5189)O_flags (#5554)mcontext_tanducontext_tand make them usable on more platforms (#5127)glob_tandstatvfs(#5127)sigeventand correct the layout of otherpthread.htypes (#5127)sem_t(#5351)statvfs64on 32-bit RISC-V (#5518)ipc_perm(#5527)uc_flagsfield inucontext_t(#5527)WIFSTOPPED(#5458)time_talias. This is a correction on Arm32 RTEMS (#5132)O_open flags (#5414)socket.hdefinitions (#5313)signal.htypes (#5436)Changed
libc_unstable_musl_v1_2_3has been renamed to a more accuratelibc_unstable_musl_v1_2. The old version will continue to work for now, but will be removed in1-2 releases. (#5376)
unsafe(#5380)POSIX_SPAWN_*flags toc_short(#5572)FD_*functions (#5528)__riscv_mc_q_ext_state.__reservedand make it private (#5533)statfields non-pub(#5542)Removed
libcexposed 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.mach.hAPI on Apple mobile OSs (e6bfb187513c)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.
af_alg_ivtrait implementations. The have been deprecated for a long time because they allowed out-of-bounds reads via safe functions. (444db4456f38)Other removed items:
INHERIT_ZEROthat does not exist upstream (#5587)REG_*definitions (#5527)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!
Configuration
📅 Schedule: (UTC)
🚦 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 this update again.
This PR has been generated by Mend Renovate CLI.
chore(deps): update rust crate libc to v0.2.190to chore(deps): update rust crate libc to v0.2.190 - autoclosedPull request closed