Skip to content

Update Rust crate libc to v0.2.190 - #13

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/libc-0.x-lockfile
Open

renovate[bot] wants to merge 1 commit into
mainfrom
renovate/libc-0.x-lockfile

Conversation

@renovate

@renovate renovate Bot commented Jul 24, 2026 •

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Type Update Change
libc dependencies patch 0.2.186 → 0.2.190

Release Notes

rust-lang/libc (libc)

v0.2.190

Compare Source

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 Default for a number of structs, especially on Apple platforms (#​5576)
  • Linux, NetBSD: Give statvfs a Default impl (#​5583)
  • Linux: Add Default to a linux/can.rs structs (#​5257)

Other additions:

  • Expose the libc_unstable_time64 cfg (#​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 lchmod and lchflags where supported (#​5400)
  • BSD: Add minherit and related constants (#​4849)
  • Docs: Add more links to public headers and manual pages (#​5407), (#​5485)
  • Emscripten: Add epoll support (#​5427)
  • FreeBSD: Add AT_RENAME_* and RENAME_* constants (#​5560)
  • FreeBSD: Add renameat2 (#​5563)
  • FreeBSD: Add rt_msghdr and rt_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_type field to statvfs and statvfs64 (#​5434)
  • Linux-like: Add additional STATX_* constants (#​5412)
  • Linux-musl, Emscripten: Add SIGEV_THREAD_ID (#​5375)
  • Linux-musl: Add *_SUPER_MAGIC constants (#​5453)
  • Linux-musl: Make statx always 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_UNLOCK and FUTEX_ROBUST_LIST32 (#​5525)
  • Linux: Add NLMSG_* helpers (#​5321)
  • Linux: Update the definition of siginfo_t and add more getter functions (#​5345)
  • Musl riscv64: Add SYS_futex_waitv (#​5527)
  • Newlib: Add __errno (#​5346)
  • OpenBSD: Add RTLD_NODELETE and RTLD_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_settime and pause (#​5363)
  • Redox: Add getrandom bindings (#​5333)
  • Unix: Add RFC 3678 multicast group_req/group_source_req and MCAST_* where supported (#​5236)
  • Unix: Add HOST_NAME_MAX (#​5531)
  • Unix: Add _PATH_BSHELL and _PATH_DEFPATH where available (#​5449)
  • WASI: Add SOCK_CLOEXEC (#​5336)
  • WASI: Add locale category constants (#​5378)
  • WASI: Add more pthread APIs (#​5310)
  • uClibc: Support 64-bit time_t on 32-bit platforms via cfg (#​5261)
Deprecated
  • AIX: deprecate _kernel_simple_lock (#​5380)
  • Deprecate integer *_MIN/*_MAX in 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 glob64 types and routines (#​5242)
  • L4Re: deprecate LFS bindings (#​5173)
  • OpenBSD: Deprecate syscall, mincore, and KERN_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_ALIGNMENT to size_t to match upstream and harmonize with other platforms. (#​5373)
  • breaking Apple: change the type of BPF_ALIGNMENT to size_t to 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_t and ucontext_t and make them usable on more platforms (#​5127)
  • Fuchsia: Fix available fields in glob_t and statvfs (#​5127)
  • Fuchsia: Fix the definition of sigevent and correct the layout of other pthread.h types (#​5127)
  • Haiku: Correct the definition of sem_t (#​5351)
  • Linux-GNU: Fix the padding field in statvfs64 on 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_flags field in ucontext_t (#​5527)
  • NetBSD: Fix WIFSTOPPED (#​5458)
  • Newlib: Update the time_t alias. This is a correction on Arm32 RTEMS (#​5132)
  • NuttX: Correct O_ open flags (#​5414)
  • RTEMS: Correct socket.h definitions (#​5313)
  • RTEMS: Correct the size of clock and storage type aliases (#​5450)
  • Redox: Correct signal.h types (#​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)
  • AIX: Make function pointers in signatures unsafe (#​5380)
  • Cygwin: Change POSIX_SPAWN_* flags to c_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.__reserved and make it private (#​5533)
  • Various: Make obsolete stat fields 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.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)
  • 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

Compare Source

Added
  • Emscripten: Add pthread_sigmask, sigwait, sigwaitinfo, sigtimedwait, faccessat, and pthread_kill (#​5270)
  • Linux SPARC: Enable the clone3 syscall (#​4980)
  • Solarish: Add CLOCK_PROCESS_CPUTIME_ID and CLOCK_THREAD_CPUTIME_ID (#​5274)
Deprecated
  • Deprecate CLONE_INTO_CGROUP and CLONE_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_t definition under Arm (#​5245)
  • Windows: Add back link names for time-related symbols (#​5300)

v0.2.188

Compare Source

Changed

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

Compare Source

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-gnu targets now respect libc_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, and endpwent (#​5160)
  • Android: Add preadv2 and pwritev2 (#​5157)
  • Android: Add seccomp_notif* structures (#​5224)
  • Android: Add timer_[create, delete, getoverrun, gettime, settime] (#​5108)
  • Apple: Add PROC_PIDT_SHORTBSDINFO and proc_bsdshortinfo (#​5110)
  • Apple: Add SIOC* constants from sockio.h (#​5263)
  • Apple: Add _IOR, _IOW, _IOWR (#​5264)
  • Apple: Add bpf_program and bpf_insn (#​5235)
  • Apple: Add additional kqueue constants (#​5077)
  • Apple: Update vm_statistics64 with recently added fields (#​5253)
  • Apple: add IN6_IFF_* and SIOCGIFAFLAG_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_*, and dup3 (#​5116)
  • Emscripten: Add in6_pktinfo (#​5256)
  • FreeBSD: Add SOL_LOCAL (#​5185)
  • FreeBSD: Add DLT_* constants (#​5235)
  • FreeBSD: Add PROC_LOGSIGEXIT_* and PPROT_* (#​4657)
  • FreeBSD: Add SO_RERROR (#​5260)
  • FreeBSD: add IN6_IFF_*, in6_ifreq, and SIOCGIFAFLAG_IN6 (#​5239)
  • FreeBSD: add _IO* helpers from sys/ioccom.h (#​5239)
  • Glibc: Add PTHREAD_*_MUTEX_INITIALIZER_NP for 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, and fspick (#​5145)
  • Linux: Add fields to statx present since 6.16 (#​4621)
  • Linux: Add network entry API (#​5049)
  • Linux: add ifaddrmsg and rtattr (#​5234)
  • Linux: add sockaddr_iucv (#​5041)
  • MacOS: Add ENOTCAPABLE (#​4925)
  • Musl: Add renameat2 (#​5113)
  • NuttX: Add F_SETFD (#​5258)
  • NuttX: Add POLLRD* and POLLWR* constants (#​5258)
  • NuttX: Add SO_KEEPALIVE and TCP keepalive constants (#​5111)
  • NuttX: Add TCP_MAXSEG (#​5258)
  • NuttX: Add eventfd and EFD_* constants (#​5258)
  • NuttX: Add pipe2 (#​5258)
  • NuttX: Add strerror_r (#​5258)
  • NuttX: Add netinet structs 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 *at and dirent functions (#​5117)
  • Solarish: Add IP TTL and IPv6 Hop Limit consts (#​5089)
  • Solarish: Add port_alert and PORT_ALERT* constants (#​5203)
  • Solarish: add AI_CANONNAME (#​5085)
  • aarch64: Add SYS_sendfile and SYS_fadvise64 constants (#​5133)
Deprecated
  • Dragonfly: Deprecate compatibility aliases CPUCTL_RSMSR and UTX_DB_LASTLOG (#​5116)
Fixed
  • breaking NetBSD: Correct ts from *const timespec to *mut timespec in _lwp_park` (#​5169)
  • breaking Linux GNU: Change overflowing PTRACE_*ET_SYSCALL_USER_DISPATCH_CONFIG constants from u8 to c_uint (#​4936)
  • Fix the soundness bug in the representation of extern types (#​5021)
  • Cygwin: fix cpuset_t typo in CPU_ZERO (#​5098)
  • Dragonfly: ABI fixes including regex offsets, ifaddrs, pthread barriers, process sizing fields, and mcontext alignment (#​5116)
  • Dragonfly: Correct values of CPUCTL_CPUID*, EV_HUP, and EV_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]PARAMS with 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_MAX to 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_MAX and SW_CNT (#​5215)
  • MacOS: Add swapped_count to vm_statistics64 (#​4926)
  • Windows: Windows-GNU now respects libc_unstable_gnu_time_bits for 64-bit time_t config (#​5062)
Removed
  • Dragonfly: Remove FreeBSD-only Elf32_Lword, ip_mreq_source, and IP_ constants (#​5116)
  • Dragonfly: Remove private VM type bindings (#​5116)
  • Linux: Remove KERN_REALROOTDEV and VM_LAPTOP_MODE (#​5177)
  • VxWorks: Remove non-user-facing (kernel) API (#​5129)
Other
  • Print config information if LIBC_BUILD_VERBOSE is set (#​5272)
  • Annotate *LAST constants as potentially changing (#​5120)
  • Annotate *MAX constants as potentially changing (#​5122)
  • BSD: Annotate ELAST constants as potentially changing (#​5118)
  • FreeBSD: Annotate RAND_MAX as potentially changing (#​5119)
  • Linux, L4re: Annotate *NUM constants as potentially changing (#​5123)
  • QNX: Restructure to support new platforms (#​4984)
  • Unix: Annotate *COUNT constants 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_UNSTABLE env with libc_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 becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate
renovate Bot force-pushed the renovate/libc-0.x-lockfile branch from 1d42d28 to 43928f1 Compare August 15, 2026 03:42
@renovate renovate Bot changed the title chore(deps): update rust crate libc to v0.2.189 Update Rust crate libc to v0.2.189 Sep 1, 2026
@renovate
renovate Bot force-pushed the renovate/libc-0.x-lockfile branch from 43928f1 to 6035b45 Compare September 2, 2026 22:35
@renovate renovate Bot changed the title Update Rust crate libc to v0.2.189 chore(deps): update rust crate libc to v0.2.189 Sep 13, 2026
@renovate
renovate Bot force-pushed the renovate/libc-0.x-lockfile branch from 6035b45 to 0e4b365 Compare September 15, 2026 16:17
@renovate renovate Bot changed the title chore(deps): update rust crate libc to v0.2.189 Update Rust crate libc to v0.2.189 Sep 24, 2026
@renovate
renovate Bot force-pushed the renovate/libc-0.x-lockfile branch from 0e4b365 to a34ed99 Compare October 1, 2026 00:27
@renovate
renovate Bot force-pushed the renovate/libc-0.x-lockfile branch from a34ed99 to 7375aff Compare October 2, 2026 20:27
@renovate renovate Bot changed the title Update Rust crate libc to v0.2.189 Update Rust crate libc to v0.2.190 Oct 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants