This document lists the ABI breaks that were made in each mlibc major version.
- #814:
struct timex
'slong int tai
changed to the correctint tai
, andint __padding[11]
got appended to the struct. - #816:
sys_wait4
on Linux now correctly returns apid_t
, not anint
as previously. - #816: All
MS_*
macros of thesys/mount.h
header were adjusted to match linux. - #816:
struct epoll_event
now gets correctly packed onx86_64
. - #819:
str(n)dupa
is now defined as a pure macro, and not as a macro that points to a function. - #828: Linux-specific functions previously included in the posix option in
pthreads.h
andsched.h
are not correctly guarded behind the linux option. - #828: The
CPU_*
macros ofsched.h
have been rewritten to resolve to internal mlibc implementations, and are now correctly guarded behind the linux option. - #735:
sched_getcpu
andsetns
were previously mistakenly C++-mangled and not declared, which has now been rectified.
- #728:
The macros
CMSG_{LEN,SPACE,DATA}
were not accounting for padding betweenstruct cmsghdr
and it's respective data. This manifested itself as some parts of control data being skipped on platforms wherestruct cmsghdr
is not divisible byalignof(size_t)
. - #452: The functions
FD_{CLR,ISSET,SET,ZERO}
were renamed to__FD_{CLR,ISSET,SET,ZERO}
and replaced by macros to match Wine's assumptions. - #511: Musl's regex engine was added, implementing
regcomp
andregexec
. This required some changes to theregex_t
struct. - #504: In the Linux ABI, a
domainname
member was added tostruct utsname
, which is a glibc extension. - #311: Added all necessary fields in
pthread_attr_t
required for implementing allpthread_attr
functions. - #652: The ABI of
struct statfs
andstruct statvfs
was changed to match Linux.socklen_t
was also changed fromunsigned long
tounsigned int
. - #658: In the Linux ABI,
cc_t
was changed from anunsigned int
to anunsigned char
. - #679: The
struct glob_t
received some additional members to bring it up to par with glibc.