Skip to content

Releases: rust-lang/libc

0.2.184

01 Apr 11:56

Choose a tag to compare

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_MINTTL to bsd (#5026)
  • Cygwin: Add TIOCM_DSR (#5031)
  • FreeBSD: Added xfile structe 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_t for riscv64 (#5029)
  • NetBSD: Add missing CLOCK_ constants (#5020)
  • NuttX: Add _SC_HOST_NAME_MAX (#5004)
  • VxWorks: Add flock and F_*LCK constants (#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 than Padding::uninit() (#5036)

Changed

  • potentially breaking Linux: Add new fields to struct ptrace_syscall_info (#4966)
  • Re-export core::ffi integer types rather than redefining (#5015)
  • Redox: Update F_DUPFD, IP, and TCP constants to match relibc (#4990)

0.2.183

08 Mar 07:44

Choose a tag to compare

Added

  • ESP-IDF: Add SOMAXCONN (#4993)
  • Linux: Add name_to_handle_at and open_by_handle_at (#4988)
  • NetBSD: Add kinfo_file, kinfo_pcb, and related constants (#4985)
  • OpenBSD: Add kinfo_file and related constants (#4991)
  • VxWorks: Add additional structs and defines (#5003)
  • Various: Implement Default for timeval and timespec (#4976)

Fixed

  • Hexagon musl: Enable unstable 64-bit time_t support and musl_v1_2_3 (#4992)
  • Nintendo Switch: Fix target support (#4982)
  • OpenBSD: Wrap an unused field in Padding (#4997)
  • Redox: Change sigaction.sa_flags to c_int (#4986)
  • Redox: Fix blkcnt_t type (#4994)

0.2.182

13 Feb 08:46

Choose a tag to compare

Added

  • Android, Linux: Add tgkill (#4970)
  • Redox: Add RENAME_NOREPLACE (#4968)
  • Redox: Add renameat2 (#4968)

1.0.0-alpha.3

09 Feb 21:32

Choose a tag to compare

1.0.0-alpha.3 Pre-release
Pre-release

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.181

09 Feb 21:29

Choose a tag to compare

Added

  • Apple: Add MADV_ZERO (#4924)
  • Redox: Add makedev, major, and minor (#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}speed on 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)

ctest-0.5.0

29 Jan 14:22

Choose a tag to compare

  • Clean up some ctest internals
  • Increase the recursion limit to fix building on docs.rs

0.2.180

08 Jan 12:23

Choose a tag to compare

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)

1.0.0-alpha.2

06 Jan 10:53

Choose a tag to compare

1.0.0-alpha.2 Pre-release
Pre-release
chore: Release package libc version 1.0.0-alpha.2

0.2.179

03 Jan 10:12

Choose a tag to compare

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)

ctest-0.5.0-beta.3

28 Dec 09:06

Choose a tag to compare

  • Clean up some ctest internals
  • Increase the recursion limit to fix building on docs.rs