release notes for 0.7.6 bugfix release
[musl] / WHATSNEW
1 0.5.0 - initial release
2
3
4
5 0.5.9 - signal ABI bugfix, various cleanup and fixes:
6
7 sigset_t was wrongly defined as 1024 bytes instead of 1024 bits,
8 breaking the intended ABI compatibility with the LSB/glibc sigaction
9 structure. users should upgrade immediately and rebuild any libraries
10 or object files that might be using the incorrect definitions.
11
12 improved security against DoS with tcb shadow passwords by checking
13 that the file opened was really an ordinary file.
14
15 fixed a bug in the implementation of atomic ops that could have
16 allowed the compiler to incorrectly reorder them (in practice, gcc
17 with the default settings on i386 was not reordering them).
18
19 greatly improved conformance to the C and POSIX standards regarding
20 what the standard header files make visible. _POSIX_C_SOURCE is now
21 needed to get POSIX functions in standard C headers, and _XOPEN_SOURCE
22 or _GNU_SOURCE are required to get XSI interfaces or GNU extensions,
23 respectively.
24
25 many internal improvements have been made to the syscall-related code
26 in preparation for porting to x86_64 and other archs.
27
28
29
30 0.6.0 - x86_64 port, various important bugs fixed
31
32 new x86_64 (amd64) architecture port, contributed by Nicholas J. Kain,
33 along with PORTING guide. source tree layout and build system have
34 been improved to accommodate further ports.
35
36 various bugs that were introduced while making the headers respect C
37 and POSIX namespace standards have been fixed. conformance to the
38 standards has been improved.
39
40 fixed an inefficiency in qsort that triggered a bug (occasionaly
41 internal compiler error) in some versions of gcc.
42
43 fixed a major bug in the printf %n specifier that prevented it from
44 working and caused memory corruption.
45
46
47
48 0.7.0 - major improvements to posix conformance and completeness
49
50 implemented posix shared memory and semaphore interfaces.
51
52 implemented all remaining required pthread and clock interfaces.
53
54 major fixes to signal semantics.
55
56 greatly improved temporary file name generation for safety against
57 denial of service due to intentional name collisions.
58
59 added syscall wrappers for the linux inotify interface.
60
61 malloc(0) now returns a non-null pointer.
62
63 fixed printf %n specifier (again), pthread_once (it was always
64 hanging), and non-default-type mutex behavior.
65
66 added ucontext/sigcontext support in headers to facilitate building
67 libgcc with dwarf2 unwind support, and possibly other low-level tools.
68
69 improved musl-gcc compiler wrapper.
70
71 implemented many small missing functions here and there, minor header
72 fixes, etc.
73
74
75
76 0.7.1 - improvements to completeness, bug fixes
77
78 implemented flockfile, wprintf, and robust mutex functions.
79
80 fixed stack corruption bug in times(), minor header bugs, and some
81 error return value bugs in thread interfaces.
82
83
84
85 0.7.5 - new features, major optimization, and robustness
86
87 implemented POSIX timers.
88
89 optimized and simplified many thread-related functions.
90
91 eliminated resource leak races in thread cancellation. (almost all
92 existing implementations, including glibc, have these leaks.)
93
94 overhauled stdio implementation to take advantage of readv/writev for
95 reduced syscall load, and improved stdio's handling of error status.
96
97 added syscall header and interface for applications to use and
98 greatly simplified internal system for making syscalls.
99
100 strangthened tmpnam/tempnam/tmpfile filename generation and made the
101 straight C functions not depend on POSIX symbols.
102
103 fixed pthread cancellation ABI on i386 to match the LSB/glibc ABI
104
105 better double-free handling in malloc
106
107 various minor bug fixes
108
109
110
111 0.7.6 - major bug fixes
112
113 fixed rare but serious under-allocation bug in malloc.
114
115 fixed signedness bug in strchr that prevented finding high bytes.
116
117 fixed serious parsing bugs in strtold.
118
119 fixed statvfs syscall (it was always failing with EINVAL).
120
121 fixed race condition in set*id() functions with threads (possible
122 deadlock). further audit still needed though.
123
124 fseek no longer sets the stream error flag on failed seeks (this was
125 wrong and broke some programs, notably GNU m4).
126
127 nl_langinfo is no longer a dummy function. (the functionality was
128 previously implemented but accidentally left unused).
129
130 various small fixes have been made to the implementations and
131 prototypes for nonstandard and obsolete functions