80 KiB
Changelog
0.2.189 - 2026-07-21
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)
0.2.188 - 2026-07-21
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.
0.2.187 - 2026-07-20
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)
0.2.186 - 2026-04-24
Added
- Apple: Add
KEVENT_FLAG_*constants (#5070) - Linux: Add
PR_SET_MEMORY_MERGEandPR_GET_MEMORY_MERGE(#5060)
Changed
- CI: Migrate FreeBSD CI from Cirrus CI to GitHub Actions (#5058)
0.2.185 - 2026-04-13
Added
- EspIDF: Add
espidf_picolibccfg for picolibcO_*flag values (#5035) - Hexagon: add missing constants and fix types for linux-musl (#5042)
- Redox: Add semaphore functions (#5051)
- Windows: Add
sprintf,snprintf, and thescanffamily (#5024)
Fixed
- Hexagon: Decouple
time64types from musl symbol redirects (#5040) - Horizon: Change
POLLconstants fromc_shorttoc_int(#5045)
0.2.184 - 2026-04-01
MSRV
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)
Added
- BSD: Add
IP_MINTTLto bsd (#5026) - Cygwin: Add
TIOCM_DSR(#5031) - FreeBSD: Added
xfilestructe and file descriptor types (#5002) - Linux: Add CAN netlink bindings (#5011)
- Linux: Add
struct ethhdr(#4239) - Linux: Add
struct ifinfomsg(#5012) - Linux: Define
max_align_tfor riscv64 (#5029) - NetBSD: Add missing
CLOCK_constants (#5020) - NuttX: Add
_SC_HOST_NAME_MAX(#5004) - VxWorks: Add
flockandF_*LCKconstants (#4043) - WASI: Add all
_SC_*sysconf constants (#5023)
Deprecated
The remaining fixed-width integer aliases, __uint128_t, __uint128, __int128_t, and __int128,
have been deprecated. Use i128 and u128 instead. (#4343)
Fixed
- breaking Redox: Fix signal action constant types (#5009)
- EspIDF: Correct the value of
DT_*constants (#5034) - Redox: Fix locale values and add
RTLD_NOLOAD, some TCP constants (#5025) - Various: Use
Padding::new(<zeroed>)rather thanPadding::uninit()(#5036)
Changed
- potentially breaking Linux: Add new fields to
struct ptrace_syscall_info(#4966) - Re-export
core::ffiinteger types rather than redefining (#5015) - Redox: Update
F_DUPFD,IP, andTCPconstants to match relibc (#4990)
0.2.183 - 2026-03-08
Added
- ESP-IDF: Add
SOMAXCONN(#4993) - Linux: Add
name_to_handle_atandopen_by_handle_at(#4988) - NetBSD: Add
kinfo_file,kinfo_pcb, and related constants (#4985) - OpenBSD: Add
kinfo_fileand related constants (#4991) - VxWorks: Add additional structs and defines (#5003)
- Various: Implement
Defaultfortimevalandtimespec(#4976)
Fixed
- Hexagon musl: Enable unstable 64-bit
time_tsupport andmusl_v1_2_3(#4992) - Nintendo Switch: Fix target support (#4982)
- OpenBSD: Wrap an unused field in
Padding(#4997) - Redox: Change
sigaction.sa_flagstoc_int(#4986) - Redox: Fix
blkcnt_ttype (#4994)
0.2.182 - 2026-02-13
Added
0.2.181 - 2026-02-09
Added
- Apple: Add
MADV_ZERO(#4924) - Redox: Add
makedev,major, andminor(#4928) - GLibc: Add
PTRACE_SET_SYSCALL_INFO(#4933) - OpenBSD: Add more kqueue related constants for (#4945)
- Linux: add CAN error types (#4944)
- OpenBSD: Add siginfo_t::si_status (#4946)
- QNX NTO: Add
max_align_t(#4927) - Illumos: Add
_CS_PATH(#4956) - OpenBSD: add
ppoll(#4957)
Fixed
- breaking: Redox: Fix the type of dev_t (#4928)
- AIX: Change 'tv_nsec' of 'struct timespec' to type 'c_long' (#4931)
- AIX: Use 'struct st_timespec' in 'struct stat{,64}' (#4931)
- Glibc: Link old version of
tc{g,s}etattr(#4938) - Glibc: Link the correct version of
cf{g,s}et{i,o}speedon mips{32,64}r6 (#4938) - OpenBSD: Fix constness of tm.tm_zone (#4948)
- OpenBSD: Fix the definition of
ptrace_thread_state(#4947) - QuRT: Fix type visibility and defs (#4932)
- Redox: Fix values for
PTHREAD_MUTEX_{NORMAL, RECURSIVE}(#4943) - Various: Mark additional fields as private padding (#4922)
Changed
- Fuchsia: Update
SO_*constants (#4937) - Revert "musl: convert inline timespecs to timespec" (resolves build issues on targets only supported by Musl 1.2.3+ ) (#4958)
0.2.180 - 2026-01-08
Added
- QNX: Add missing BPF and ifreq structures (#4769)
Fixed
- Linux, L4Re: address soundness issues of
CMSG_NXTHDR(#4903) - Linux-like: Handle zero-sized payload differences in
CMSG_NXTHDR(#4903) - Musl: Fix incorrect definitions of struct stat on some 32-bit architectures (#4914)
- NetBSD: RISC-V 64: Correct
mcontexttype definitions (#4886) - uClibc: Re-enable
__SIZEOF_PTHREAD_COND_Ton non-L4Re uclibc (#4915) - uClibc: Restructure Linux
netlinkmodule to resolve build errors (#4915)
0.2.179 - 2025-01-03
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.
Added
- L4Re: Add uclibc aarch64 support (#4479)
- Linux, Android: Add a generic definition for
XCASE(#4847) - Linux-like: Add
NAME_MAX(#4888) - Linux: Add
AT_EXECVE_CHECK(#4422) - Linux: Add the
SUN_LENmacro (#4269) - Linux: add
getitimerandsetitimer(#4890) - Linux: add
pthread_tryjoin_nandpthread_timedjoin_np(#4887) - Musl: Add unstable support for 64-bit
time_ton 32-bit platforms (#4463) - NetBSD, OpenBSD: Add interface
LINK_STATE_*definitions fromsys/net/if.h(#4751) - QuRT: Add support for Qualcomm QuRT (#4845)
- Types: Add Padding::uninit() (#4862)
Fixed
- Glibc: Link old version of
cf{g,s}et{i,o}speed(#4882) - L4Re: Fixes for
pthread(#4479) - L4re: Fix a wide variety of incorrect definitions (#4479)
- Musl: Fix the value of
CPU_SETSIZEon musl 1.2+ (#4865) - Musl: RISC-V: fix public padding fields in
stat/stat64(#4463) - Musl: s390x: Fix definition of
SIGSTKSZ/MINSIGSTKSZ(#4884) - NetBSD: Arm: Fix
PT_{GET,SET}FPREGS,_REG_TIPDR, and_REG_{LR,SP}(#4899) - NetBSD: Fix
if_msghdralignment (#4902) - NetBSD: Fix
siginfo_tlayout on 32-bit platforms (#4904) - NetBSD: change definition of
pthread_spin_tto allow arch redefinition. (#4899) - Newlib: Fix ambiguous glob exports and other warnings for Vita and 3DS (#4875)
- QNX: Fix build error (#4879)
Changed
- CI: Update CI images to FreeBSD 15.0-release (#4857)
- L4Re: Make
pthreadstruct fields private (#4876) - Linux, Fuchsia: Mark mq_attr padding area as such (#4858)
- Types: Wrap a number of private fields in the
Paddingtype (#4862)
Removed
0.2.178 - 2025-12-01
Added
- BSD: Add
issetugid(#4744) - Cygwin: Add missing utmp/x.h, grp.h, and stdio.h interfaces (#4827)
- Linux s390x musl: Add
__psw_t/fprefset_t/*context_t(#4726) - Linux, Android: Add definition for IUCLC (#4846)
- Linux, FreeBSD: Add
AT_HWCAP{3,4}(#4734) - Linux: Add definitions from linux/can/bcm.h (#4683)
- Linux: Add syscalls 451-469 for m68k (#4850)
- Linux: PowerPC: Add 'ucontext.h' definitions (#4696)
- NetBSD: Define
eventfd(#4830) - Newlib: Add missing constants from
unistd.h(#4811) - QNX NTO: Add
cfmakeraw(#4704) - QNX NTO: Add
cfsetspeed(#4704) - Redox: Add
getresgidandgetresuid(#4752) - Redox: Add
setresgidandsetresuid(#4752) - VxWorks: Add definitions from
select.h,stat.h,poll.h,ttycom.h,utsname.h,resource.h,mman.h,udp.h,in.h,in6.h,if.h,fnmatch.h, andsioLibCommon.h(#4781) - VxWorks: Add missing defines/functions needed by rust stdlib (#4779)
- WASI: Add more definitions for libstd (#4747)
Deprecated
- Apple: Deprecate
TIOCREMOTE(#4764)
Fixed
Note that there were a large number of fixes on NetBSD for this libc release, some of which include minor breakage.
- AIX: Change errno
EWOULDBLOCKto make it an alias ofEAGAIN(#4790) - AIX: Resolve function comparison and
unnecessary_transmuteswarnings (#4780) - Apple: Correct the value of
SF_SETTABLE(#4764) - DragonflyBSD: Fix the type of
mcontext_t.mc_fpregs(#) - EspIDF: Fix the duplicate definition of
gethostname(#4773) - L4Re: Update available pthread API (#4836)
- Linux: Correct the value of
NFT_MSG_MAX(#4761) - Linux: Remove incorrect
repr(align(8))forcanxl_frame(#4760) - Make
eventfdargument names match OS docs/headers (#4830) - NetBSD: Account for upstream changes to ptrace with LWP (#4782)
- NetBSD: Correct
ipc_perm, split from OpenBSD asipc.rs(#4782) - NetBSD: Correct a number of symbol link names (#4782)
- NetBSD: Correct the type of
kinfo_vmentry.kve_path(#) - NetBSD: Fix
uucred.cr_ngroupsfrominttoshort(#4782) - NetBSD: Fix the type of
kevent.udata(#4782) - NetBSD: Fix the type of
mcontext_t.__fpregs(#4782) - NetBSD: Fix the value of
PT_SUSPEND(#4782) - NetBSD: Fix the values of FNM_* constants (#4782)
- NetBSD: Increase the size of
sockaddr_dl.sdl_datafrom 12 to 24 (#4782) - NetBSD: Introduce
if_.rs, fix the definition ofifreq(#4782) - NetBSD: Introduce
time.rs, fix the values ofCLOCK_*_CPUTIME_ID(#4782) - NetBSD: Introduce
timex.rs(#4782) - NetBSD: Introduce
types.rs, correct the definition oflwpid_t(#4782) - NetBSD: Introduce
utmp_.rs, correct the definition oflastlog(#4782) - NetBSD: Introduce
utmpx_.rs, correct utmpx definitions (#4782) - NetBSD: Make
_cpusetan extern type (#4782) - NetBSD: RISC-V 64: Fix the
mcontexttypes (#4782) - Nuttx: Resolve warnings (#4773)
- OHOS: Don't emit duplicate lfs64 definitions (#4804)
- Redox: Fix the type of
pid_t(#4825) - WASI: Gate
__wasilibc_register_preopened_fd(#4837) - Wali: Fix unknown config (#4773)
Changed
- AIX: Declare field 'tv_nsec' of structure 'timespec' as 'i32' in both 32-bit and 64-bit modes (#4750)
- DragonFly: Avoid usage of
thread_local(#3653) - Linux: Update the definition for
ucontext_tand unskip its tests (#4760) - MinGW: Set
L_tmpnamandTMP_MAXto the UCRT value (#4566) - WASI: More closely align pthread type reprs (#4747)
- Simplify rustc-check-cfg emission in build.rs (#4724)
- Transition a number of definitions to the new source structure (internal change)
Removed
- MIPS Musl: Remove rogue definition of
SIGSTKFLT(#4749) - NetBSD: Make
statvfs.f_sparenon-public (#4782) - NetBSD: Remove BPF constants (#4782)
- NetBSD: Remove
*_MAXIDconstants andAT_SUN_LDPGSIZE(#4782) - NetBSD: Remove
IFF_NOTRAILERS(#4782) - NetBSD: Remove
vm_size_t(#4782) - NetBSD: Replace REG_ENOSYS with REG_ILLSEQ (#4782)
0.2.177 - 2025-10-09
Added
- Apple: Add
TIOCGETA,TIOCSETA,TIOCSETAW,TIOCSETAFconstants (#4736) - Apple: Add
pthread_cond_timedwait_relative_np(#4719) - BSDs: Add
_CS_PATHconstant (#4738) - Linux-like: Add
SIGEMTfor mips* and sparc* architectures (#4730) - OpenBSD: Add
elf_aux_info(#4729) - Redox: Add more sysconf constants (#4728)
- Windows: Add
wcsnlen(#4721)
Changed
- WASIP2: Invert conditional to include p2 APIs (#4733)
0.2.176 - 2025-09-23
Support
- The default FreeBSD version has been raised from 11 to 12. This matches
rustcsince 1.78. (#2406) Debugis now always implemented, rather than being gated behind theextra_traitsfeature. (#4624)
Added
- AIX: Restore some non-POSIX functions guarded by the
_KERNELmacro. (#4607) - FreeBSD 14: Add
st_filereftostruct stat(#4642) - Haiku: Add the
accept4POSIX call (#4586) - Introduce a wrapper for representing padding (#4632)
- Linux: Add
EM_RISCV(#4659) - Linux: Add
MS_NOSYMFOLLOW(#4389) - Linux: Add
backtrace_symbols(_fd)(#4668) - Linux: Add missing
SOL_PACKEToptnames (#4669) - Musl s390x: Add
SYS_mseal(#4549) - NuttX: Add
__errno(#4687) - Redox: Add
dirfd,VDISABLE, and resource consts (#4660) - Redox: Add more
resource.h,fcntl.hconstants (#4666) - Redox: Enable
strftimeandmkostemp[s](#4629) - Unix, Windows: Add
qsort_r(Unix), andqsort(_s)(Windows) (#4677) - Unix: Add
dlvsymfor Linux-gnu, FreeBSD, and NetBSD (#4671) - Unix: Add
sigqueue(#4620)
Changed
- FreeBSD 15: Mark
kinfo_procas non-exhaustive (#4553) - FreeBSD: Set the ELF symbol version for
readdir_r(#4694) - Linux: Correct the config for whether or not
epoll_eventis packed (#4639) - Tests: Replace the old
ctestwith the much more reliable new implementation (#4655 and many related PRs)
Fixed
- AIX: Fix the type of the 4th arguement of
getgrnam_r([#4656](https://github.com/rust-lang/libc/pull/4656 - FreeBSD: Limit
P_IDLEPROCto FreeBSD 15 (#4640) - FreeBSD: Limit
mcontext_t::mc_tlsbaseto FreeBSD 15 (#4640) - FreeBSD: Update gating of
mcontext_t.mc_tlsbase(#4703) - Musl s390x: Correct the definition of
statfs[64](#4549) - Musl s390x: Make
fpreg_ta union (#4549) - Redox: Fix the types of
gid_tanduid_t(#4689) - Redox: Fix the value of
MAP_FIXED(#4684)
Deprecated
- Apple: Correct the
deprecatedattribute foriconv(a97a0b53) - FreeBSD: Deprecate
TIOCMGDTRWAITandTIOCMSDTRWAIT(#4685)
Removed
- FreeBSD: Remove
JAIL_{GET,SET}_MASK,_MC_FLAG_MASK(#4691)
0.2.175 - 2025-08-10
Added
- AIX: Add
getpeereid(#4524) - AIX: Add
struct ld_infoand friends (#4578) - AIX: Retore
struct winsize(#4577) - Android: Add UDP socket option constants (#4619)
- Android: Add
CLONE_CLEAR_SIGHANDandCLONE_INTO_CGROUP(#4502) - Android: Add more
prctlconstants (#4531) - FreeBSD Add further TCP stack-related constants (#4196)
- FreeBSD x86-64: Add
mcontext_t.mc_tlsbase(#4503) - FreeBSD15: Add
kinfo_proc.ki_uerrmsg(#4552) - FreeBSD: Add
in_conninfo(#4482) - FreeBSD: Add
xinpgenand related types (#4482) - FreeBSD: Add
xktls_session(#4482) - Haiku: Add functionality from
libbsd(#4221) - Linux: Add
SECBIT_*(#4480) - NetBSD, OpenBSD: Export
ioctlrequest generator macros (#4460) - NetBSD: Add
ptsname_r(#4608) - RISCV32: Add time-related syscalls (#4612)
- Solarish: Add
strftime*(#4453) - linux: Add
EXEC_RESTRICT_*andEXEC_DENY_*(#4545)
Changed
- AIX: Add
constto signatures to be consistent with other platforms (#4563)
Fixed
- AIX: Fix the type of
struct statvfs.f_fsid(#4576) - AIX: Fix the type of constants for the
ioctlrequestargument (#4582) - AIX: Fix the types of
stat{,64}.st_*tim(#4597) - AIX: Use unique
errnovalues (#4507) - Build: Fix an incorrect
target_os->target_archcheck (#4550) - FreeBSD: Fix the type of
xktls_session_onedir.ifnet(#4552) - Mips64 musl: Fix the type of
nlink_t(#4509) - Mips64 musl: Use a special MIPS definition of
stack_t(#4528) - Mips64: Fix
SI_TIMER,SI_MESGQandSI_ASYNCIOdefinitions (#4529) - Musl Mips64: Swap the order of
si_errnoandsi_codeinsiginfo_t(#4530) - Musl Mips64: Use a special MIPS definition of
statfs(#4527) - Musl: Fix the definition of
fanotify_event_metadata(#4510) - NetBSD: Correct
enum fae_actionto be#[repr(C)](#60a8cfd5) - PSP: Correct
char->c_char(eaab4fc3) - PowerPC musl: Fix
termiosdefinitions (#4518) - PowerPC musl: Fix the definition of
EDEADLK(#4517) - PowerPC musl: Fix the definition of
NCCS(#4513) - PowerPC musl: Fix the definitions of
MAP_LOCKEDandMAP_NORESERVE(#4516) - PowerPC64 musl: Fix the definition of
shmid_ds(#4519)
Deprecated
- Linux:
MAP_32BITis only defined on x86 on non-x86 architectures (#4511)
Removed
- AIX: Remove duplicate constant definitions
FINDandENTER(#4588) - s390x musl: Remove
O_FSYNC(#4515) - s390x musl: Remove
RTLD_DEEPBIND(#4515)
0.2.174 - 2025-06-17
Added
- Linux: Make
pidfd_infofields pub (#4487)
Fixed
- Gnu x32: Add missing
timespec.tv_nsec(#4497) - NuttX: Use
nlink_ttype forst_nlinkinstruct statdefinition (#4483)
Other
- Allow new
unpredictable_function_pointer_comparisonslints (#4489) - OpenBSD: Fix some clippy warnings to use
pointer::cast. (#4490) - Remove unessecary semicolons from definitions of
CMSG_NXTHDR. (#4492)
0.2.173 - 2025-06-09
Added
- AIX: Add an AIX triple to Cargo.toml for doc (#4475)
- FreeBSD: Add the
SO_SPLICEsocket option support for FreeBSD >= 14.2 (#4451) - Linux GNU: Prepare for supporting
_TIME_BITS=64(#4433) - Linux: Add constant PACKET_IGNORE_OUTGOING (#4319)
- Linux: Add constants and types for
nsfsioctls (#4436) - Linux: Add constants for Memory-Deny-Write-Execute
prctls(#4400) - Linux: Add constants from
linux/cn_proc.handlinux/connector.h(#4434) - Linux: Add new flags for
pwritev2andpreadv2(#4452) - Linux: Add pid_type enum values (#4403)
- Linux: Update pidfd constants and types (Linux 6.9-6.15) (#4402)
- Loongarch64 musl: Define the
MADV_SOFT_OFFLINEconstant (#4448) - Musl: Add new fields since 1.2.0/1.2.2 to
struct tcp_info(#4443) - Musl: Prepare for supporting v1.2.3 (#4443)
- NuttX: Add
arc4randomandarc4random_buf(#4464) - RISC-V Musl: Add
MADV_SOFT_OFFLINEdefinition (#4447) - Redox: Define SCM_RIGHTS (#4440)
- VxWorks: Add missing UTIME defines and TASK_RENAME_LENGTH (#4407)
- Windows: Add more
time.hfunctions (#4427)
Changed
- Redox: Update
SA_constants. (#4426) - Redox: make
CMSG_ALIGN,CMSG_LEN, andCMSG_SPACEconst functions (#4441)
Fixed
- AIX: Enable libc-test and fix definitions/declarations. (#4450)
- Emscripten: Fix querying emcc on windows (use emcc.bat) (#4248)
- Hurd: Fix build from missing
fpos_t(#4472) - Loongarch64 Musl: Fix the
struct ipc_permbindings (#4384) - Musl: Fix the
O_LARGEFILEconstant value. (#4443)
0.2.172 - 2025-04-14
Added
- Android: Add
getauxvalfor 32-bit targets (#4338) - Android: Add
if_tun.hioctls (#4379) - Android: Define
SO_BINDTOIFINDEX(#4391) - Cygwin: Add
posix_spawn_file_actions_add[f]chdir[_np](#4387) - Cygwin: Add new socket options (#4350)
- Cygwin: Add statfs & fcntl (#4321)
- FreeBSD: Add
filedescandfdescenttbl(#4327) - Glibc: Add unstable support for _FILE_OFFSET_BITS=64 (#4345)
- Hermit: Add
AF_UNSPEC(#4344) - Hermit: Add
AF_VSOCK(#4344) - Illumos, NetBSD: Add
timerfdAPIs (#4333) - Linux: Add
_IO,_IOW,_IOR,_IOWRto the exported API (#4325) - Linux: Add
tcp_infoto uClibc bindings (#4347) - Linux: Add further BPF program flags (#4356)
- Linux: Add missing INPUT_PROP_XXX flags from
input-event-codes.h(#4326) - Linux: Add missing TLS bindings (#4296)
- Linux: Add more constants from
seccomp.h(#4330) - Linux: Add more glibc
ptrace_sud_configand relatedPTRACE_*ET_SYSCALL_USER_DISPATCH_CONFIG. (#4386) - Linux: Add new netlink flags (#4288)
- Linux: Define ioctl codes on more architectures (#4382)
- Linux: Add missing
pthread_attr_setstack(#4349) - Musl: Add missing
utmpxAPI (#4332) - Musl: Enable
getrandomon all platforms (#4346) - NuttX: Add more signal constants (#4353)
- QNX: Add QNX 7.1-iosock and 8.0 to list of additional cfgs (#4169)
- QNX: Add support for alternative Neutrino network stack
io-sock(#4169) - Redox: Add more
sys/socket.handsys/uio.hdefinitions (#4388) - Solaris: Temporarily define
O_DIRECTandSIGINFO(#4348) - Solarish: Add
secure_getenv(#4342) - VxWorks: Add missing
d_typemember todirent(#4352) - VxWorks: Add missing signal-related constsants (#4352)
- VxWorks: Add more error codes (#4337)
Deprecated
- FreeBSD: Deprecate
TCP_PCAP_OUTandTCP_PCAP_IN(#4381)
Fixed
- Cygwin: Fix member types of
statfs(#4324) - Cygwin: Fix tests (#4357)
- Hermit: Make
AF_INET = 3(#4344) - Musl: Fix the syscall table on RISC-V-32 (#4335)
- Musl: Fix the value of
SA_ONSTACKon RISC-V-32 (#4335) - VxWorks: Fix a typo in the
waitpidparameter name (#4334)
Removed
- Musl: Remove
O_FSYNCon RISC-V-32 (useO_SYNCinstead) (#4335) - Musl: Remove
RTLD_DEEPBINDon RISC-V-32 (#4335)
Other
- CI: Add matrix env variables to the environment (#4345)
- CI: Always deny warnings (#4363)
- CI: Always upload successfully created artifacts (#4345)
- CI: Install musl from source for loongarch64 (#4320)
- CI: Revert "Also skip
MFD_EXECandMFD_NOEXEC_SEALon sparc64" (#) - CI: Use
$PWDinstead of$(pwd)in run-docker (#4345) - Solarish: Restrict
openptyandforkptypolyfills to Illumos, replace Solaris implementation with bindings (#4329) - Testing: Ensure the makedev test does not emit unused errors (#4363)
0.2.171 - 2025-03-11
Added
- Android: Add
if_nameindex/if_freenameindexsupport (#4247) - Apple: Add missing proc types and constants (#4310)
- BSD: Add
devname(#4285) - Cygwin: Add PTY and group API (#4309)
- Cygwin: Add support (#4279)
- FreeBSD: Make
spawn.hinterfaces available on all FreeBSD-like systems (#4294) - Linux: Add
AF_XDPstructs for all Linux environments (#4163) - Linux: Add SysV semaphore constants (#4286)
- Linux: Add
F_SEAL_EXEC(#4316) - Linux: Add
SO_PREFER_BUSY_POLLandSO_BUSY_POLL_BUDGET(#3917) - Linux: Add
devmemstructs (#4299) - Linux: Add socket constants up to
SO_DEVMEM_DONTNEED(#4299) - NetBSD, OpenBSD, DragonflyBSD: Add
closefrom(#4290) - NuttX: Add
pw_passwdfield topasswd(#4222) - Solarish: define
IP_BOUND_IFandIPV6_BOUND_IF(#4287) - Wali: Add bindings for
wasm32-wali-linux-musltarget (#4244)
Changed
- AIX: Use
sa_sigactioninstead of a union (#4250) - Make
msqid_ds.__msg_cbytespublic (#4301) - Unix: Make all
major,minor,makedevintoconst fn(#4208)
Deprecated
- Linux: Deprecate obsolete packet filter interfaces (#4267)
Fixed
- Cygwin: Fix strerror_r (#4308)
- Cygwin: Fix usage of f! (#4308)
- Hermit: Make
stat::st_sizesigned (#4298) - Linux: Correct values for
SI_TIMER,SI_MESGQ,SI_ASYNCIO(#4292) - NuttX: Update
tm_zoneandd_namefields to usec_chartype (#4222) - Xous: Include the prelude to define
c_int(#4304)
Other
- Add labels to FIXMEs (#4231, #4232, #4234, #4235, #4236)
- CI: Fix "cannot find libc" error on Sparc64 (#4317)
- CI: Fix "cannot find libc" error on s390x (#4317)
- CI: Pass
--no-self-updatetorustup update(#4306) - CI: Remove tests for the
i586-pc-windows-msvctarget (#4311) - CI: Remove the
check_cfgjob (#4322) - Change the range syntax that is giving
ctestproblems (#4311) - Linux: Split out the stat struct for gnu/b32/mips (#4276)
Removed
- NuttX: Remove
pthread_set_name_np(#4251)
0.2.170 - 2025-02-23
Added
- Android: Declare
setdomainnameandgetdomainnamehttps://github.com/rust-lang/libc/pull/4212 - FreeBSD: Add
evdevstructures https://github.com/rust-lang/libc/pull/3756 - FreeBSD: Add the new
st_filerevfield tostat32(#4254) - Linux: Add
SI_*`` andTRAP_*`` signal codes https://github.com/rust-lang/libc/pull/4225 - Linux: Add experimental configuration to enable 64-bit time in kernel APIs, set by
RUST_LIBC_UNSTABLE_LINUX_TIME_BITS64. https://github.com/rust-lang/libc/pull/4148 - Linux: Add recent socket timestamping flags https://github.com/rust-lang/libc/pull/4273
- Linux: Added new CANFD_FDF flag for the flags field of canfd_frame https://github.com/rust-lang/libc/pull/4223
- Musl: add CLONE_NEWTIME https://github.com/rust-lang/libc/pull/4226
- Solarish: add the posix_spawn family of functions https://github.com/rust-lang/libc/pull/4259
Deprecated
- Linux: deprecate kernel modules syscalls https://github.com/rust-lang/libc/pull/4228
Changed
- Emscripten: Assume version is at least 3.1.42 https://github.com/rust-lang/libc/pull/4243
Fixed
- BSD: Correct the definition of
WEXITSTATUShttps://github.com/rust-lang/libc/pull/4213 - Hurd: Fix CMSG_DATA on 64bit systems (#4240)
- NetBSD: fix
getmntinfo(#4265 - VxWorks: Fix the size of
time_thttps://github.com/rust-lang/libc/pull/426
Other
- Add labels to FIXMEs https://github.com/rust-lang/libc/pull/4230, https://github.com/rust-lang/libc/pull/4229, https://github.com/rust-lang/libc/pull/4237
- CI: Bump FreeBSD CI to 13.4 and 14.2 https://github.com/rust-lang/libc/pull/4260
- Copy definitions from core::ffi and centralize them https://github.com/rust-lang/libc/pull/4256
- Define c_char at top-level and remove per-target c_char definitions https://github.com/rust-lang/libc/pull/4202
- Port style.rs to syn and add tests for the style checker https://github.com/rust-lang/libc/pull/4220
0.2.169 - 2024-12-18
Added
- FreeBSD: add more socket TCP stack constants https://github.com/rust-lang/libc/pull/4193
- Fuchsia: add a
sockaddr_vmdefinition https://github.com/rust-lang/libc/pull/4194
Fixed
Breaking: 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:
- ESP-IDF: Replace arch-conditional
c_charwith a reexport https://github.com/rust-lang/libc/pull/4195 - Fix
c_charon various targets https://github.com/rust-lang/libc/pull/4199 - Mirror
c_charconfiguration fromrust-lang/rusthttps://github.com/rust-lang/libc/pull/4198
Cleanup
- Do not re-export
c_voidin target-specific code https://github.com/rust-lang/libc/pull/4200
0.2.168 - 2024-12-09
Added
- Linux: Add new process flags (#4174)
- Linux: Make
IFA_*constants available on all Linux targets https://github.com/rust-lang/libc/pull/4185 - Linux: add
MAP_DROPPABLEhttps://github.com/rust-lang/libc/pull/4173 - Solaris, Illumos: add
SIGRTMINandSIGRTMAXhttps://github.com/rust-lang/libc/pull/4171 - Unix, Linux: adding POSIX
memccpyandmempcpyGNU extension <https://github.com/rust-lang/libc/pull/4186.
Deprecated
- FreeBSD: Deprecate the CAP_UNUSED* and CAP_ALL* constants (#4183)
Fixed
- Make the
Debugimplementation for unions opaque (#4176)
Other
- Allow the
unpredictable_function_pointer_comparisonslint where needed https://github.com/rust-lang/libc/pull/4177 - CI: Upload artifacts created by libc-test https://github.com/rust-lang/libc/pull/4180
- CI: Use workflow commands to group output by target https://github.com/rust-lang/libc/pull/4179
- CI: add caching https://github.com/rust-lang/libc/pull/4183
0.2.167 - 2024-11-28
Added
- Solarish: add
st_fstypetostathttps://github.com/rust-lang/libc/pull/4145 - Trusty: Add
intptr_tanduintptr_t(#4161)
Fixed
- Fix the build with
rustc-dep-of-stdhttps://github.com/rust-lang/libc/pull/4158 - Wasi: Add back unsafe block for
clockid_tstatic variables (#4157)
Cleanup
- Create an internal prelude https://github.com/rust-lang/libc/pull/4161
- Fix
unused_qualificationshttps://github.com/rust-lang/libc/pull/4132
Other
- CI: Check various FreeBSD versions (#4159)
- CI: add a timeout for all jobs https://github.com/rust-lang/libc/pull/4164
- CI: verify MSRV for
wasm32-wasihttps://github.com/rust-lang/libc/pull/4157 - Migrate to the 2021 edition https://github.com/rust-lang/libc/pull/4132
Removed
- Remove one unused import after the edition 2021 bump
0.2.166 - 2024-11-26
Fixed
This release resolves two cases of unintentional breakage from the previous release:
0.2.165 - 2024-11-25
Added
- Android: add
mkostemp,mkostempshttps://github.com/rust-lang/libc/pull/3601 - Android: add a few API 30 calls https://github.com/rust-lang/libc/pull/3604
- Android: add missing syscall constants https://github.com/rust-lang/libc/pull/3558
- Apple: add
in6_ifreqhttps://github.com/rust-lang/libc/pull/3617 - Apple: add missing
sysctlnet types https://github.com/rust-lang/libc/pull/4022 (before release: removeif_family_id(#4137)) - Freebsd: add
kcmpcall support https://github.com/rust-lang/libc/pull/3746 - Hurd: add
MAP_32BITandMAP_EXCLhttps://github.com/rust-lang/libc/pull/4127 - Hurd: add
domainnamefield toutsname(#4089) - Linux GNU: add
f_flagsto structstatfsfor arm, mips, powerpc and x86 https://github.com/rust-lang/libc/pull/3663 - Linux GNU: add
malloc_statshttps://github.com/rust-lang/libc/pull/3596 - Linux: add ELF relocation-related structs https://github.com/rust-lang/libc/pull/3583
- Linux: add
ptp_*structs https://github.com/rust-lang/libc/pull/4113 - Linux: add
ptp_clock_capshttps://github.com/rust-lang/libc/pull/4128 - Linux: add
ptp_pin_functionand mostPTP_constants https://github.com/rust-lang/libc/pull/4114 - Linux: add missing AF_XDP structs & constants https://github.com/rust-lang/libc/pull/3956
- Linux: add missing netfilter consts (#3734)
- Linux: add struct and constants for the
mount_setattrsyscall https://github.com/rust-lang/libc/pull/4046 - Linux: add wireless API https://github.com/rust-lang/libc/pull/3441
- Linux: expose the
len8_dlcfield ofcan_framehttps://github.com/rust-lang/libc/pull/3357 - Musl: add
utmpxAPI https://github.com/rust-lang/libc/pull/3213 - Musl: add missing syscall constants https://github.com/rust-lang/libc/pull/4028
- NetBSD: add
mcontext-related data for RISCV64 https://github.com/rust-lang/libc/pull/3468 - Redox: add new
netinetconstants https://github.com/rust-lang/libc/pull/3586) - Solarish: add
_POSIX_VDISABLE(#4103) - Tests: Add a test that the
const extern fnmacro works https://github.com/rust-lang/libc/pull/4134 - Tests: Add test of primitive types against
stdhttps://github.com/rust-lang/libc/pull/3616 - Unix: Add
htonl,htons,ntohl,ntohshttps://github.com/rust-lang/libc/pull/3669 - Unix: add
aligned_allochttps://github.com/rust-lang/libc/pull/3843 - Windows: add
aligned_reallochttps://github.com/rust-lang/libc/pull/3592
Fixed
- breaking Hurd: fix
MAP_HASSEMAPHOREname (#4127) - breaking ulibc Mips: fix
SA_*mismatched types (#3211) - Aix: fix an enum FFI safety warning https://github.com/rust-lang/libc/pull/3644
- Haiku: fix some typos (#3664)
- Tests: fix
Elf{32,64}_Relr-related tests https://github.com/rust-lang/libc/pull/3647 - Tests: fix libc-tests for
loongarch64-linux-musl - Tests: fix some clippy warnings https://github.com/rust-lang/libc/pull/3855
- Tests: fix tests on
riscv64gc-unknown-freebsdhttps://github.com/rust-lang/libc/pull/4129
Deprecated
- Apple: deprecate
iconv_openhttps://github.com/rust-lang/libc/commit/25e022a22eca3634166ef472b748c297e60fcf7f - Apple: deprecate
mach_task_selfhttps://github.com/rust-lang/libc/pull/4095 - Apple: update
machdeprecation notices for things that were removed inmainhttps://github.com/rust-lang/libc/pull/4097
Cleanup
- Adjust the
f!macro to be more flexible https://github.com/rust-lang/libc/pull/4107 - Aix: remove duplicate constants https://github.com/rust-lang/libc/pull/3643
- CI: make scripts more uniform https://github.com/rust-lang/libc/pull/4042
- Drop the
libc_alignconditional https://github.com/rust-lang/libc/commit/b5b553d0ee7de0d4781432a9a9a0a6445dd7f34f - Drop the
libc_cfg_target_vendorconditional https://github.com/rust-lang/libc/pull/4060 - Drop the
libc_const_size_ofconditional https://github.com/rust-lang/libc/commit/5a43dd2754366f99b3a83881b30246ce0e51833c - Drop the
libc_core_cvoidconditional https://github.com/rust-lang/libc/pull/4060 - Drop the
libc_int128conditional https://github.com/rust-lang/libc/pull/4060 - Drop the
libc_non_exhaustiveconditional https://github.com/rust-lang/libc/pull/4060 - Drop the
libc_packedNconditional https://github.com/rust-lang/libc/pull/4060 - Drop the
libc_priv_mod_useconditional https://github.com/rust-lang/libc/commit/19c59376d11b015009fb9b04f233a30a1bf50a91 - Drop the
libc_unionconditional https://github.com/rust-lang/libc/commit/b9e4d8012f612dfe24147da3e69522763f92b6e3 - Drop the
long_arrayconditional https://github.com/rust-lang/libc/pull/4096 - Drop the
ptr_addr_ofconditional https://github.com/rust-lang/libc/pull/4065 - Drop warnings about deprecated cargo features https://github.com/rust-lang/libc/pull/4060
- Eliminate uses of
struct_formatterhttps://github.com/rust-lang/libc/pull/4074 - Fix a few other array size hacks https://github.com/rust-lang/libc/commit/d63be8b69b0736753213f5d933767866a5801ee7
- Glibc: remove redundant definitions (#3261)
- Musl: remove redundant definitions (#3261)
- Musl: unify definitions of
siginfo_t(#3261) - Musl: unify definitions of statfs and statfs64 (#3261)
- Musl: unify definitions of statvfs and statvfs64 (#3261)
- Musl: unify statx definitions (#3978)
- Remove array size hacks for Rust < 1.47 https://github.com/rust-lang/libc/commit/27ee6fe02ca0848b2af3cd747536264e4c7b697d
- Remove repetitive words https://github.com/rust-lang/libc/commit/77de375891285e18a81616f7dceda6d52732eed6
- Use #[derive] for Copy/Clone in s! and friends https://github.com/rust-lang/libc/pull/4038
- Use some tricks to format macro bodies https://github.com/rust-lang/libc/pull/4107
Other
- Apply formatting to macro bodies https://github.com/rust-lang/libc/pull/4107
- Bump libc-test to Rust 2021 Edition https://github.com/rust-lang/libc/pull/3905
- CI: Add a check that semver files don't contain duplicate entries https://github.com/rust-lang/libc/pull/4087
- CI: Add
fanotify_event_info_fidto FAM-exempt types https://github.com/rust-lang/libc/pull/4038 - CI: Allow rustfmt to organize imports (#4136)
- CI: Always run rustfmt https://github.com/rust-lang/libc/pull/4120
- CI: Change 32-bit Docker images to use EOL repos https://github.com/rust-lang/libc/pull/4120
- CI: Change 64-bit Docker images to ubuntu:24.10 https://github.com/rust-lang/libc/pull/4120
- CI: Disable the check for >1 s! invocation https://github.com/rust-lang/libc/pull/4107
- CI: Ensure build channels get run even if FILTER is unset https://github.com/rust-lang/libc/pull/4125
- CI: Ensure there is a fallback for no_std https://github.com/rust-lang/libc/pull/4125
- CI: Fix cases where unset variables cause errors https://github.com/rust-lang/libc/pull/4108
- CI: Naming adjustments and cleanup https://github.com/rust-lang/libc/pull/4124
- CI: Only invoke rustup if running in CI https://github.com/rust-lang/libc/pull/4107
- CI: Remove the logic to handle old rust versions https://github.com/rust-lang/libc/pull/4068
- CI: Set -u (error on unset) in all script files https://github.com/rust-lang/libc/pull/4108
- CI: add support for
loongarch64-unknown-linux-muslhttps://github.com/rust-lang/libc/pull/4092 - CI: make
aarch64-apple-darwinnot a nightly-only target https://github.com/rust-lang/libc/pull/4068 - CI: run shellcheck on all scripts https://github.com/rust-lang/libc/pull/4042
- CI: update musl headers to Linux 6.6 https://github.com/rust-lang/libc/pull/3921
- CI: use qemu-sparc64 to run sparc64 tests https://github.com/rust-lang/libc/pull/4133
- Drop the
libc_const_extern_fnconditional https://github.com/rust-lang/libc/commit/674cc1f47f605038ef1aa2cce8e8bc9dac128276 - Drop the
libc_underscore_const_namesconditional https://github.com/rust-lang/libc/commit/f0febd5e2e50b38e05259d3afad3c9783711bcf0 - Explicitly set the edition to 2015 https://github.com/rust-lang/libc/pull/4058
- Introduce a
git-blame-ignore-revsfile https://github.com/rust-lang/libc/pull/4107 - Tests: Ignore fields as required on Ubuntu 24.10 https://github.com/rust-lang/libc/pull/4120
- Tests: skip
ATF_*constants for OpenBSD https://github.com/rust-lang/libc/pull/4088 - Triagebot: Add an autolabel for CI https://github.com/rust-lang/libc/pull/4052
0.2.164 - 2024-11-16
MSRV
This release increases the MSRV of libc to 1.63.
Other
- CI: remove tests with rust < 1.63 https://github.com/rust-lang/libc/pull/4051
- MSRV: document the MSRV of the stable channel to be 1.63 https://github.com/rust-lang/libc/pull/4040
- MacOS: move ifconf to s_no_extra_traits https://github.com/rust-lang/libc/pull/4051
0.2.163 - 2024-11-16
Added
- Aix: add more
dlopenflags https://github.com/rust-lang/libc/pull/4044 - Android: add group calls https://github.com/rust-lang/libc/pull/3499
- FreeBSD: add
TCP_FUNCTION_BLKandTCP_FUNCTION_ALIAShttps://github.com/rust-lang/libc/pull/4047 - Linux: add
confstrhttps://github.com/rust-lang/libc/pull/3612 - Solarish: add
aiohttps://github.com/rust-lang/libc/pull/4033 - Solarish: add
arc4random*https://github.com/rust-lang/libc/pull/3944
Changed
- Emscripten: upgrade emsdk to 3.1.68 https://github.com/rust-lang/libc/pull/3962
- Hurd: use more standard types https://github.com/rust-lang/libc/pull/3733
- Hurd: use the standard
ssize_t = isizehttps://github.com/rust-lang/libc/pull/4029 - Solaris: fix
confstranducontext_thttps://github.com/rust-lang/libc/pull/4035
Other
- CI: add Solaris https://github.com/rust-lang/libc/pull/4035
- CI: add
i686-unknown-freebsdhttps://github.com/rust-lang/libc/pull/3997 - CI: ensure that calls to
sortdo not depend on locale https://github.com/rust-lang/libc/pull/4026 - Specify
rust-versioninCargo.tomlhttps://github.com/rust-lang/libc/pull/4041
0.2.162 - 2024-11-07
Added
- Android: fix the alignment of
uc_mcontexton arm64 https://github.com/rust-lang/libc/pull/3894 - Apple: add
host_cpu_load_infohttps://github.com/rust-lang/libc/pull/3916 - ESP-IDF: add a time flag https://github.com/rust-lang/libc/pull/3993
- FreeBSD: add the
CLOSE_RANGE_CLOEXECflaghttps://github.com/rust-lang/libc/pull/3996 - FreeBSD: fix test errors regarding
__gregset_thttps://github.com/rust-lang/libc/pull/3995 - FreeBSD: fix tests on x86 FreeBSD 15 https://github.com/rust-lang/libc/pull/3948
- FreeBSD: make
ucontext_tandmcontext_tavailable on all architectures https://github.com/rust-lang/libc/pull/3848 - Haiku: add
getentropyhttps://github.com/rust-lang/libc/pull/3991 - Illumos: add
syncfshttps://github.com/rust-lang/libc/pull/3990 - Illumos: add some recently-added constants https://github.com/rust-lang/libc/pull/3999
- Linux: add
ioctlflags https://github.com/rust-lang/libc/pull/3960 - Linux: add epoll busy polling parameters https://github.com/rust-lang/libc/pull/3922
- NuttX: add
pthread_[get/set]name_nphttps://github.com/rust-lang/libc/pull/4003 - RTEMS: add
arc4random_bufhttps://github.com/rust-lang/libc/pull/3989 - Trusty OS: add initial support https://github.com/rust-lang/libc/pull/3942
- WASIp2: expand socket support https://github.com/rust-lang/libc/pull/3981
Fixed
- Emscripten: don't pass
-lchttps://github.com/rust-lang/libc/pull/4002 - Hurd: change
st_fsidfield tost_devhttps://github.com/rust-lang/libc/pull/3785 - Hurd: fix the definition of
utsnamehttps://github.com/rust-lang/libc/pull/3992 - Illumos/Solaris: fix
FNM_CASEFOLDdefinition https://github.com/rust-lang/libc/pull/4004 - Solaris: fix all tests https://github.com/rust-lang/libc/pull/3864
Other
- CI: Add loongarch64 https://github.com/rust-lang/libc/pull/4000
- CI: Check that semver files are sorted https://github.com/rust-lang/libc/pull/4018
- CI: Re-enable the FreeBSD 15 job https://github.com/rust-lang/libc/pull/3988
- Clean up imports and
extern crateusage https://github.com/rust-lang/libc/pull/3897 - Convert
mode_tconstants to octal https://github.com/rust-lang/libc/pull/3634 - Remove the
wasm32-wasitarget that has been deleted upstream https://github.com/rust-lang/libc/pull/4013
0.2.161 - 2024-10-17
Fixed
- OpenBSD: fix
FNM_PATHNAMEandFNM_NOESCAPEvalues https://github.com/rust-lang/libc/pull/3983
0.2.160 - 2024-10-17
Added
- Android: add
PR_GET_NAMEandPR_SET_NAMEhttps://github.com/rust-lang/libc/pull/3941 - Apple: add
F_TRANSFEREXTENTShttps://github.com/rust-lang/libc/pull/3925 - Apple: add
mach_error_stringhttps://github.com/rust-lang/libc/pull/3913 - Apple: add additional
pthreadAPIs https://github.com/rust-lang/libc/pull/3846 - Apple: add the
LOCAL_PEERTOKENsocket option https://github.com/rust-lang/libc/pull/3929 - BSD: add
RTF_*,RTA_*,RTAX_*, andRTM_*definitions https://github.com/rust-lang/libc/pull/3714 - Emscripten: add
AT_EACCESShttps://github.com/rust-lang/libc/pull/3911 - Emscripten: add
getgrgid,getgrnam,getgrnam_randgetgrgid_rhttps://github.com/rust-lang/libc/pull/3912 - Emscripten: add
getpwnam_randgetpwuid_rhttps://github.com/rust-lang/libc/pull/3906 - FreeBSD: add
POLLRDHUPhttps://github.com/rust-lang/libc/pull/3936 - Haiku: add
arc4randomhttps://github.com/rust-lang/libc/pull/3945 - Illumos: add
ptsname_rhttps://github.com/rust-lang/libc/pull/3867 - Linux: add
fanotifyinterfaces https://github.com/rust-lang/libc/pull/3695 - Linux: add
tcp_infohttps://github.com/rust-lang/libc/pull/3480 - Linux: add additional AF_PACKET options https://github.com/rust-lang/libc/pull/3540
- Linux: make Elf constants always available https://github.com/rust-lang/libc/pull/3938
- Musl x86: add
ioplandiopermhttps://github.com/rust-lang/libc/pull/3720 - Musl: add
posix_spawnchdir functions https://github.com/rust-lang/libc/pull/3949 - Musl: add
utmpx.hconstants https://github.com/rust-lang/libc/pull/3908 - NetBSD: add
sysctlnametomib,CLOCK_THREAD_CPUTIME_IDandCLOCK_PROCESS_CPUTIME_IDhttps://github.com/rust-lang/libc/pull/3927 - Nuttx: initial support https://github.com/rust-lang/libc/pull/3909
- RTEMS: add
getentropyhttps://github.com/rust-lang/libc/pull/3973 - RTEMS: initial support https://github.com/rust-lang/libc/pull/3866
- Solarish: add
POLLRDHUP,POSIX_FADV_*,O_RSYNC, andposix_fallocatehttps://github.com/rust-lang/libc/pull/3936 - Unix: add
fnmatch.hhttps://github.com/rust-lang/libc/pull/3937 - VxWorks: add riscv64 support https://github.com/rust-lang/libc/pull/3935
- VxWorks: update constants related to the scheduler https://github.com/rust-lang/libc/pull/3963
Changed
- Redox: change
ino_tto bec_ulonglonghttps://github.com/rust-lang/libc/pull/3919
Fixed
- ESP-IDF: fix mismatched constants and structs https://github.com/rust-lang/libc/pull/3920
- FreeBSD: fix
struct staton FreeBSD 12+ https://github.com/rust-lang/libc/pull/3946
Other
- CI: Fix CI for FreeBSD 15 https://github.com/rust-lang/libc/pull/3950
- Docs: link to
windows-syshttps://github.com/rust-lang/libc/pull/3915
0.2.159 - 2024-09-24
Added
- Android: add more
AT_*constants in https://github.com/rust-lang/libc/pull/3779 - Apple: add missing
NOTE_*constants in https://github.com/rust-lang/libc/pull/3883 - Hermit: add missing error numbers in https://github.com/rust-lang/libc/pull/3858
- Hurd: add
__timevalfor 64-bit support in https://github.com/rust-lang/libc/pull/3786 - Linux: add
epoll_pwait2in https://github.com/rust-lang/libc/pull/3868 - Linux: add
mq_notifyin https://github.com/rust-lang/libc/pull/3849 - Linux: add missing
NFT_CT_*constants in https://github.com/rust-lang/libc/pull/3844 - Linux: add the
fchmodat2syscall in https://github.com/rust-lang/libc/pull/3588 - Linux: add the
msealsyscall in https://github.com/rust-lang/libc/pull/3798 - OpenBSD: add
sendmmsgandrecvmmsgin https://github.com/rust-lang/libc/pull/3831 - Unix: add
IN6ADDR_ANY_INITandIN6ADDR_LOOPBACK_INITin https://github.com/rust-lang/libc/pull/3693 - VxWorks: add
S_ISVTXin https://github.com/rust-lang/libc/pull/3768 - VxWorks: add
vxCpuLibandtaskLibfunctions https://github.com/rust-lang/libc/pull/3861 - WASIp2: add definitions for
std::netsupport in https://github.com/rust-lang/libc/pull/3892
Fixed
- Correctly handle version checks when
clippy-driveris used https://github.com/rust-lang/libc/pull/3893
Changed
- EspIdf: change signal constants to c_int in https://github.com/rust-lang/libc/pull/3895
- HorizonOS: update network definitions in https://github.com/rust-lang/libc/pull/3863
- Linux: combine
ioctlAPIs in https://github.com/rust-lang/libc/pull/3722 - WASI: enable CI testing in https://github.com/rust-lang/libc/pull/3869
- WASIp2: enable CI testing in https://github.com/rust-lang/libc/pull/3870
0.2.158 - 2024-08-19
Other
- WASI: fix missing
Iteratorwithrustc-dep-of-stdin https://github.com/rust-lang/libc/pull/3856#event-13924913068
0.2.157 - 2024-08-17
Added
- Apple: add
_NSGetArgv,_NSGetArgcand_NSGetPrognamein https://github.com/rust-lang/libc/pull/3702 - Build: add
RUSTC_WRAPPERsupport in https://github.com/rust-lang/libc/pull/3845 - FreeBSD: add
execvpesupport from 14.1 release in https://github.com/rust-lang/libc/pull/3745 - Fuchsia: add
SO_BINDTOIFINDEX - Linux: add
klogctlin https://github.com/rust-lang/libc/pull/3777 - MacOS: add
fcntlOFD commands in https://github.com/rust-lang/libc/pull/3563 - NetBSD: add
_lwp_parkin https://github.com/rust-lang/libc/pull/3721 - Solaris: add missing networking support in https://github.com/rust-lang/libc/pull/3717
- Unix: add
pthread_equalin https://github.com/rust-lang/libc/pull/3773 - WASI: add
select,FD_SET,FD_ZERO,FD_ISSETin https://github.com/rust-lang/libc/pull/3681
Fixed
- TEEOS: fix octal notation for
O_*constants in https://github.com/rust-lang/libc/pull/3841
Changed
- FreeBSD: always use freebsd12 when
rustc_dep_of_stdis set in https://github.com/rust-lang/libc/pull/3723
0.2.156 - 2024-08-15
Added
- Apple: add
F_ALLOCATEPERSISTin https://github.com/rust-lang/libc/pull/3712 - Apple: add
os_sync_wait_on_addressand related definitions in https://github.com/rust-lang/libc/pull/3769 - BSD: generalise
IPV6_DONTFRAGto all BSD targets in https://github.com/rust-lang/libc/pull/3716 - FreeBSD/DragonFly: add
IP_RECVTTL/IPV6_RECVHOPLIMITin https://github.com/rust-lang/libc/pull/3751 - Hurd: add
XATTR_CREATE,XATTR_REPLACEin https://github.com/rust-lang/libc/pull/3739 - Linux GNU:
confstrAPI and_CS_*in https://github.com/rust-lang/libc/pull/3771 - Linux musl: add
preadv2andpwritev2(1.2.5 min.) in https://github.com/rust-lang/libc/pull/3762 - VxWorks: add the constant
SOMAXCONNin https://github.com/rust-lang/libc/pull/3761 - VxWorks: add a few errnoLib related constants in https://github.com/rust-lang/libc/pull/3780
Fixed
- Solaris/illumos: Change
ifa_flagstype to u64 in https://github.com/rust-lang/libc/pull/3729 - QNX 7.0: Disable
libregexin https://github.com/rust-lang/libc/pull/3775
Changed
- QNX NTO: update platform support in https://github.com/rust-lang/libc/pull/3815
addr_of!(EXTERN_STATIC)is now considered safe in https://github.com/rust-lang/libc/pull/3776
Removed
- Apple: remove
rmx_statein https://github.com/rust-lang/libc/pull/3776
Other
- Update or remove CI tests that have been failing