Skip to content

Latest commit

 

History

History
904 lines (697 loc) · 59 KB

File metadata and controls

904 lines (697 loc) · 59 KB

Changelog

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 mcontext type definitions (#4886)
  • uClibc: Re-enable __SIZEOF_PTHREAD_COND_T on non-L4Re uclibc (#4915)
  • uClibc: Restructure Linux netlink module 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_LEN macro (#4269)
  • Linux: add getitimer and setitimer (#4890)
  • Linux: add pthread_tryjoin_n and pthread_timedjoin_np (#4887)
  • Musl: Add unstable support for 64-bit time_t on 32-bit platforms (#4463)
  • NetBSD, OpenBSD: Add interface LINK_STATE_* definitions from sys/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_SETSIZE on 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_msghdr alignment (#4902)
  • NetBSD: Fix siginfo_t layout on 32-bit platforms (#4904)
  • NetBSD: change definition of pthread_spin_t to 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 pthread struct fields private (#4876)
  • Linux, Fuchsia: Mark mq_attr padding area as such (#4858)
  • Types: Wrap a number of private fields in the Padding type (#4862)

Removed

  • Build: Remove RUST_LIBC_UNSTABLE_LINUX_TIME_BITS64 (#4865)
  • WASI: Remove nonexistent clocks (#4880)

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 getresgid and getresuid (#4752)
  • Redox: Add setresgid and setresuid (#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, and sioLibCommon.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 EWOULDBLOCK to make it an alias of EAGAIN (#4790)
  • AIX: Resolve function comparison and unnecessary_transmutes warnings (#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)) for canxl_frame (#4760)
  • Make eventfd argument names match OS docs/headers (#4830)
  • NetBSD: Account for upstream changes to ptrace with LWP (#4782)
  • NetBSD: Correct ipc_perm, split from OpenBSD as ipc.rs (#4782)
  • NetBSD: Correct a number of symbol link names (#4782)
  • NetBSD: Correct the type of kinfo_vmentry.kve_path (#)
  • NetBSD: Fix uucred.cr_ngroups from int to short (#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_data from 12 to 24 (#4782)
  • NetBSD: Introduce if_.rs, fix the definition of ifreq (#4782)
  • NetBSD: Introduce time.rs, fix the values of CLOCK_*_CPUTIME_ID (#4782)
  • NetBSD: Introduce timex.rs (#4782)
  • NetBSD: Introduce types.rs, correct the definition of lwpid_t (#4782)
  • NetBSD: Introduce utmp_.rs, correct the definition of lastlog (#4782)
  • NetBSD: Introduce utmpx_.rs, correct utmpx definitions (#4782)
  • NetBSD: Make _cpuset an extern type (#4782)
  • NetBSD: RISC-V 64: Fix the mcontext types (#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_t and unskip its tests (#4760)
  • MinGW: Set L_tmpnam and TMP_MAX to 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_spare non-public (#4782)
  • NetBSD: Remove BPF constants (#4782)
  • NetBSD: Remove *_MAXID constants and AT_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, TIOCSETAF constants (#4736)
  • Apple: Add pthread_cond_timedwait_relative_np (#4719)
  • BSDs: Add _CS_PATH constant (#4738)
  • Linux-like: Add SIGEMT for 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 rustc since 1.78. (#2406)
  • Debug is now always implemented, rather than being gated behind the extra_traits feature. (#4624)

Added

  • AIX: Restore some non-POSIX functions guarded by the _KERNEL macro. (#4607)
  • FreeBSD 14: Add st_fileref to struct stat (#4642)
  • Haiku: Add the accept4 POSIX 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_PACKET optnames (#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.h constants (#4666)
  • Redox: Enable strftime and mkostemp[s] (#4629)
  • Unix, Windows: Add qsort_r (Unix), and qsort(_s) (Windows) (#4677)
  • Unix: Add dlvsym for Linux-gnu, FreeBSD, and NetBSD (#4671)
  • Unix: Add sigqueue (#4620)

Changed

  • FreeBSD 15: Mark kinfo_proc as non-exhaustive (#4553)
  • FreeBSD: Set the ELF symbol version for readdir_r (#4694)
  • Linux: Correct the config for whether or not epoll_event is packed (#4639)
  • Tests: Replace the old ctest with the much more reliable new implementation (#4655 and many related PRs)

Fixed

  • AIX: Fix the type of the 4th arguement of getgrnam_r ([#4656](#4656
  • FreeBSD: Limit P_IDLEPROC to FreeBSD 15 (#4640)
  • FreeBSD: Limit mcontext_t::mc_tlsbase to 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_t a union (#4549)
  • Redox: Fix the types of gid_t and uid_t (#4689)
  • Redox: Fix the value of MAP_FIXED (#4684)

Deprecated

  • Apple: Correct the deprecated attribute for iconv (a97a0b53)
  • FreeBSD: Deprecate TIOCMGDTRWAIT and TIOCMSDTRWAIT (#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_info and friends (#4578)
  • AIX: Retore struct winsize (#4577)
  • Android: Add UDP socket option constants (#4619)
  • Android: Add CLONE_CLEAR_SIGHAND and CLONE_INTO_CGROUP (#4502)
  • Android: Add more prctl constants (#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 xinpgen and related types (#4482)
  • FreeBSD: Add xktls_session (#4482)
  • Haiku: Add functionality from libbsd (#4221)
  • Linux: Add SECBIT_* (#4480)
  • NetBSD, OpenBSD: Export ioctl request generator macros (#4460)
  • NetBSD: Add ptsname_r (#4608)
  • RISCV32: Add time-related syscalls (#4612)
  • Solarish: Add strftime* (#4453)
  • linux: Add EXEC_RESTRICT_* and EXEC_DENY_* (#4545)

Changed

  • AIX: Add const to 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 ioctl request argument (#4582)
  • AIX: Fix the types of stat{,64}.st_*tim (#4597)
  • AIX: Use unique errno values (#4507)
  • Build: Fix an incorrect target_os -> target_arch check (#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_MESGQ and SI_ASYNCIO definitions (#4529)
  • Musl Mips64: Swap the order of si_errno and si_code in siginfo_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_action to be #[repr(C)] (#60a8cfd5)
  • PSP: Correct char -> c_char (eaab4fc3)
  • PowerPC musl: Fix termios definitions (#4518)
  • PowerPC musl: Fix the definition of EDEADLK (#4517)
  • PowerPC musl: Fix the definition of NCCS (#4513)
  • PowerPC musl: Fix the definitions of MAP_LOCKED and MAP_NORESERVE (#4516)
  • PowerPC64 musl: Fix the definition of shmid_ds (#4519)

Deprecated

  • Linux: MAP_32BIT is only defined on x86 on non-x86 architectures (#4511)

Removed

  • AIX: Remove duplicate constant definitions FIND and ENTER (#4588)
  • s390x musl: Remove O_FSYNC (#4515)
  • s390x musl: Remove RTLD_DEEPBIND (#4515)

0.2.174 - 2025-06-17

Added

  • Linux: Make pidfd_info fields pub (#4487)

Fixed

  • Gnu x32: Add missing timespec.tv_nsec (#4497)
  • NuttX: Use nlink_t type for st_nlink in struct stat definition (#4483)

Other

  • Allow new unpredictable_function_pointer_comparisons lints (#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_SPLICE socket 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 nsfs ioctls (#4436)
  • Linux: Add constants for Memory-Deny-Write-Execute prctls (#4400)
  • Linux: Add constants from linux/cn_proc.h and linux/connector.h (#4434)
  • Linux: Add new flags for pwritev2 and preadv2 (#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_OFFLINE constant (#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 arc4random and arc4random_buf (#4464)
  • RISC-V Musl: Add MADV_SOFT_OFFLINE definition (#4447)
  • Redox: Define SCM_RIGHTS (#4440)
  • VxWorks: Add missing UTIME defines and TASK_RENAME_LENGTH (#4407)
  • Windows: Add more time.h functions (#4427)

Changed

  • Redox: Update SA_ constants. (#4426)
  • Redox: make CMSG_ALIGN, CMSG_LEN, and CMSG_SPACE const 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_perm bindings (#4384)
  • Musl: Fix the O_LARGEFILE constant value. (#4443)

0.2.172 - 2025-04-14

Added

  • Android: Add getauxval for 32-bit targets (#4338)
  • Android: Add if_tun.h ioctls (#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 filedesc and fdescenttbl (#4327)
  • Glibc: Add unstable support for _FILE_OFFSET_BITS=64 (#4345)
  • Hermit: Add AF_UNSPEC (#4344)
  • Hermit: Add AF_VSOCK (#4344)
  • Illumos, NetBSD: Add timerfd APIs (#4333)
  • Linux: Add _IO, _IOW, _IOR, _IOWR to the exported API (#4325)
  • Linux: Add tcp_info to 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_config and related PTRACE_*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 utmpx API (#4332)
  • Musl: Enable getrandom on 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.h and sys/uio.h definitions (#4388)
  • Solaris: Temporarily define O_DIRECT and SIGINFO (#4348)
  • Solarish: Add secure_getenv (#4342)
  • VxWorks: Add missing d_type member to dirent (#4352)
  • VxWorks: Add missing signal-related constsants (#4352)
  • VxWorks: Add more error codes (#4337)

Deprecated

  • FreeBSD: Deprecate TCP_PCAP_OUT and TCP_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_ONSTACK on RISC-V-32 (#4335)
  • VxWorks: Fix a typo in the waitpid parameter name (#4334)

Removed

  • Musl: Remove O_FSYNC on RISC-V-32 (use O_SYNC instead) (#4335)
  • Musl: Remove RTLD_DEEPBIND on 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_EXEC and MFD_NOEXEC_SEAL on sparc64" (#)
  • CI: Use $PWD instead of $(pwd) in run-docker (#4345)
  • Solarish: Restrict openpty and forkpty polyfills 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_freenameindex support (#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.h interfaces available on all FreeBSD-like systems (#4294)
  • Linux: Add AF_XDP structs for all Linux environments (#4163)
  • Linux: Add SysV semaphore constants (#4286)
  • Linux: Add F_SEAL_EXEC (#4316)
  • Linux: Add SO_PREFER_BUSY_POLL and SO_BUSY_POLL_BUDGET (#3917)
  • Linux: Add devmem structs (#4299)
  • Linux: Add socket constants up to SO_DEVMEM_DONTNEED (#4299)
  • NetBSD, OpenBSD, DragonflyBSD: Add closefrom (#4290)
  • NuttX: Add pw_passwd field to passwd (#4222)
  • Solarish: define IP_BOUND_IF and IPV6_BOUND_IF (#4287)
  • Wali: Add bindings for wasm32-wali-linux-musl target (#4244)

Changed

  • AIX: Use sa_sigaction instead of a union (#4250)
  • Make msqid_ds.__msg_cbytes public (#4301)
  • Unix: Make all major, minor, makedev into const 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_size signed (#4298)
  • Linux: Correct values for SI_TIMER, SI_MESGQ, SI_ASYNCIO (#4292)
  • NuttX: Update tm_zone and d_name fields to use c_char type (#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-update to rustup update (#4306)
  • CI: Remove tests for the i586-pc-windows-msvc target (#4311)
  • CI: Remove the check_cfg job (#4322)
  • Change the range syntax that is giving ctest problems (#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 setdomainname and getdomainname #4212
  • FreeBSD: Add evdev structures #3756
  • FreeBSD: Add the new st_filerev field to stat32 (#4254)
  • Linux: Add SI_*`` and TRAP_*`` signal codes #4225
  • Linux: Add experimental configuration to enable 64-bit time in kernel APIs, set by RUST_LIBC_UNSTABLE_LINUX_TIME_BITS64. #4148
  • Linux: Add recent socket timestamping flags #4273
  • Linux: Added new CANFD_FDF flag for the flags field of canfd_frame #4223
  • Musl: add CLONE_NEWTIME #4226
  • Solarish: add the posix_spawn family of functions #4259

Deprecated

  • Linux: deprecate kernel modules syscalls #4228

Changed

  • Emscripten: Assume version is at least 3.1.42 #4243

Fixed

  • BSD: Correct the definition of WEXITSTATUS #4213
  • Hurd: Fix CMSG_DATA on 64bit systems (#4240)
  • NetBSD: fix getmntinfo (#4265
  • VxWorks: Fix the size of time_t #426

Other

  • Add labels to FIXMEs #4230, #4229, #4237
  • CI: Bump FreeBSD CI to 13.4 and 14.2 #4260
  • Copy definitions from core::ffi and centralize them #4256
  • Define c_char at top-level and remove per-target c_char definitions #4202
  • Port style.rs to syn and add tests for the style checker #4220

0.2.169 - 2024-12-18

Added

  • FreeBSD: add more socket TCP stack constants #4193
  • Fuchsia: add a sockaddr_vm definition #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_char with a reexport #4195
  • Fix c_char on various targets #4199
  • Mirror c_char configuration from rust-lang/rust #4198

Cleanup

  • Do not re-export c_void in target-specific code #4200

0.2.168 - 2024-12-09

Added

  • Linux: Add new process flags (#4174)
  • Linux: Make IFA_* constants available on all Linux targets #4185
  • Linux: add MAP_DROPPABLE #4173
  • Solaris, Illumos: add SIGRTMIN and SIGRTMAX #4171
  • Unix, Linux: adding POSIX memccpy and mempcpy GNU extension <#4186.

Deprecated

  • FreeBSD: Deprecate the CAP_UNUSED* and CAP_ALL* constants (#4183)

Fixed

  • Make the Debug implementation for unions opaque (#4176)

Other

  • Allow the unpredictable_function_pointer_comparisons lint where needed #4177
  • CI: Upload artifacts created by libc-test #4180
  • CI: Use workflow commands to group output by target #4179
  • CI: add caching #4183

0.2.167 - 2024-11-28

Added

  • Solarish: add st_fstype to stat #4145
  • Trusty: Add intptr_t and uintptr_t (#4161)

Fixed

  • Fix the build with rustc-dep-of-std #4158
  • Wasi: Add back unsafe block for clockid_t static variables (#4157)

Cleanup

  • Create an internal prelude #4161
  • Fix unused_qualifications#4132

Other

  • CI: Check various FreeBSD versions (#4159)
  • CI: add a timeout for all jobs #4164
  • CI: verify MSRV for wasm32-wasi #4157
  • Migrate to the 2021 edition #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:

  • Revert removal of array size hacks #4150
  • Ensure const extern functions are always enabled #4151

0.2.165 - 2024-11-25

Added

  • Android: add mkostemp, mkostemps #3601
  • Android: add a few API 30 calls #3604
  • Android: add missing syscall constants #3558
  • Apple: add in6_ifreq #3617
  • Apple: add missing sysctl net types #4022 (before release: remove if_family_id (#4137))
  • Freebsd: add kcmp call support #3746
  • Hurd: add MAP_32BIT and MAP_EXCL #4127
  • Hurd: add domainname field to utsname (#4089)
  • Linux GNU: add f_flags to struct statfs for arm, mips, powerpc and x86 #3663
  • Linux GNU: add malloc_stats #3596
  • Linux: add ELF relocation-related structs #3583
  • Linux: add ptp_* structs #4113
  • Linux: add ptp_clock_caps #4128
  • Linux: add ptp_pin_function and most PTP_ constants #4114
  • Linux: add missing AF_XDP structs & constants #3956
  • Linux: add missing netfilter consts (#3734)
  • Linux: add struct and constants for the mount_setattr syscall #4046
  • Linux: add wireless API #3441
  • Linux: expose the len8_dlc field of can_frame #3357
  • Musl: add utmpx API #3213
  • Musl: add missing syscall constants #4028
  • NetBSD: add mcontext-related data for RISCV64 #3468
  • Redox: add new netinet constants #3586)
  • Solarish: add _POSIX_VDISABLE (#4103)
  • Tests: Add a test that the const extern fn macro works #4134
  • Tests: Add test of primitive types against std #3616
  • Unix: Add htonl, htons, ntohl, ntohs #3669
  • Unix: add aligned_alloc #3843
  • Windows: add aligned_realloc #3592

Fixed

  • breaking Hurd: fix MAP_HASSEMAPHORE name (#4127)
  • breaking ulibc Mips: fix SA_* mismatched types (#3211)
  • Aix: fix an enum FFI safety warning #3644
  • Haiku: fix some typos (#3664)
  • Tests: fix Elf{32,64}_Relr-related tests #3647
  • Tests: fix libc-tests for loongarch64-linux-musl
  • Tests: fix some clippy warnings #3855
  • Tests: fix tests on riscv64gc-unknown-freebsd #4129

Deprecated

Cleanup

Other

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 #4051
  • MSRV: document the MSRV of the stable channel to be 1.63 #4040
  • MacOS: move ifconf to s_no_extra_traits #4051

0.2.163 - 2024-11-16

Added

  • Aix: add more dlopen flags #4044
  • Android: add group calls #3499
  • FreeBSD: add TCP_FUNCTION_BLK and TCP_FUNCTION_ALIAS #4047
  • Linux: add confstr #3612
  • Solarish: add aio #4033
  • Solarish: add arc4random* #3944

Changed

  • Emscripten: upgrade emsdk to 3.1.68 #3962
  • Hurd: use more standard types #3733
  • Hurd: use the standard ssize_t = isize #4029
  • Solaris: fix confstr and ucontext_t #4035

Other

  • CI: add Solaris #4035
  • CI: add i686-unknown-freebsd #3997
  • CI: ensure that calls to sort do not depend on locale #4026
  • Specify rust-version in Cargo.toml #4041

0.2.162 - 2024-11-07

Added

  • Android: fix the alignment of uc_mcontext on arm64 #3894
  • Apple: add host_cpu_load_info #3916
  • ESP-IDF: add a time flag #3993
  • FreeBSD: add the CLOSE_RANGE_CLOEXEC flag#3996
  • FreeBSD: fix test errors regarding __gregset_t #3995
  • FreeBSD: fix tests on x86 FreeBSD 15 #3948
  • FreeBSD: make ucontext_t and mcontext_t available on all architectures #3848
  • Haiku: add getentropy #3991
  • Illumos: add syncfs #3990
  • Illumos: add some recently-added constants #3999
  • Linux: add ioctl flags #3960
  • Linux: add epoll busy polling parameters #3922
  • NuttX: add pthread_[get/set]name_np #4003
  • RTEMS: add arc4random_buf #3989
  • Trusty OS: add initial support #3942
  • WASIp2: expand socket support #3981

Fixed

  • Emscripten: don't pass -lc #4002
  • Hurd: change st_fsid field to st_dev #3785
  • Hurd: fix the definition of utsname #3992
  • Illumos/Solaris: fix FNM_CASEFOLD definition #4004
  • Solaris: fix all tests #3864

Other

  • CI: Add loongarch64 #4000
  • CI: Check that semver files are sorted #4018
  • CI: Re-enable the FreeBSD 15 job #3988
  • Clean up imports and extern crate usage #3897
  • Convert mode_t constants to octal #3634
  • Remove the wasm32-wasi target that has been deleted upstream #4013

0.2.161 - 2024-10-17

Fixed

  • OpenBSD: fix FNM_PATHNAME and FNM_NOESCAPE values #3983

0.2.160 - 2024-10-17

Added

  • Android: add PR_GET_NAME and PR_SET_NAME #3941
  • Apple: add F_TRANSFEREXTENTS #3925
  • Apple: add mach_error_string #3913
  • Apple: add additional pthread APIs #3846
  • Apple: add the LOCAL_PEERTOKEN socket option #3929
  • BSD: add RTF_*, RTA_*, RTAX_*, and RTM_* definitions #3714
  • Emscripten: add AT_EACCESS #3911
  • Emscripten: add getgrgid, getgrnam, getgrnam_r and getgrgid_r #3912
  • Emscripten: add getpwnam_r and getpwuid_r #3906
  • FreeBSD: add POLLRDHUP #3936
  • Haiku: add arc4random #3945
  • Illumos: add ptsname_r #3867
  • Linux: add fanotify interfaces #3695
  • Linux: add tcp_info #3480
  • Linux: add additional AF_PACKET options #3540
  • Linux: make Elf constants always available #3938
  • Musl x86: add iopl and ioperm #3720
  • Musl: add posix_spawn chdir functions #3949
  • Musl: add utmpx.h constants #3908
  • NetBSD: add sysctlnametomib, CLOCK_THREAD_CPUTIME_ID and CLOCK_PROCESS_CPUTIME_ID #3927
  • Nuttx: initial support #3909
  • RTEMS: add getentropy #3973
  • RTEMS: initial support #3866
  • Solarish: add POLLRDHUP, POSIX_FADV_*, O_RSYNC, and posix_fallocate #3936
  • Unix: add fnmatch.h #3937
  • VxWorks: add riscv64 support #3935
  • VxWorks: update constants related to the scheduler #3963

Changed

  • Redox: change ino_t to be c_ulonglong #3919

Fixed

  • ESP-IDF: fix mismatched constants and structs #3920
  • FreeBSD: fix struct stat on FreeBSD 12+ #3946

Other

  • CI: Fix CI for FreeBSD 15 #3950
  • Docs: link to windows-sys #3915

0.2.159 - 2024-09-24

Added

Fixed

Changed

0.2.158 - 2024-08-19

Other

0.2.157 - 2024-08-17

Added

Fixed

Changed

0.2.156 - 2024-08-15

Added

Fixed

Changed

Removed

Other

  • Update or remove CI tests that have been failing