NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #7 most downloaded on crates.io
Raw FFI bindings to platform libraries like libc.
Last release 5 days ago
02 Oct 2026
Ships fairly regularly
a new release about every 4 weeks
Some releases are documented
notes for 34 of the last 60 stable releases
9 versions withdrawn
withdrawn after publishing
12 years old
208 releases · first in 2015
The previous commit did not update Cargo.lock after bumping the version.
The previous commit did not update Cargo.lock after bumping the version.
Fixes: 9f19499 ("libc: Release 1.0.0-alpha.5")
Nothing published for this version
Nothing published for this version
One column per quarter.
Nothing published for this version
Nothing published for this version
AIX: deprecate _kernel_simple_lock
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:
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!
We are slowly filling out the Default implementations, to reduce the need for mem::zeroed() in user code:
Default for a number of structs, especially on Apple platforms (#5576)statvfs a Default impl (#5583)Default to a linux/can.rs structs (#5257)Other additions:
libc_unstable_time64 cfg (#5411)pthread_gettid_np (#5359)RTLD_NEXT (#5323)NET_RT_DUMP2 (#5442)posix_spawn_file_actions_add(f)chdir(_np) (#5558)BPF_WORDALIGN (#5320)lchmod and lchflags where supported (#5400)minherit and related constants (#4849)AT_RENAME_* and RENAME_* constants (#5560)renameat2 (#5563)rt_msghdr and rt_metrics (#5367)libc_unstable_gnu_time_bits (#5242)environ (#5339)f_type field to statvfs and statvfs64 (#5434)STATX_* constants (#5412)SIGEV_THREAD_ID (#5375)*_SUPER_MAGIC constants (#5453)statx always available (#5448)max_align_t (#5389)BCACHEFS_SUPER_MAGIC (#5516)ETH_P_LLDP (#5438)FUTEX_ROBUST_UNLOCK and FUTEX_ROBUST_LIST32 (#5525)NLMSG_* helpers (#5321)siginfo_t and add more getter functions (#5345)SYS_futex_waitv (#5527)__errno (#5346)RTLD_NODELETE and RTLD_NOLOAD (#5377)getexecpath (#5465)sensors.h (#5510)HW_* sysctl constants (#5371)FILENAME_MAX (#5530)clock_settime and pause (#5363)getrandom bindings (#5333)group_req/group_source_req and MCAST_* where supported (#5236)HOST_NAME_MAX (#5531)_PATH_BSHELL and _PATH_DEFPATH where available (#5449)SOCK_CLOEXEC (#5336)time_t on 32-bit platforms via cfg (#5261)_kernel_simple_lock (#5380)*_MIN/*_MAX in favor of e.g. c_int::MAX (#5404)fallocate64, which does not exist on the platform (#5242)glob64 types and routines (#5242)syscall, mincore, and KERN_NSELCOLL, all of which have been removed upstream (87992e9895c2)tmpnam, tempnam (#5478)BPF_ALIGNMENT to size_t to match upstream and harmonize with other platforms. (#5373)BPF_ALIGNMENT to size_t to match upstream and harmonize with other platforms. (#5348)fileops_t.fo_select (#5380)file (#5380)ucontext_t (#5189)O_ flags (#5554)mcontext_t and ucontext_t and make them usable on more platforms (#5127)glob_t and statvfs (#5127)sigevent and correct the layout of other pthread.h types (#5127)sem_t (#5351)statvfs64 on 32-bit RISC-V (#5518)ipc_perm (#5527)uc_flags field in ucontext_t (#5527)WIFSTOPPED (#5458)time_t alias. This is a correction on Arm32 RTEMS (#5132)O_ open flags (#5414)socket.h definitions (#5313)signal.h types (#5436)libc_unstable_musl_v1_2_3 has been renamed to a more accuratelibc_unstable_musl_v1_2. The old version will continue to work for now, but will be removed inunsafe (#5380)POSIX_SPAWN_* flags to c_short (#5572)FD_* functions (#5528)__riscv_mc_q_ext_state.__reserved and make it private (#5533)stat fields non-pub (#5542)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.
mach.h API on Apple mobile OSs (e6bfb187513c)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.
af_alg_iv trait implementations. The have been deprecated for a long time because they allowed out-of-bounds reads via safe functions. (444db4456f38)Other removed items:
INHERIT_ZERO that 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!
Deprecate CLONE_INTO_CGROUP and CLONE_CLEAR_SIGHAND . These overflow their types and will be changed to a larger size in the future.
pthread_sigmask, sigwait, sigwaitinfo, sigtimedwait, faccessat, and pthread_kill (#5270)clone3 syscall (#4980)CLOCK_PROCESS_CPUTIME_ID and CLOCK_THREAD_CPUTIME_ID (#5274)CLONE_INTO_CGROUP and CLONE_CLEAR_SIGHAND. These overflow their types and will be changed to a larger size in the future. (8c6e6710458d)wchar_t definition under Arm (#5245)time-related symbols (#5300)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 cra
Send and Sync for DIR (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.
Better document breaking change policy and recommended usage
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.
aarch64-unknown-linux-pauthtest (#5065)POSIX_SPAWN_* constants (#5104)getpwent, setpwent, and endpwent (#5160)preadv2 and pwritev2 (#5157)seccomp_notif* structures (#5224)timer_[create, delete, getoverrun, gettime, settime] (#5108)PROC_PIDT_SHORTBSDINFO and proc_bsdshortinfo (#5110)SIOC* constants from sockio.h (#5263)_IOR, _IOW, _IOWR (#5264)bpf_program and bpf_insn (#5235)kqueue constants (#5077)vm_statistics64 with recently added fields (#5253)IN6_IFF_* and SIOCGIFAFLAG_IN6 (#5239)O_*, POSIX_FADV_*, NI*, and a few other missing constants (#5116)fdatasync, dlvsym, reallocarray, qsort_r, pthread_*affinity_np, ftok, extattr_*, and dup3 (#5116)in6_pktinfo (#5256)DLT_* constants (#5235)PROC_LOGSIGEXIT_* and PPROT_* (#4657)SO_RERROR (#5260)IN6_IFF_*, in6_ifreq, and SIOCGIFAFLAG_IN6 (#5239)_IO* helpers from sys/ioccom.h (#5239)PTHREAD_*_MUTEX_INITIALIZER_NP for riscv64 (#5094)struct tcp_info (#5215)OPEN_TREE_NAMESPACE (#5145)SECCOMP_IOCTL_* constants (#5224)SO_DETACH_REUSEPORT_BPF (#5081)futex_waitv (#5125)fsopen, fsconfig, fsmount, and fspick (#5145)statx present since 6.16 (#4621)ifaddrmsg and rtattr (#5234)sockaddr_iucv (#5041)ENOTCAPABLE (#4925)renameat2 (#5113)F_SETFD (#5258)POLLRD* and POLLWR* constants (#5258)SO_KEEPALIVE and TCP keepalive constants (#5111)TCP_MAXSEG (#5258)eventfd and EFD_* constants (#5258)pipe2 (#5258)strerror_r (#5258)netinet structs and constants (#5258)*at and dirent functions (#5117)port_alert and PORT_ALERT* constants (#5203)CPUCTL_RSMSR and UTX_DB_LASTLOG (#5116)ts from *const timespec to *mut timespec in _lwp_park` (#5169)PTRACE_*ET_SYSCALL_USER_DISPATCH_CONFIG constants from u8 to c_uint (#4936)cpuset_t typo in CPU_ZERO (#5098)ifaddrs, pthread barriers, process sizing fields, and mcontext alignment (#5116)CPUCTL_CPUID*, EV_HUP, and EV_SYSFLAGS (#5116)POLLOUT (#5090)EPIOC[GS]PARAMS with nonstandard _IOC (#5188)unsafe (#3727)__getmntinfo13 (#5251)PTHREAD_MUTEX_INITIALIZER (#5241)-> c_void (#5240)AIO_LISTIO_MAX to account for changes in macOS 27 (#5253)MS_NOUSER (#5215)SW_MAX and SW_CNT (#5215)swapped_count to vm_statistics64 (#4926)libc_unstable_gnu_time_bits for 64-bit time_t config (#5062)Elf32_Lword, ip_mreq_source, and IP_ constants (#5116)KERN_REALROOTDEV and VM_LAPTOP_MODE (#5177)LIBC_BUILD_VERBOSE is set (#5272)*LAST constants as potentially changing (#5120)*MAX constants as potentially changing (#5122)ELAST constants as potentially changing (#5118)RAND_MAX as potentially changing (#5119)*NUM constants as potentially changing (#5123)*COUNT constants as potentially changing (#5121)time_t (#5046)RUST_LIBC_UNSTABLE_LINUX_TIME_BITS64 (#5197)RUST_LIBC_UNSTABLE env with libc_unstable* cfg (#4977)Apple: Add KEVENT_FLAG_* constants
EspIDF: Add espidf_picolibc cfg for picolibc O_* flag values
The remaining fixed-width integer aliases, __uint128_t , __uint128 , __int128_t , and __int128 , have been deprecated. Use i128 and u128 instead.
This release increases the MSRV of libc to 1.65. With this update, you can now always use the
core::ffi::c_* types with libc definitions, since libc has been changed to reexport from
core rather than redefining them. (This usually worked before but had edge cases.)
(#4972)
IP_MINTTL to bsd (#5026)TIOCM_DSR (#5031)xfile structe and file descriptor types (#5002)struct ethhdr (#4239)struct ifinfomsg (#5012)max_align_t for riscv64 (#5029)CLOCK_ constants (#5020)_SC_HOST_NAME_MAX (#5004)flock and F_*LCK constants (#4043)_SC_* sysconf constants (#5023)The remaining fixed-width integer aliases, __uint128_t, __uint128, __int128_t, and __int128,
have been deprecated. Use i128 and u128 instead. (#4343)
DT_* constants (#5034)RTLD_NOLOAD, some TCP constants (#5025)Padding::new(<zeroed>) rather than Padding::uninit() (#5036)Linux: Add name_to_handle_at and open_by_handle_at
SOMAXCONN (#4993)name_to_handle_at and open_by_handle_at (#4988)kinfo_file, kinfo_pcb, and related constants (#4985)kinfo_file and related constants (#4991)Default for timeval and timespec (#4976)Added Android, Linux: Add tgkill ( #4970 ) Redox: Add RENAME_NOREPLACE ( #4968 ) Redox: Add renameat2
Redox: Add makedev, major, and minor
MADV_ZERO (#4924)makedev, major, and minor (#4928)PTRACE_SET_SYSCALL_INFO (#4933)max_align_t (#4927)_CS_PATH (#4956)ppoll (#4957)tc{g,s}etattr (#4938)cf{g,s}et{i,o}speed on mips{32,64}r6 (#4938)ptrace_thread_state (#4947)PTHREAD_MUTEX_{NORMAL, RECURSIVE} (#4943)QNX: Add missing BPF and ifreq structures
CMSG_NXTHDR (#4903)CMSG_NXTHDR (#4903)mcontext type definitions (#4886)__SIZEOF_PTHREAD_COND_T on non-L4Re uclibc (#4915)netlink module to resolve build errors (#4915)With this release, we now have _unstable_ support for 64-bit time_t on 32-bit platforms with both Musl and Glibc. Testing is appreciated!
With this release, we now have unstable support for 64-bit time_t on 32-bit
platforms with both Musl and Glibc. Testing is appreciated!
For now, these can be enabled by setting environment variables during build:
RUST_LIBC_UNSTABLE_MUSL_V1_2_3=1
RUST_LIBC_UNSTABLE_GNU_TIME_BITS=64
Note that the exact configuration will change in the future. Setting the
MUSL_V1_2_3 variable also enables some newer API unrelated to time_t.
XCASE (#4847)NAME_MAX (#4888)AT_EXECVE_CHECK (#4422)SUN_LEN macro (#4269)getitimer and setitimer (#4890)pthread_tryjoin_n and pthread_timedjoin_np (#4887)time_t on 32-bit platforms (#4463)LINK_STATE_* definitions from sys/net/if.h (#4751)cf{g,s}et{i,o}speed (#4882)pthread (#4479)CPU_SETSIZE on musl 1.2+ (#4865)stat/stat64 (#4463)SIGSTKSZ/MINSIGSTKSZ (#4884)PT_{GET,SET}FPREGS, _REG_TIPDR, and _REG_{LR,SP} (#4899)if_msghdr alignment (#4902)siginfo_t layout on 32-bit platforms (#4904)pthread_spin_t to allow arch redefinition. (#4899)pthread struct fields private (#4876)Padding type (#4862)Cygwin: Add missing utmp/x.h, grp.h, and stdio.h interfaces
issetugid (#4744)__psw_t/fprefset_t/*context_t (#4726)AT_HWCAP{3,4} (#4734)eventfd (#4830)unistd.h (#4811)cfmakeraw (#4704)cfsetspeed (#4704)getresgid and getresuid (#4752)setresgid and setresuid (#4752)select.h, stat.h, poll.h, ttycom.h, utsname.h, resource.h, mman.h, udp.h, in.h, in6.h, if.h, fnmatch.h, and sioLibCommon.h (#4781)TIOCREMOTE (#4764)Note that there were a large number of fixes on NetBSD for this libc release, some of which include minor breakage.
EWOULDBLOCK to make it an alias of EAGAIN (#4790)unnecessary_transmutes warnings (#4780)SF_SETTABLE (#4764)mcontext_t.mc_fpregs (#)gethostname (#4773)NFT_MSG_MAX (#4761)repr(align(8)) for canxl_frame (#4760)eventfd argument names match OS docs/headers (#4830)ipc_perm, split from OpenBSD as ipc.rs (#4782)kinfo_vmentry.kve_path (#)uucred.cr_ngroups from int to short (#4782)kevent.udata (#4782)mcontext_t.__fpregs (#4782)PT_SUSPEND (#4782)sockaddr_dl.sdl_data from 12 to 24 (#4782)if_.rs, fix the definition of ifreq (#4782)time.rs, fix the values of CLOCK_*_CPUTIME_ID (#4782)timex.rs (#4782)types.rs, correct the definition of lwpid_t (#4782)utmp_.rs, correct the definition of lastlog (#4782)utmpx_.rs, correct utmpx definitions (#4782)_cpuset an extern type (#4782)mcontext types (#4782)pid_t (#4825)__wasilibc_register_preopened_fd (#4837)thread_local (#3653)ucontext_t and unskip its tests (#4760)L_tmpnam and TMP_MAX to the UCRT value (#4566)SIGSTKFLT (#4749)statvfs.f_spare non-public (#4782)*_MAXID constants and AT_SUN_LDPGSIZE (#4782)IFF_NOTRAILERS (#4782)vm_size_t (#4782)Apple: Add TIOCGETA, TIOCSETA, TIOCSETAW, TIOCSETAF constants
TIOCGETA, TIOCSETA, TIOCSETAW, TIOCSETAF constants (#4736)pthread_cond_timedwait_relative_np (#4719)_CS_PATH constant (#4738)SIGEMT for mips* and sparc* architectures (#4730)elf_aux_info (#4729)wcsnlen (#4721)Apple: Correct the deprecated attribute for iconv (`a97a0b53`)
rustc since 1.78. (#2406)Debug is now always implemented, rather than being gated behind the extra_traits feature. (#4624)_KERNEL macro. (#4607)st_fileref to struct stat (#4642)accept4 POSIX call (#4586)EM_RISCV (#4659)MS_NOSYMFOLLOW (#4389)backtrace_symbols(_fd) (#4668)SOL_PACKET optnames (#4669)SYS_mseal (#4549)__errno (#4687)dirfd, VDISABLE, and resource consts (#4660)resource.h, fcntl.h constants (#4666)strftime and mkostemp[s] (#4629)qsort_r (Unix), and qsort(_s) (Windows) (#4677)dlvsym for Linux-gnu, FreeBSD, and NetBSD (#4671)sigqueue (#4620)kinfo_proc as non-exhaustive (#4553)readdir_r (#4694)epoll_event is packed (#4639)ctest with the much more reliable new implementation (#4655 and many related PRs)getgrnam_r ([#4656](https://github.com/rust-lang/libc/pull/4656P_IDLEPROC to FreeBSD 15 (#4640)mcontext_t::mc_tlsbase to FreeBSD 15 (#4640)mcontext_t.mc_tlsbase (#4703)statfs[64] (#4549)fpreg_t a union (#4549)gid_t and uid_t (#4689)MAP_FIXED (#4684)deprecated attribute for iconv (a97a0b53)TIOCMGDTRWAIT and TIOCMSDTRWAIT (#4685)JAIL_{GET,SET}_MASK, _MC_FLAG_MASK (#4691)AIX: Add struct ld_info and friends
getpeereid (#4524)struct ld_info and friends (#4578)struct winsize (#4577)CLONE_CLEAR_SIGHAND and CLONE_INTO_CGROUP (#4502)prctl constants (#4531)mcontext_t.mc_tlsbase (#4503)kinfo_proc.ki_uerrmsg (#4552)in_conninfo (#4482)xinpgen and related types (#4482)xktls_session (#4482)libbsd (#4221)SECBIT_* (#4480)ioctl request generator macros (#4460)ptsname_r (#4608)strftime* (#4453)EXEC_RESTRICT_* and EXEC_DENY_* (#4545)const to signatures to be consistent with other platforms (#4563)struct statvfs.f_fsid (#4576)ioctl request argument (#4582)stat{,64}.st_*tim (#4597)errno values (#4507)target_os -> target_arch check (#4550)xktls_session_onedir.ifnet (#4552)nlink_t (#4509)stack_t (#4528)SI_TIMER, SI_MESGQ and SI_ASYNCIO definitions (#4529)si_errno and si_code in siginfo_t (#4530)statfs (#4527)fanotify_event_metadata (#4510)enum fae_action to be #[repr(C)] (#60a8cfd5)char -> c_char (eaab4fc3)termios definitions (#4518)EDEADLK (#4517)NCCS (#4513)MAP_LOCKED and MAP_NORESERVE (#4516)shmid_ds (#4519)MAP_32BIT is only defined on x86 on non-x86 architectures (#4511)Linux: Make pidfd_info fields pub
AIX: Add an AIX triple to Cargo.toml for doc
SO_SPLICE socket option support for FreeBSD >= 14.2 (#4451)_TIME_BITS=64 (#4433)nsfs ioctls (#4436)prctls (#4400)linux/cn_proc.h and linux/connector.h (#4434)pwritev2 and preadv2 (#4452)MADV_SOFT_OFFLINE constant (#4448)struct tcp_info (#4443)arc4random and arc4random_buf (#4464)MADV_SOFT_OFFLINE definition (#4447)time.h functions (#4427)SA_ constants. (#4426)CMSG_ALIGN, CMSG_LEN, and CMSG_SPACE const functions (#4441)FreeBSD: Deprecate TCP_PCAP_OUT and TCP_PCAP_IN
getauxval for 32-bit targets (#4338)if_tun.h ioctls (#4379)SO_BINDTOIFINDEX (#4391)posix_spawn_file_actions_add[f]chdir[_np] (#4387)filedesc and fdescenttbl (#4327)AF_UNSPEC (#4344)AF_VSOCK (#4344)timerfd APIs (#4333)_IO, _IOW, _IOR, _IOWR to the exported API (#4325)tcp_info to uClibc bindings (#4347)input-event-codes.h (#4326)seccomp.h (#4330)ptrace_sud_config and related PTRACE_*ET_SYSCALL_USER_DISPATCH_CONFIG. (#4386)pthread_attr_setstack (#4349)utmpx API (#4332)getrandom on all platforms (#4346)io-sock (#4169)sys/socket.h and sys/uio.h definitions (#4388)O_DIRECT and SIGINFO (#4348)secure_getenv (#4342)d_type member to dirent (#4352)TCP_PCAP_OUT and TCP_PCAP_IN (#4381)statfs (#4324)AF_INET = 3 (#4344)SA_ONSTACK on RISC-V-32 (#4335)waitpid parameter name (#4334)O_FSYNC on RISC-V-32 (use O_SYNC instead) (#4335)RTLD_DEEPBIND on RISC-V-32 (#4335)MFD_EXEC and MFD_NOEXEC_SEAL on sparc64" (#)$PWD instead of $(pwd) in run-docker (#4345)openpty and forkpty polyfills to Illumos, replace Solaris implementation with bindings (#4329)Linux: Deprecate obsolete packet filter interfaces
if_nameindex/if_freenameindex support (#4247)devname (#4285)spawn.h interfaces available on all FreeBSD-like systems (#4294)AF_XDP structs for all Linux environments (#4163)F_SEAL_EXEC (#4316)SO_PREFER_BUSY_POLL and SO_BUSY_POLL_BUDGET (#3917)devmem structs (#4299)SO_DEVMEM_DONTNEED (#4299)closefrom (#4290)pw_passwd field to passwd (#4222)IP_BOUND_IF and IPV6_BOUND_IF (#4287)wasm32-wali-linux-musl target (#4244)sa_sigaction instead of a union (#4250)msqid_ds.__msg_cbytes public (#4301)major, minor, makedev into const fn (#4208)stat::st_size signed (#4298)SI_TIMER, SI_MESGQ, SI_ASYNCIO (#4292)tm_zone and d_name fields to use c_char type (#4222)c_int (#4304)--no-self-update to rustup update (#4306)i586-pc-windows-msvc target (#4311)check_cfg job (#4322)ctest problems (#4311)pthread_set_name_np (#4251)Linux: deprecate kernel modules syscalls
setdomainname and getdomainname https://github.com/rust-lang/libc/pull/4212evdev structures https://github.com/rust-lang/libc/pull/3756st_filerev field to stat32 (#4254)SI_*`` and TRAP_*`` signal codes https://github.com/rust-lang/libc/pull/4225RUST_LIBC_UNSTABLE_LINUX_TIME_BITS64. https://github.com/rust-lang/libc/pull/4148WEXITSTATUS https://github.com/rust-lang/libc/pull/4213getmntinfo (#4265time_t https://github.com/rust-lang/libc/pull/426FreeBSD: add more socket TCP stack constants
sockaddr_vm definition https://github.com/rust-lang/libc/pull/4194Breaking: rust-lang/rust#132975 corrected the signedness of core::ffi::c_char on various Tier 2 and Tier 3 platforms (mostly Arm and RISC-V) to match Clang. This release contains the corresponding changes to libc, including the following specific pull requests:
c_char with a reexport https://github.com/rust-lang/libc/pull/4195c_char on various targets https://github.com/rust-lang/libc/pull/4199c_char configuration from rust-lang/rust https://github.com/rust-lang/libc/pull/4198c_void in target-specific code https://github.com/rust-lang/libc/pull/4200FreeBSD: Deprecate the CAP_UNUSED* and CAP_ALL* constants
IFA_* constants available on all Linux targets https://github.com/rust-lang/libc/pull/4185MAP_DROPPABLE https://github.com/rust-lang/libc/pull/4173SIGRTMIN and SIGRTMAX https://github.com/rust-lang/libc/pull/4171memccpy and mempcpy GNU extension <https://github.com/rust-lang/libc/pull/4186.Debug implementation for unions opaque (#4176)unpredictable_function_pointer_comparisons lint where needed https://github.com/rust-lang/libc/pull/4177Solarish: add st_fstype to stat
st_fstype to stat https://github.com/rust-lang/libc/pull/4145intptr_t and uintptr_t (#4161)rustc-dep-of-std https://github.com/rust-lang/libc/pull/4158clockid_t static variables (#4157)unused_qualificationshttps://github.com/rust-lang/libc/pull/4132wasm32-wasi https://github.com/rust-lang/libc/pull/4157This release resolves two cases of unintentional breakage from the previous release:
Apple: deprecate mach_task_self
mkostemp, mkostemps https://github.com/rust-lang/libc/pull/3601in6_ifreq https://github.com/rust-lang/libc/pull/3617sysctl net types https://github.com/rust-lang/libc/pull/4022 (before release: remove if_family_id (#4137))kcmp call support https://github.com/rust-lang/libc/pull/3746MAP_32BIT and MAP_EXCL https://github.com/rust-lang/libc/pull/4127domainname field to utsname (#4089)f_flags to struct statfs for arm, mips, powerpc and x86 https://github.com/rust-lang/libc/pull/3663malloc_stats https://github.com/rust-lang/libc/pull/3596ptp_* structs https://github.com/rust-lang/libc/pull/4113ptp_clock_caps https://github.com/rust-lang/libc/pull/4128ptp_pin_function and most PTP_ constants https://github.com/rust-lang/libc/pull/4114mount_setattr syscall https://github.com/rust-lang/libc/pull/4046len8_dlc field of can_frame https://github.com/rust-lang/libc/pull/3357utmpx API https://github.com/rust-lang/libc/pull/3213mcontext-related data for RISCV64 https://github.com/rust-lang/libc/pull/3468netinet constants https://github.com/rust-lang/libc/pull/3586)_POSIX_VDISABLE (#4103)const extern fn macro works https://github.com/rust-lang/libc/pull/4134std https://github.com/rust-lang/libc/pull/3616htonl, htons, ntohl, ntohs https://github.com/rust-lang/libc/pull/3669aligned_alloc https://github.com/rust-lang/libc/pull/3843aligned_realloc https://github.com/rust-lang/libc/pull/3592MAP_HASSEMAPHORE name (#4127)SA_* mismatched types (#3211)Elf{32,64}_Relr-related tests https://github.com/rust-lang/libc/pull/3647loongarch64-linux-muslriscv64gc-unknown-freebsd https://github.com/rust-lang/libc/pull/4129iconv_open https://github.com/rust-lang/libc/commit/25e022a22eca3634166ef472b748c297e60fcf7fmach_task_self https://github.com/rust-lang/libc/pull/4095mach deprecation notices for things that were removed in main https://github.com/rust-lang/libc/pull/4097f! macro to be more flexible https://github.com/rust-lang/libc/pull/4107libc_align conditional https://github.com/rust-lang/libc/commit/b5b553d0ee7de0d4781432a9a9a0a6445dd7f34flibc_cfg_target_vendor conditional https://github.com/rust-lang/libc/pull/4060libc_const_size_of conditional https://github.com/rust-lang/libc/commit/5a43dd2754366f99b3a83881b30246ce0e51833clibc_core_cvoid conditional https://github.com/rust-lang/libc/pull/4060libc_int128 conditional https://github.com/rust-lang/libc/pull/4060libc_non_exhaustive conditional https://github.com/rust-lang/libc/pull/4060libc_packedN conditional https://github.com/rust-lang/libc/pull/4060libc_priv_mod_use conditional https://github.com/rust-lang/libc/commit/19c59376d11b015009fb9b04f233a30a1bf50a91libc_union conditional https://github.com/rust-lang/libc/commit/b9e4d8012f612dfe24147da3e69522763f92b6e3long_array conditional https://github.com/rust-lang/libc/pull/4096ptr_addr_of conditional https://github.com/rust-lang/libc/pull/4065struct_formatter https://github.com/rust-lang/libc/pull/4074siginfo_t (#3261)fanotify_event_info_fid to FAM-exempt types https://github.com/rust-lang/libc/pull/4038loongarch64-unknown-linux-musl https://github.com/rust-lang/libc/pull/4092aarch64-apple-darwin not a nightly-only target https://github.com/rust-lang/libc/pull/4068libc_const_extern_fn conditional https://github.com/rust-lang/libc/commit/674cc1f47f605038ef1aa2cce8e8bc9dac128276libc_underscore_const_names conditional https://github.com/rust-lang/libc/commit/f0febd5e2e50b38e05259d3afad3c9783711bcf0git-blame-ignore-revs file https://github.com/rust-lang/libc/pull/4107ATF_* constants for OpenBSD https://github.com/rust-lang/libc/pull/4088This release increases the MSRV of libc to 1.63.
This release increases the MSRV of libc to 1.63.
FreeBSD: add TCP_FUNCTION_BLK and TCP_FUNCTION_ALIAS
dlopen flags https://github.com/rust-lang/libc/pull/4044TCP_FUNCTION_BLK and TCP_FUNCTION_ALIAS https://github.com/rust-lang/libc/pull/4047confstr https://github.com/rust-lang/libc/pull/3612aio https://github.com/rust-lang/libc/pull/4033arc4random* https://github.com/rust-lang/libc/pull/3944ssize_t = isize https://github.com/rust-lang/libc/pull/4029confstr and ucontext_t https://github.com/rust-lang/libc/pull/4035i686-unknown-freebsd https://github.com/rust-lang/libc/pull/3997sort do not depend on locale https://github.com/rust-lang/libc/pull/4026rust-version in Cargo.toml https://github.com/rust-lang/libc/pull/4041Android: fix the alignment of uc_mcontext on arm64
uc_mcontext on arm64 https://github.com/rust-lang/libc/pull/3894host_cpu_load_info https://github.com/rust-lang/libc/pull/3916CLOSE_RANGE_CLOEXEC flaghttps://github.com/rust-lang/libc/pull/3996__gregset_t https://github.com/rust-lang/libc/pull/3995ucontext_t and mcontext_t available on all architectures https://github.com/rust-lang/libc/pull/3848getentropy https://github.com/rust-lang/libc/pull/3991syncfs https://github.com/rust-lang/libc/pull/3990ioctl flags https://github.com/rust-lang/libc/pull/3960pthread_[get/set]name_np https://github.com/rust-lang/libc/pull/4003arc4random_buf https://github.com/rust-lang/libc/pull/3989-lc https://github.com/rust-lang/libc/pull/4002st_fsid field to st_dev https://github.com/rust-lang/libc/pull/3785utsname https://github.com/rust-lang/libc/pull/3992FNM_CASEFOLD definition https://github.com/rust-lang/libc/pull/4004extern crate usage https://github.com/rust-lang/libc/pull/3897mode_t constants to octal https://github.com/rust-lang/libc/pull/3634wasm32-wasi target that has been deleted upstream https://github.com/rust-lang/libc/pull/4013OpenBSD: fix FNM_PATHNAME and FNM_NOESCAPE values
FNM_PATHNAME and FNM_NOESCAPE values https://github.com/rust-lang/libc/pull/3983Android: add PR_GET_NAME and PR_SET_NAME
PR_GET_NAME and PR_SET_NAME https://github.com/rust-lang/libc/pull/3941F_TRANSFEREXTENTS https://github.com/rust-lang/libc/pull/3925mach_error_string https://github.com/rust-lang/libc/pull/3913pthread APIs https://github.com/rust-lang/libc/pull/3846LOCAL_PEERTOKEN socket option https://github.com/rust-lang/libc/pull/3929RTF_*, RTA_*, RTAX_*, and RTM_* definitions https://github.com/rust-lang/libc/pull/3714AT_EACCESS https://github.com/rust-lang/libc/pull/3911getgrgid, getgrnam, getgrnam_r and getgrgid_r https://github.com/rust-lang/libc/pull/3912getpwnam_r and getpwuid_r https://github.com/rust-lang/libc/pull/3906POLLRDHUP https://github.com/rust-lang/libc/pull/3936arc4random https://github.com/rust-lang/libc/pull/3945ptsname_r https://github.com/rust-lang/libc/pull/3867fanotify interfaces https://github.com/rust-lang/libc/pull/3695tcp_info https://github.com/rust-lang/libc/pull/3480iopl and ioperm https://github.com/rust-lang/libc/pull/3720posix_spawn chdir functions https://github.com/rust-lang/libc/pull/3949utmpx.h constants https://github.com/rust-lang/libc/pull/3908sysctlnametomib, CLOCK_THREAD_CPUTIME_ID and CLOCK_PROCESS_CPUTIME_ID https://github.com/rust-lang/libc/pull/3927getentropy https://github.com/rust-lang/libc/pull/3973POLLRDHUP, POSIX_FADV_*, O_RSYNC, and posix_fallocate https://github.com/rust-lang/libc/pull/3936fnmatch.h https://github.com/rust-lang/libc/pull/3937ino_t to be c_ulonglong https://github.com/rust-lang/libc/pull/3919struct stat on FreeBSD 12+ https://github.com/rust-lang/libc/pull/3946windows-sys https://github.com/rust-lang/libc/pull/3915Android: add more AT_* constants in
AT_* constants in https://github.com/rust-lang/libc/pull/3779NOTE_* constants in https://github.com/rust-lang/libc/pull/3883__timeval for 64-bit support in https://github.com/rust-lang/libc/pull/3786epoll_pwait2 in https://github.com/rust-lang/libc/pull/3868mq_notify in https://github.com/rust-lang/libc/pull/3849NFT_CT_* constants in https://github.com/rust-lang/libc/pull/3844fchmodat2 syscall in https://github.com/rust-lang/libc/pull/3588mseal syscall in https://github.com/rust-lang/libc/pull/3798sendmmsg and recvmmsg in https://github.com/rust-lang/libc/pull/3831IN6ADDR_ANY_INIT and IN6ADDR_LOOPBACK_INIT in https://github.com/rust-lang/libc/pull/3693S_ISVTX in https://github.com/rust-lang/libc/pull/3768vxCpuLib and taskLib functions https://github.com/rust-lang/libc/pull/3861std::net support in https://github.com/rust-lang/libc/pull/3892clippy-driver is used https://github.com/rust-lang/libc/pull/3893ioctl APIs in https://github.com/rust-lang/libc/pull/3722WASI: fix missing Iterator with rustc-dep-of-std in
Iterator with rustc-dep-of-std in https://github.com/rust-lang/libc/pull/3856#event-13924913068Apple: add _NSGetArgv, _NSGetArgc and _NSGetProgname in
_NSGetArgv, _NSGetArgc and _NSGetProgname in https://github.com/rust-lang/libc/pull/3702RUSTC_WRAPPER support in https://github.com/rust-lang/libc/pull/3845execvpe support from 14.1 release in https://github.com/rust-lang/libc/pull/3745SO_BINDTOIFINDEXklogctl in https://github.com/rust-lang/libc/pull/3777fcntl OFD commands in https://github.com/rust-lang/libc/pull/3563_lwp_park in https://github.com/rust-lang/libc/pull/3721pthread_equal in https://github.com/rust-lang/libc/pull/3773select, FD_SET, FD_ZERO, FD_ISSET in https://github.com/rust-lang/libc/pull/3681O_* constants in https://github.com/rust-lang/libc/pull/3841rustc_dep_of_std is set in https://github.com/rust-lang/libc/pull/3723Apple: add F_ALLOCATEPERSIST in
F_ALLOCATEPERSIST in https://github.com/rust-lang/libc/pull/3712os_sync_wait_on_address and related definitions in https://github.com/rust-lang/libc/pull/3769IPV6_DONTFRAG to all BSD targets in https://github.com/rust-lang/libc/pull/3716IP_RECVTTL/IPV6_RECVHOPLIMIT in https://github.com/rust-lang/libc/pull/3751XATTR_CREATE, XATTR_REPLACE in https://github.com/rust-lang/libc/pull/3739confstr API and _CS_* in https://github.com/rust-lang/libc/pull/3771preadv2 and pwritev2 (1.2.5 min.) in https://github.com/rust-lang/libc/pull/3762SOMAXCONN in https://github.com/rust-lang/libc/pull/3761ifa_flags type to u64 in https://github.com/rust-lang/libc/pull/3729libregex in https://github.com/rust-lang/libc/pull/3775addr_of!(EXTERN_STATIC) is now considered safe in https://github.com/rust-lang/libc/pull/3776rmx_state in https://github.com/rust-lang/libc/pull/3776Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →