| Rich Felker | df6e3ec | 2011-02-14 21:58:53 -0500 | [diff] [blame] | 1 | 0.5.0 - initial release | 
 | 2 |  | 
| Rich Felker | 2676198 | 2011-03-11 09:46:12 -0500 | [diff] [blame] | 3 |  | 
 | 4 |  | 
| Rich Felker | df6e3ec | 2011-02-14 21:58:53 -0500 | [diff] [blame] | 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 |  | 
| Rich Felker | 2676198 | 2011-03-11 09:46:12 -0500 | [diff] [blame] | 28 |  | 
 | 29 |  | 
| Rich Felker | 982a478 | 2011-02-17 19:15:08 -0500 | [diff] [blame] | 30 | 0.6.0 - x86_64 port, various important bugs fixed | 
| Rich Felker | 62275f7 | 2011-02-15 15:52:26 -0500 | [diff] [blame] | 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 | 
| Rich Felker | d09d068 | 2011-02-17 17:57:50 -0500 | [diff] [blame] | 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. | 
| Rich Felker | 8d07a03 | 2011-03-11 00:48:40 -0500 | [diff] [blame] | 45 |  | 
| Rich Felker | 2676198 | 2011-03-11 09:46:12 -0500 | [diff] [blame] | 46 |  | 
 | 47 |  | 
| Rich Felker | 6f05b6b | 2011-03-11 13:38:09 -0500 | [diff] [blame] | 48 | 0.7.0 - major improvements to posix conformance and completeness | 
| Rich Felker | 8d07a03 | 2011-03-11 00:48:40 -0500 | [diff] [blame] | 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 |  | 
| Rich Felker | 6f05b6b | 2011-03-11 13:38:09 -0500 | [diff] [blame] | 61 | malloc(0) now returns a non-null pointer. | 
| Rich Felker | 8d07a03 | 2011-03-11 00:48:40 -0500 | [diff] [blame] | 62 |  | 
| Rich Felker | 9f50b77 | 2011-03-11 14:51:36 -0500 | [diff] [blame] | 63 | fixed printf %n specifier (again), pthread_once (it was always | 
 | 64 | hanging), and non-default-type mutex behavior. | 
| Rich Felker | 8d07a03 | 2011-03-11 00:48:40 -0500 | [diff] [blame] | 65 |  | 
 | 66 | added ucontext/sigcontext support in headers to facilitate building | 
 | 67 | libgcc with dwarf2 unwind support, and possibly other low-level tools. | 
 | 68 |  | 
| Rich Felker | 6f05b6b | 2011-03-11 13:38:09 -0500 | [diff] [blame] | 69 | improved musl-gcc compiler wrapper. | 
 | 70 |  | 
| Rich Felker | 8d07a03 | 2011-03-11 00:48:40 -0500 | [diff] [blame] | 71 | implemented many small missing functions here and there, minor header | 
 | 72 | fixes, etc. | 
| Rich Felker | fc27b96 | 2011-03-18 09:59:20 -0400 | [diff] [blame] | 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. | 
| Rich Felker | 78eb087 | 2011-04-01 20:36:01 -0400 | [diff] [blame] | 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 |  | 
| Rich Felker | d1c24ac | 2011-04-01 23:15:29 -0400 | [diff] [blame] | 91 | eliminated resource leak races in thread cancellation. (almost all | 
 | 92 | existing implementations, including glibc, have these leaks.) | 
| Rich Felker | 78eb087 | 2011-04-01 20:36:01 -0400 | [diff] [blame] | 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. | 
| Rich Felker | c1f1500 | 2011-04-01 20:47:54 -0400 | [diff] [blame] | 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 | 
| Rich Felker | bd1f6eb | 2011-04-04 18:00:02 -0400 | [diff] [blame] | 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 | 
| Rich Felker | 25ce762 | 2011-04-05 10:28:08 -0400 | [diff] [blame] | 132 |  | 
 | 133 |  | 
 | 134 |  | 
| Rich Felker | 00817f0 | 2011-04-06 14:46:37 -0400 | [diff] [blame] | 135 | 0.7.7 - more bug fixes and program-compatibility improvements | 
| Rich Felker | 25ce762 | 2011-04-05 10:28:08 -0400 | [diff] [blame] | 136 |  | 
 | 137 | fixed floating point formatting and rounding bugs in printf. | 
 | 138 |  | 
 | 139 | fixed broken %N$ positional argument specifiers in printf. | 
 | 140 |  | 
 | 141 | fixed misaligned read/overread bug in strchr which could lead to | 
 | 142 | crashes scanning tiny strings at the end of a page when the next page | 
 | 143 | is not readable, or on archs (not yet supported) that forbid | 
 | 144 | misaligned reads. | 
 | 145 |  | 
| Rich Felker | 00817f0 | 2011-04-06 14:46:37 -0400 | [diff] [blame] | 146 | fixed breakage of statvfs on x86_64 | 
 | 147 |  | 
 | 148 | fixed crash in getmntent_r | 
 | 149 |  | 
 | 150 | fixed bug in POSIX timers created with NULL sigevent argument | 
 | 151 |  | 
 | 152 | improved semaphore performance, and sem_wait is now interruptable by | 
 | 153 | signals, as required by POSIX. | 
 | 154 |  | 
| Rich Felker | 59a37f8 | 2011-04-05 18:58:47 -0400 | [diff] [blame] | 155 | added many compatibility and system-level interfaces, increasing the | 
 | 156 | proportion of busybox that works with musl. | 
| Rich Felker | 2d1d62e | 2011-04-09 01:32:38 -0400 | [diff] [blame] | 157 |  | 
 | 158 |  | 
 | 159 |  | 
| Rich Felker | 088ae59 | 2011-04-14 23:33:46 -0400 | [diff] [blame] | 160 | 0.7.8 - more bug fixes and compatibility improvements | 
| Rich Felker | 2d1d62e | 2011-04-09 01:32:38 -0400 | [diff] [blame] | 161 |  | 
 | 162 | fixed problems with ipv6 dns and address printing code that made ipv6 | 
 | 163 | support practically unusable, and some other getaddrinfo bugs. | 
 | 164 |  | 
 | 165 | fixed broken sendmsg/recvmsg functions on x86_64 (caused by incorrect | 
 | 166 | msghdr structure). | 
 | 167 |  | 
 | 168 | fixed broken sigsetjmp asm on x86_64. | 
 | 169 |  | 
 | 170 | worked around a problem with input buffering on terminals reblocking | 
 | 171 | after getting a blank line, due to a bug in the linux readv syscall. | 
 | 172 |  | 
 | 173 | various improvements to the "rsyscall" system used to implement | 
 | 174 | threaded setuid, setgid, etc. | 
| Rich Felker | 0913560 | 2011-04-12 13:36:22 -0400 | [diff] [blame] | 175 |  | 
 | 176 | exiting/cancelling the a timer handler thread no longer kills the | 
 | 177 | timer. | 
 | 178 |  | 
 | 179 | fixed incorrect trailing zeros on some %g conversions in printf. | 
 | 180 |  | 
 | 181 | fixed buggy byte-swapping functions and moved them to inlines in | 
 | 182 | byteswap.h. | 
 | 183 |  | 
 | 184 | many small improvements to header/application compatibility, support | 
 | 185 | for nonstandard macros, etc. | 
| Rich Felker | 088ae59 | 2011-04-14 23:33:46 -0400 | [diff] [blame] | 186 |  | 
 | 187 |  | 
 | 188 |  | 
| Rich Felker | db9915e | 2011-04-22 20:14:04 -0400 | [diff] [blame] | 189 | 0.7.9 release notes | 
| Rich Felker | cbb65af | 2011-04-21 23:33:39 -0400 | [diff] [blame] | 190 |  | 
| Rich Felker | db9915e | 2011-04-22 20:14:04 -0400 | [diff] [blame] | 191 | new pthread cancellation implementation: | 
 | 192 | - safe against resource-leak/side-effect-leak race conditions | 
 | 193 | - safe against interruption by signal handlers | 
 | 194 | - reduced bloat in all cancellable functions | 
 | 195 | - reduced bloat for blocking cancellation | 
| Rich Felker | cbb65af | 2011-04-21 23:33:39 -0400 | [diff] [blame] | 196 |  | 
| Rich Felker | db9915e | 2011-04-22 20:14:04 -0400 | [diff] [blame] | 197 | new interfaces implemented: | 
 | 198 | - realpath (limited functionality) | 
 | 199 | - wordexp (limited functionality) | 
 | 200 | - flock (nonstandard) | 
 | 201 | - forkpty (nonstandard) | 
 | 202 | - posix_fadvise | 
 | 203 | - posix_fallocate | 
| Rich Felker | cbb65af | 2011-04-21 23:33:39 -0400 | [diff] [blame] | 204 |  | 
| Rich Felker | db9915e | 2011-04-22 20:14:04 -0400 | [diff] [blame] | 205 | general bug fixes: | 
 | 206 | - syslog function failure to communicate with syslogd | 
 | 207 | - bug in siginfo_t definition if wait.h was included before signal.h | 
 | 208 | - incorrect struct definitions for most of sysv ipc | 
 | 209 | - pthread_exit/cancel on timer handler wrongly destroying the timer | 
 | 210 | - linux dup2 ebusy workaround | 
 | 211 | - obscure issues in non-threaded programs using some pthread functions | 
 | 212 | - getopt_long allowed mismatch in last char of option name | 
 | 213 | - incorrect parsing of obscure ip address forms | 
 | 214 | - initgroups not working reliably (uninitialized var) | 
 | 215 | - shadow pass treating empty expiry field as pass-expired-in-1970 | 
 | 216 | - bogus longjmp if pthread_exit was called from cancellation handlers | 
| Rich Felker | 088ae59 | 2011-04-14 23:33:46 -0400 | [diff] [blame] | 217 |  | 
| Rich Felker | db9915e | 2011-04-22 20:14:04 -0400 | [diff] [blame] | 218 | x86_64-specific bug fixes: | 
 | 219 | - fcntl file locking | 
 | 220 | - thread stack alignment | 
 | 221 | - broken select timeouts due to incorrect timeval definition | 
| Rich Felker | c5025bf | 2011-05-17 14:13:06 -0400 | [diff] [blame] | 222 |  | 
 | 223 |  | 
 | 224 |  | 
 | 225 | 0.7.10 release notes | 
 | 226 |  | 
 | 227 | new features: | 
 | 228 | - ipv6 numeric string parsing | 
 | 229 | - eventfd syscall wrappers | 
 | 230 |  | 
 | 231 | optimizations: | 
 | 232 | - new qsort implementation using the smoothsort algorithm | 
 | 233 | - much smaller/faster sigset_t handling functions | 
 | 234 | - lowered spin count before futex wait in synchronization functions | 
 | 235 |  | 
 | 236 | general bug fixes: | 
 | 237 | - incorrect floating point round-to-even behavior in printf | 
 | 238 | - major bugs in pthread barrier implementation | 
 | 239 | - off-by-one error in scanf %n results | 
 | 240 | - scanf failure to report EOF when scanning for literal text | 
 | 241 | - minor missing/incorrect prototype issues | 
 | 242 | - dependency on undefined call order in fclose | 
 | 243 |  | 
 | 244 | compiler issue workarounds: | 
 | 245 | - incorrect inlining of variadic functions on recent gcc versions | 
 | 246 | - pcc preprocessor bug with recursive macro expansion | 
| Rich Felker | 2cee457 | 2011-06-28 22:06:58 -0400 | [diff] [blame] | 247 |  | 
 | 248 |  | 
 | 249 |  | 
 | 250 | 0.7.11 release notes | 
 | 251 |  | 
 | 252 | new features: | 
 | 253 | - integrated dynamic linker | 
 | 254 | - dynamic loading (dlopen/dlsym) (for dynamic-linked programs only) | 
 | 255 | - XSI search.h API | 
 | 256 | - POSIX message queues | 
 | 257 | - POSIX spawn interfaces | 
 | 258 | - BSD pseudo-random number generator API (random/srandom/initstate/etc.) | 
 | 259 | - floating point environment (limited usefulness due to gcc bugs) | 
 | 260 |  | 
 | 261 | general bug fixes: | 
 | 262 | - possible crashes with wordexp due to uninitialized variable | 
 | 263 | - race condition in pthread_kill (also present and unfixed in glibc/nptl) | 
 | 264 | - pthread exit destructors called too late | 
 | 265 | - dangerous unbounded vla in glob | 
 | 266 | - brk/sbrk legacy functions mismatching legacy semantics | 
 | 267 | - wcsncpy dest buffer overflow | 
 | 268 | - strncat and wcsncat possible overflows due to double-termination | 
| Rich Felker | 58483f0 | 2011-07-03 16:41:20 -0400 | [diff] [blame] | 269 |  | 
 | 270 |  | 
 | 271 |  | 
 | 272 | 0.7.12 release notes | 
 | 273 |  | 
 | 274 | new features: | 
 | 275 | - support for textrels in shared objects | 
 | 276 | - rpath support in dynamic linker | 
 | 277 | - stdio_ext.h functions (for better gnu software compatibility) | 
 | 278 |  | 
 | 279 | bug fixes: | 
 | 280 | - some compilers miscompiling dlopen due to misuse of longjmp | 
 | 281 | - safe handling of invalid long-double bit patterns (affects printf) | 
 | 282 | - workaround for bugs in linux mprotect syscall | 
 | 283 | - thread-safety for random() functions | 
 | 284 | - various minor issues | 
| Rich Felker | 801b311 | 2011-09-13 13:41:40 -0400 | [diff] [blame] | 285 |  | 
 | 286 |  | 
 | 287 |  | 
| Rich Felker | 5e9deea | 2011-09-13 16:12:57 -0400 | [diff] [blame] | 288 | 0.8.0 release notes | 
| Rich Felker | 801b311 | 2011-09-13 13:41:40 -0400 | [diff] [blame] | 289 |  | 
 | 290 | new features: | 
 | 291 | - chinese and japanese legacy charset support in iconv | 
 | 292 | - zero-syscall clock_gettime support (dynamic-linked x86_64 only) | 
 | 293 | - futex-based locking for stdio (previously used spinlocks) | 
 | 294 | - LD_PRELOAD and RTLD_NEXT support in dynamic linker | 
 | 295 | - strptime (mostly working but incomplete) | 
 | 296 | - posix aio (mostly working but not entirely conformant) | 
 | 297 | - memory streams (fmemopen, open_memstream, ...) | 
 | 298 | - stub/dummy implementations for various useless legacy functions | 
 | 299 | - if_nameindex | 
 | 300 |  | 
 | 301 | security hardening: | 
 | 302 | - setuid, etc. should not longer be able to "partially fail" with threads | 
 | 303 | - ensure suid programs start with fd 0,1,2 open | 
 | 304 | - improved openpty/forkpty failure checks | 
 | 305 |  | 
 | 306 | threads/synchronization bug fixes: | 
 | 307 | - dangerous spurious wakeup in pthread_join lead to early return | 
 | 308 | - race condition enabling async cancellation (delayed/lost cancellation) | 
 | 309 | - destruction/unmapping race conditions in semaphores, mutexes, rwlocks | 
 | 310 | - recursive rwlock_rdlock deadlock when a writer is waiting | 
 | 311 | - race condition in sigqueue with fork | 
 | 312 | - timer expiration thread exit wasn't running dtors | 
 | 313 | - timer threads weren't blocking signals | 
 | 314 | - close was wrongly cancellable after succeeding on some devices | 
 | 315 | - robust mutex list was not reset on fork | 
 | 316 |  | 
 | 317 | general bug fixes: | 
 | 318 | - incorrect logic in fread (spurious blocking; crash on write-only files) | 
 | 319 | - many corner cases and overflow cases for strtol-family functions | 
 | 320 | - various printf integer formatting issues with flags/width/precision | 
 | 321 | - incorrect iconv return value on failure | 
 | 322 | - broken FD_* macros on 64-bit targets | 
 | 323 | - clock function returning wrong value (real time not cpu time) | 
 | 324 | - siglongjmp signal mask clobbering (off-by-one pointer error) | 
 | 325 | - dynamic linker weak symbol resolution issues | 
 | 326 | - fdopendir failure to set errno | 
 | 327 | - various minor header fixes | 
| Rich Felker | d1d141c | 2011-09-14 19:11:15 -0400 | [diff] [blame] | 328 |  | 
 | 329 |  | 
 | 330 |  | 
 | 331 | 0.8.1 release notes | 
 | 332 |  | 
 | 333 | bug fixes: | 
 | 334 | - mismatching prototypes caused build failure on 64-bit | 
 | 335 | - other minor prototype errors in the headers have been fixed | 
 | 336 | - various other small omissions fixed | 
| Rich Felker | 455fc98 | 2011-09-17 11:41:11 -0400 | [diff] [blame] | 337 |  | 
 | 338 |  | 
 | 339 |  | 
 | 340 | 0.8.2 release notes | 
 | 341 |  | 
 | 342 | new features: | 
 | 343 | - ptrace syscall support | 
 | 344 |  | 
 | 345 | bug fixes: | 
 | 346 | - const error (only a warning with many compilers) in lio_listio | 
 | 347 | - minor portability fixes aimed at supporting new arch targets | 
| Rich Felker | 4a08c85 | 2011-09-21 20:24:12 -0400 | [diff] [blame] | 348 |  | 
 | 349 |  | 
 | 350 |  | 
 | 351 | 0.8.3 release notes | 
 | 352 |  | 
 | 353 | new features: | 
 | 354 | - arm port (experimental) | 
 | 355 | - better musl-gcc wrapper script for building against musl | 
 | 356 | - added clone system call | 
 | 357 |  | 
 | 358 | bug fixes: | 
 | 359 | - numerous header file typos, copy/paste errors, omissions | 
 | 360 | - statfs and statvfs ABI are now LSB-conformant (and actually work) | 
| Rich Felker | 4904b64 | 2012-01-22 11:37:27 -0500 | [diff] [blame] | 361 |  | 
 | 362 |  | 
 | 363 |  | 
| Rich Felker | 3562051 | 2012-01-23 00:37:45 -0500 | [diff] [blame] | 364 | 0.8.4 release notes | 
| Rich Felker | 4904b64 | 2012-01-22 11:37:27 -0500 | [diff] [blame] | 365 |  | 
 | 366 | new features:  | 
 | 367 | - arm dynamic linker support | 
 | 368 | - process-shared pthread barriers now work | 
| Rich Felker | 3562051 | 2012-01-23 00:37:45 -0500 | [diff] [blame] | 369 | - efficient futex-requeue-based cond var broadcast | 
| Rich Felker | 4904b64 | 2012-01-22 11:37:27 -0500 | [diff] [blame] | 370 | - more optional cancellation points are now cancellable | 
 | 371 | - printf accepts null pointers with %s, prints as "(null)" | 
 | 372 | - recursive mutexes are now fully reentrant | 
 | 373 | - __cxa_atexit support | 
 | 374 | - real vfork | 
 | 375 | - dynamic linker now gold-compatible | 
 | 376 | - prlimit syscall | 
 | 377 | - support for large limits with setrlimit/getrlimit (even on 32-bit) | 
| Rich Felker | 3562051 | 2012-01-23 00:37:45 -0500 | [diff] [blame] | 378 | - glob now supports GLOB_PERIOD option (GNU extension) | 
| Rich Felker | 4904b64 | 2012-01-22 11:37:27 -0500 | [diff] [blame] | 379 |  | 
 | 380 | bug fixes: | 
 | 381 | - many serious issues in condition variables | 
 | 382 | - rwlock failure-to-wake deadlock issues | 
 | 383 | - various small header files bugs/omissions | 
 | 384 | - wrong failure return for pthread_create | 
 | 385 | - path handling issues on execvp | 
| Rich Felker | 3562051 | 2012-01-23 00:37:45 -0500 | [diff] [blame] | 386 | - lock count corruption with robust recursive mutexes on owner death | 
| Rich Felker | 4904b64 | 2012-01-22 11:37:27 -0500 | [diff] [blame] | 387 | - integer overflows in atoi, etc. reading most-negative value | 
 | 388 | - spurious mremaps on every realloc of large memory chunks | 
| Rich Felker | 3562051 | 2012-01-23 00:37:45 -0500 | [diff] [blame] | 389 | - pthread cancellation failure in single-threaded programs | 
| Rich Felker | 4904b64 | 2012-01-22 11:37:27 -0500 | [diff] [blame] | 390 |  | 
 | 391 | security: | 
 | 392 | - avoid fd_set overflow in dns lookups | 
| Rich Felker | aab33ec | 2012-02-27 20:12:06 -0500 | [diff] [blame] | 393 |  | 
 | 394 |  | 
 | 395 |  | 
 | 396 | 0.8.5 release notes | 
 | 397 |  | 
 | 398 | new features: | 
 | 399 | - stdio operations are now cancellable (only when low-level io happens) | 
 | 400 | - global ctor/dtor support in main program start code and shared libs | 
 | 401 | - dynamic linker support for PIE executables (but missing startup code) | 
 | 402 | - vfork support on x86_64 | 
 | 403 | - complete set of locale_t functions (all ignore the locale argument) | 
 | 404 | - provide define float_t and double_t in math.h | 
 | 405 | - lighter/faster cancellation cleanup handler register/unregister | 
 | 406 |  | 
 | 407 | bug fixes: | 
 | 408 | - gcc wrapper now supports -shared, -nostdlib, -nostartfiles | 
 | 409 | - removed one wrongly-classified character from iswspace set (zwsp) | 
 | 410 | - fixed crashes in dns lookup on some errors, e.g. resolv.conf missing | 
 | 411 | - "make install" no longer tries to build shared libc if disabled | 
 | 412 | - ptrace argument handling bugs fixed | 
 | 413 | - work around visibility-hidden bugs in gcc 3.x | 
 | 414 | - fix thread-pointer-loss issue when it's initialized in signal handlers | 
 | 415 | - various minor typo/misc fixes in headers | 
 | 416 |  | 
 | 417 | compatibility: | 
 | 418 | - glob behaves more like traditional implementations w.r.t. GLOB_MARK | 
 | 419 | - added legacy futimes, lutimes functions | 
 | 420 | - more compatibility macros in sys/param.h (nonstandard header) | 
 | 421 | - setfs[ug]id syscall wrappers (linux specific) | 
 | 422 | - fgetpwent function (nonstandard) | 
 | 423 | - utmp.h matches traditional version more closely | 
 | 424 | - caddr_t now matches glibc type (void * instead of long) | 
 | 425 | - dummy (always-fail) dlopen and dlsym functions for static linked programs | 
 | 426 | - [efg]cvt functions (previously posix, removed from standard) | 
 | 427 | - get_current_dir_name function (nonstandard) | 
| Rich Felker | b1a8e0d | 2012-02-28 11:56:13 -0500 | [diff] [blame] | 428 |  | 
 | 429 |  | 
 | 430 |  | 
 | 431 | 0.8.6 release notes | 
 | 432 |  | 
 | 433 | bug fixes: | 
 | 434 | - fix crash in dns lookups for all static-linked, non-threaded programs | 
| Rich Felker | da0acc3 | 2012-03-17 20:35:25 -0400 | [diff] [blame] | 435 |  | 
 | 436 |  | 
 | 437 |  | 
 | 438 | 0.8.7 release notes | 
 | 439 |  | 
 | 440 | new features: | 
 | 441 | - c++ support with g++'s libstdc++ | 
 | 442 | - c99 math library (float, long double, complex, etc.) | 
 | 443 | - numerous wchar_t functions | 
 | 444 | - a64l, l64a functions | 
 | 445 | - getdate function | 
 | 446 |  | 
 | 447 | compatibility: | 
 | 448 | - c89 compatibility in math.h | 
 | 449 | - syscall.h alias for sys/syscall.h | 
 | 450 | - memory.h alias for string.h | 
 | 451 | - getcwd supports null buffer argument (auto-allocation) | 
 | 452 |  | 
 | 453 | bug fixes: | 
 | 454 | - major fenv (floating point environment) fixes and optimizations | 
 | 455 | - strptime mishandling of day/month names | 
 | 456 | - strtoull wrongly rejecting the highest 16 possible values as overflow | 
 | 457 | - math.h constant expression fixes for INFINITY/NAN/etc. | 
 | 458 | - scanf mishandling of "0" with "%x" | 
| Rich Felker | ef2c4fd | 2012-04-18 04:40:06 -0400 | [diff] [blame] | 459 |  | 
 | 460 |  | 
 | 461 |  | 
 | 462 | 0.8.8 release notes | 
 | 463 |  | 
 | 464 | new feature: | 
 | 465 | - major math correctness and performance improvements | 
 | 466 | - many math functions implemented in asm for i386 | 
 | 467 | - some math functions (mostly long double) in asm for x86_64 | 
 | 468 | - new floating point parser/converter with correct rounding | 
 | 469 | - implement wcstod, wcstof, and wcstold | 
 | 470 | - new scanf implementation - cleaner, faster, more correct | 
 | 471 | - minimal/incomplete strfmon implementation | 
 | 472 |  | 
 | 473 | compatibility: | 
 | 474 | - header fixes for c++ | 
 | 475 | - regex code resync with TRE; support common regex extensions | 
 | 476 | - support for compiling apps with gcc's -funsigned-char | 
 | 477 | - sysconf now returns dynamic limits for open files, processes | 
 | 478 | - give dlerror proper error status stickiness | 
 | 479 | - make alloca work even with -fno-builtin | 
 | 480 |  | 
 | 481 | critical security fixes: | 
 | 482 | - stack-based buffer overflow in fprintf on unbuffered files | 
 | 483 |  | 
 | 484 | other bug fixes: | 
 | 485 | - rare gcc register allocation (miscompilation) bug in syscall wrappers | 
 | 486 | - printf was rejecting the valid (but redundant) %lf format specifier | 
 | 487 | - fixed big data bloat (missing const) in math functions | 
 | 488 | - many math fixes related to floating point exceptions and rounding | 
 | 489 | - corrected DECIMAL_DIG definitions | 
 | 490 | - tgammal was wrongly setting global signgam | 
 | 491 | - crash in wordfree with uninitialized we_offs | 
 | 492 | - fix wordexp not null-initializing the we_offs initial slots | 
| Rich Felker | c5d1adc | 2012-04-19 22:02:50 -0400 | [diff] [blame] | 493 |  | 
 | 494 |  | 
 | 495 |  | 
 | 496 | 0.8.9 release notes | 
 | 497 |  | 
 | 498 | bug fixes: | 
 | 499 | - major breakage in strtol and family: failure to accept leading spaces | 
 | 500 | - incorrect name for MATH_ERREXCEPT in math.h | 
 | 501 |  | 
 | 502 | compatibility: | 
 | 503 | - prototypes for a few additional nonstandard functions | 
| Rich Felker | 0bd7ac0 | 2012-04-25 14:35:51 -0400 | [diff] [blame] | 504 |  | 
 | 505 |  | 
 | 506 |  | 
 | 507 | 0.8.10 release notes | 
 | 508 |  | 
 | 509 | new features: | 
 | 510 | - correct over/underflow detection (ERANGE setting) for strtod | 
 | 511 | - new musl-gcc wrapper, specfile based, faster and more robust | 
 | 512 | - meaningful return strings for dlerror | 
 | 513 | - new iswalpha, iswpunct, and wcwidth; sync'd to Unicode 6.1 | 
 | 514 | - towupper/towlower sync'd with Unicode 6.1 | 
 | 515 | - new futex-based libc-internal locks instead of spinlocks | 
 | 516 | - experimental stack protector support (minimal; no random canary) | 
 | 517 | - experimental gdb shared library tracking support | 
 | 518 |  | 
 | 519 | compatibility: | 
 | 520 | - getusershell family functions | 
 | 521 | - getresuid and getresgid syscall wrappers | 
 | 522 | - byte swapping macros in endian.h | 
 | 523 | - getdtablesize was wrongly declared in unistd.h for _XOPEN_SOURCE | 
 | 524 |  | 
 | 525 | bug fixes: | 
 | 526 | - iconv_open wrongly rejecting most dest charsets (broken in 0.8.0) | 
 | 527 | - sysconf failure when correct value is -1 (broken in 0.8.8) | 
 | 528 | - scanf and strtod family functions overreading past NAN (4 bytes vs 3) | 
 | 529 | - scanf and strtod wrongly treating "0.00000000001", etc. as 0 | 
 | 530 | - many bugs in towupper/towlower (never seriously tested before) | 
 | 531 | - int8_t definition was wrong when gcc -funsigned-char was used | 
| Rich Felker | 8a35dee | 2012-05-05 02:39:51 -0400 | [diff] [blame] | 532 |  | 
 | 533 |  | 
 | 534 |  | 
 | 535 | 0.9.0 release notes | 
 | 536 |  | 
 | 537 | license change: MIT | 
 | 538 |  | 
 | 539 | new features: | 
 | 540 | - configure script, improved build system | 
 | 541 | - full stack protector support | 
 | 542 | - PIE support on x86 and x86_64 | 
 | 543 | - new O(1) space, O(nm) time implementation of fnmatch | 
 | 544 | - improved support for sse2 floating point mode on x86 | 
 | 545 |  | 
 | 546 | compatibility: | 
 | 547 | - added linux unshare syscall | 
| Rich Felker | 2d3e2a7 | 2012-05-06 17:19:37 -0400 | [diff] [blame] | 548 | - exp10/pow10 function | 
| Rich Felker | 8a35dee | 2012-05-05 02:39:51 -0400 | [diff] [blame] | 549 | - sqrtl support on arm (previously missing) | 
 | 550 | - removed minimal linux/*.h headers that could conflict with real ones | 
 | 551 | - support for _LARGEFILE64_SOURCE (mapped to standard fcns with #define) | 
 | 552 | - better c89 compatibility in headers | 
 | 553 | - stub versions of sched_* functions (previously missing) | 
 | 554 | - pthread stacks no longer executable (compat with hardened kernels) | 
| Rich Felker | 2d3e2a7 | 2012-05-06 17:19:37 -0400 | [diff] [blame] | 555 | - new ar.h and lastlog.h (legacy junk) | 
 | 556 | - various other header improvements | 
| Rich Felker | 8a35dee | 2012-05-05 02:39:51 -0400 | [diff] [blame] | 557 |  | 
 | 558 | optimization: | 
 | 559 | - additional x86_64 math asm | 
 | 560 | - better formula for acos use in i386 asm | 
 | 561 |  | 
 | 562 | bug fixes: | 
 | 563 | - large (up to a few %) errors in strtod for certain values due to bug | 
 | 564 | - mbsnrtowcs and wcsnrtombs were completely broken (bad exit logic) | 
 | 565 | - wide printf %.0s could fail due to uninitialized variable | 
 | 566 | - missing dlerror strings for dlsym in some cases | 
| Rich Felker | bd45dc9 | 2012-06-03 16:31:45 -0400 | [diff] [blame] | 567 |  | 
 | 568 |  | 
 | 569 |  | 
 | 570 | 0.9.1 release notes | 
 | 571 |  | 
 | 572 | new features: | 
 | 573 | - dynamic linker can be used as a program to explicitly load/run executables | 
 | 574 | - ldd command, usable by making a symlink to the dynamic linker named ldd | 
 | 575 |  | 
 | 576 | bug fixes: | 
 | 577 | - major bugs in POSIX BRE parsing inherited from TRE regex code | 
 | 578 | - character matching bug in regex on ARM: WCHAR_MAX was assumed to be signed | 
 | 579 | - various obscure fixes related to signals and pthread cancellation | 
 | 580 | - remquot subnormal remainder bug | 
 | 581 | - buggy macros in (nonstandard) sys/param.h | 
 | 582 | - major bug in pthread barriers on x86_64 (out of bounds write) | 
 | 583 | - utimes (legacy) function was making wrong syscall (utime instead of utimes) | 
 | 584 | - avoid using "old" syscalls that don't exist on arm eabi linux | 
 | 585 | - broken strrchr(str, 0) | 
 | 586 | - broken mbsinit(0) | 
 | 587 | - broken wcsncmp | 
 | 588 | - syntax error in nextafter macro in tgmath.h | 
 | 589 | - missing support for -pie in musl-gcc wrapper | 
 | 590 | - abort could wrongly fail to terminate the program in some cases | 
 | 591 |  | 
 | 592 | compatibility: | 
 | 593 | - increase default thread stack size to 80k | 
 | 594 | - support _BSD_SOURCE feature test macro | 
 | 595 | - support _LARGEFILE64_SOURCE feature test macro (merely exposes alt names) | 
 | 596 | - lots of legacy-compatibility improvements in headers | 
 | 597 | - various minor GNU extension functions | 
 | 598 | - sysconf reporting number of available CPUs/cores | 
 | 599 | - various LSB/glibc ABI interfaces aimed at compatibility with some binaries | 
 | 600 | - use fistpll asm mnemonic instead of fistpq for compat with clang | 
| Rich Felker | ec820f1 | 2012-06-24 21:00:57 -0400 | [diff] [blame] | 601 |  | 
 | 602 |  | 
 | 603 |  | 
 | 604 | 0.9.2 release notes | 
 | 605 |  | 
 | 606 | bug fixes: | 
 | 607 | - pointer overflow in printf (crash on 32bit userspace, 64bit kernel) | 
 | 608 | - printf %ls over-read bug | 
 | 609 | - strtod failure to read -0x as negative zero | 
 | 610 | - flush stdio after dtors, not before | 
 | 611 | - wrong file position for buffered input streams on exit | 
 | 612 | - popen was broken when stdin/out were already closed | 
 | 613 | - broken wcwidth tables (missing many characters) | 
 | 614 | - fwrite: wrong return value of partial/failed write | 
 | 615 | - broken utf-16 conversions | 
 | 616 | - bad buffer length check in getlogin_r | 
 | 617 | - bad perror("") behavior; did not match perror(0) | 
 | 618 | - broken sysinfo syscall/structure | 
 | 619 | - stdint.h const macro signedness bugs | 
 | 620 | - broken include guards in some headers | 
 | 621 | - bogus localeconv values | 
 | 622 | - cancellation-safety for popen and pclose | 
 | 623 | - fma corner cases wrong on i386 | 
 | 624 | - fcntl F_GETOWN errno missing on failure. | 
 | 625 | - char signedness bug in dynamic linker broke dlopen on arm | 
 | 626 | - mprotect failure in dynamic linker caused crash instead of error | 
 | 627 |  | 
 | 628 | build system: | 
 | 629 | - configure check to work around hacked-up gcc versions | 
 | 630 | - test for old binutils that can't support musl dynamic linker | 
 | 631 |  | 
 | 632 | compatibility: | 
 | 633 | - make _GNU_SOURCE imply _LARGEFILE64_SOURCE | 
 | 634 | - syscall wrapper for lots of nonstandard and/or legacy linux syscalls | 
 | 635 | - versionsort stub | 
 | 636 | - timegm function (inverse of gmtime) | 
 | 637 | - various minor header tweaks | 
 | 638 | - make __freading/__fwriting semantics match traditional ones | 
 | 639 | - added gnulib-compatibility stdio interfaces | 
 | 640 | - added pthread_attr_setstack interface | 
 | 641 | - make strerror_r return partial string when buffer is too small | 
 | 642 | - duplocale should accept LC_GLOBAL_LOCALE | 
 | 643 | - align ptsname_r to upcoming posix requirements | 
 | 644 | - support invalid ld80 bit patterns as extra nans. | 
| Rich Felker | 8a996b7 | 2012-08-02 22:11:49 -0400 | [diff] [blame] | 645 |  | 
 | 646 |  | 
 | 647 |  | 
 | 648 | 0.9.3 release notes | 
 | 649 |  | 
 | 650 | new features: | 
 | 651 | - mips (32-bit, o32 abi) port, currently static-linked only | 
 | 652 | - newly overhauled crypt implementation | 
 | 653 | - improved library pathname info for debugger from the dynamic linker | 
 | 654 | - getaddrinfo (and getservbyname) now support /etc/services lookups | 
 | 655 | - pipe2 syscall wrapper | 
 | 656 | - splice and vmsplice syscall wrappers | 
 | 657 | - syscall wrappers for extended attribute interfaces | 
 | 658 | - ioperm/iopl syscall wrappers on archs that support these operations | 
 | 659 |  | 
 | 660 | bug fixes: | 
 | 661 | - dlsym RTLD_NEXT library search order was wrong | 
 | 662 | - multiple dlopen pathname and library name handling errors | 
 | 663 | - potential race condition in detached thread exit | 
 | 664 | - broken internal-lock-handling code not updated for futex-based __lock | 
 | 665 | - sem_trywait spurious EAGAIN errors arising from CAS failures | 
 | 666 | - workaround kernel bug in cmsghdr size_t vs socklen_t issue (64-bit) | 
 | 667 | - getservby* crash on null protocol argument | 
 | 668 | - logic error skipping failed interfaces in if_nameindex | 
 | 669 | - various minor header/declaration related issues | 
 | 670 |  | 
 | 671 | arm-specific bug fixes: | 
 | 672 | - broken crti/crtn startup code when gcc crtbegin/end files are linked | 
 | 673 | - sigsetjmp tail call optimization failure broke the function | 
 | 674 | - incorrect little-endian assumptions in atomic.h functions | 
 | 675 | - use of blx instruction in asm (not supported on pre-v5 arm) | 
 | 676 |  | 
 | 677 | build system: | 
 | 678 | - only use expensive -ffloat-store cflag on archs/compilers that need it | 
 | 679 | - make musl-gcc wrapper support -lgcc (mainly for self-hosting) | 
| Rich Felker | 53de960 | 2012-08-17 23:51:00 -0400 | [diff] [blame] | 680 |  | 
 | 681 |  | 
 | 682 |  | 
 | 683 | 0.9.4 release notes | 
 | 684 |  | 
 | 685 | new features: | 
 | 686 | - blowfish crypt | 
 | 687 | - dynamic linking on mips | 
 | 688 | - arm hard float support | 
 | 689 | - BSD fgetln function in stdio | 
 | 690 | - minor header improvements for compatibility | 
 | 691 | - support for CROSS_COMPILE variable to configure | 
 | 692 | - legacy significand function | 
 | 693 | - better support for SUSv3-targeted programs | 
 | 694 |  | 
 | 695 | performance: | 
 | 696 | - assembly (string ops based) memcpy for i386 and x86_64 | 
 | 697 | - reduce printf overhead | 
 | 698 |  | 
 | 699 | bug fixes: | 
 | 700 | - failure of strtod, etc. to process extremely long strings correctly | 
 | 701 | - read overrun in wcsstr for short needles | 
 | 702 | - various major mips issues that prevented most software from working | 
 | 703 | - erroneous floating point exception behavior in i386/x86_64 exp asm | 
 | 704 | - crashes on null arguments to legacy err.h functions | 
 | 705 | - various header file/type issues | 
 | 706 | - extremely rare/obscure race condition with robust mutexes | 
 | 707 | - crypt now never returns null (most programs don't check, then crash) | 
 | 708 | - missing xattr remove functions | 
| Rich Felker | 7ad42b9 | 2012-09-15 03:38:20 -0400 | [diff] [blame] | 709 |  | 
 | 710 |  | 
 | 711 |  | 
 | 712 | 0.9.5 release notes | 
 | 713 |  | 
 | 714 | compatibility and headers: | 
 | 715 | - POSIX+XSI+BSD features enabled by default with no macros defined | 
 | 716 | - most programs can now be built without adding -D_GNU_SOURCE | 
 | 717 | - added C99 restrict keyword where required in all prototypes | 
 | 718 | - greater C89 compatibility | 
 | 719 | - cleaner, more-compatible public syscall.h | 
 | 720 | - many other header fixes | 
 | 721 | - support for compiling musl with clang/llvm | 
 | 722 |  | 
 | 723 | new features: | 
 | 724 | - sha 256/512 password hash functions in crypt | 
 | 725 | - GNU hash support in dynamic linker | 
 | 726 | - partial C11 coverage | 
 | 727 | - dladdr function added | 
 | 728 | - dynamic linker reports all errors instead of exiting on first error | 
 | 729 | - syscall wrappers added for most remaining linux syscalls | 
 | 730 | - provide POSIX O_SEARCH open mode using linux O_PATH | 
 | 731 |  | 
 | 732 | bug fixes: | 
 | 733 | - most atexit functions were being skipped when exiting | 
 | 734 | - some BSD functions were not being exposed under _BSD_SOURCE | 
 | 735 | - issues loading ssp-protected DSO into non-ssp program with dlopen | 
 | 736 |  | 
 | 737 | debloating: | 
 | 738 | - eliminate .eh_frame (10-15% loaded size bloat) | 
 | 739 | - optimal inline syscall asm for ARM and MIPS | 
 | 740 | - no longer force -O3 for shared libs | 
| Rich Felker | bd261bf | 2012-09-16 00:10:08 -0400 | [diff] [blame] | 741 |  | 
 | 742 |  | 
 | 743 |  | 
 | 744 | 0.9.6 release notes | 
 | 745 |  | 
 | 746 | bug fixes: | 
 | 747 | - serious breakage in definition of O_ACCMODE mask (missing a bit) | 
 | 748 |  | 
 | 749 | new features: | 
 | 750 | - O_EXEC open mode | 
 | 751 | - md5 crypt hash function | 
| Rich Felker | dd762cf | 2012-10-28 18:45:11 -0400 | [diff] [blame] | 752 |  | 
 | 753 |  | 
 | 754 |  | 
 | 755 | 0.9.7 release notes | 
 | 756 |  | 
 | 757 | new features: | 
 | 758 | - thread-local storage (__thread/_Thread_local) | 
 | 759 | - microblaze port | 
 | 760 | - getopt option parsing reset support | 
 | 761 | - vsyscall (sysenter, etc.) support on i386 (faster syscalls) | 
 | 762 | - memmem function (GNU extension) | 
 | 763 | - mips fenv support | 
 | 764 | - accept "nan(n-char-sequence)" in strtod/scanf family functions | 
 | 765 | - configure now supports compiling with pcc | 
 | 766 |  | 
 | 767 | quality and correctness improvements: | 
 | 768 | - close-on-exec flag for all library-internal file descriptors | 
 | 769 | - cancellation-safety and corner-case overhaul in shm_open/sem_open | 
 | 770 | - close EINTR vs EINPROGRESS issue | 
 | 771 | - mark binaries as not requiring executable stack | 
 | 772 | - better gdb compatibility in dynamic linker | 
 | 773 | - support recursive dlopen (dlopen called from constructors) | 
 | 774 | - posix_spawn/system/popen no longer momentarily double commit charge | 
 | 775 | - all stdio functions wait for locks | 
 | 776 |  | 
 | 777 | bug fixes: | 
 | 778 | - broken sysvipc *ctl functions on 64-bit archs | 
 | 779 | - broken shmdt on some archs | 
 | 780 | - getaddrinfo failure with port "0" | 
 | 781 | - dirname handling of trailing slash | 
 | 782 | - vfork race in posix_spawn | 
| Rich Felker | e6dcebd | 2012-11-26 21:01:30 -0500 | [diff] [blame] | 783 |  | 
 | 784 |  | 
 | 785 |  | 
 | 786 | 0.9.8 release notes | 
 | 787 |  | 
 | 788 | new features: | 
 | 789 | - powerpc port | 
 | 790 | - dl_iterate_phdr interface | 
 | 791 | - added mips-specific syscalls | 
 | 792 | - thread priority scheduling | 
 | 793 | - C11 CMPLX macro in complex.h | 
 | 794 | - x86 port io functions in sys/io.h | 
 | 795 |  | 
 | 796 | compatibility: | 
 | 797 | - improved headers for trace/debugging/machine-access | 
 | 798 | - stub functions for unsupported thread-related functionality | 
 | 799 |  | 
 | 800 | bug fixes: | 
 | 801 | - numerous math bugs (mostly exception flags and excess-precision issues) | 
 | 802 | - register clobber error in i386 vsyscall asm (did not affect most callers) | 
 | 803 | - various incorrect definitions in mips headers | 
 | 804 | - broken dlsym asm on mips | 
 | 805 | - empty prefix handling in configure script (--prefix="") | 
 | 806 | - ldso search path logic issues | 
 | 807 | - lock handling for stdio memory streams at exit time | 
 | 808 | - invalid SO_REUSEPORT definition in socket.h (not supported by Linux) | 
 | 809 | - broken redirection attempt to /dev/null in configure script | 
| Rich Felker | a57ac9b | 2013-02-01 01:49:07 -0500 | [diff] [blame] | 810 |  | 
 | 811 |  | 
 | 812 |  | 
 | 813 | 0.9.9 release notes | 
 | 814 |  | 
 | 815 | new features: | 
 | 816 | - tgamma implementation (no longer lgamma wrapper with low precision) | 
 | 817 | - various gnu extensions: sigandset, sigorset, etc. | 
 | 818 | - futimesat function (obsolete) | 
 | 819 | - various linux syscalls: arch_prctl, personality, etc. | 
 | 820 |  | 
 | 821 | optimizations: | 
 | 822 | - hyperbolic, inverse hyperbolic, and inverse trig, bessel functions | 
 | 823 | - is* comparison macros in math.h now expand inline properly | 
 | 824 |  | 
 | 825 | library bugs fixed: | 
 | 826 | - calling getenv from shared library ctors was broken | 
 | 827 | - invalid read in mmap-serviced aligned_alloc/memalign (possible crash) | 
 | 828 | - wrong errno result in fallback path of pipe2  | 
 | 829 | - various math functions raising spurious exceptions | 
 | 830 | - mmap errno value on invalid offsets | 
 | 831 | - backwards alignment logic in strlcpy | 
 | 832 | - integer overflows in bessel functions | 
 | 833 | - large (up to 60ulp) error in erfcf | 
 | 834 | - dlsym/dlclose crashing on invalid library handles | 
 | 835 | - failure to handle arch variations for cloexec/nonblock flags | 
 | 836 | - lio_listio wrong return value for LIO_WAIT mode | 
 | 837 | - dladdr failure to resolve PLT addresses | 
 | 838 | - time_t/struct tm conversion off-by-one-day in december | 
 | 839 | - malloc corruption on nonstandard kernels with non-page-aligned brk | 
 | 840 |  | 
 | 841 | arch-specific bugs fixed: | 
 | 842 | - arm ctors/dtors were not working with recent gcc versions | 
 | 843 | - arm and mips setjmp/longjmp wrongly saved/restored fenv state | 
 | 844 | - loss of precision in i386/x86_64 expl | 
 | 845 |  | 
 | 846 | header bugs fixed: | 
 | 847 | - incorrect PRI/SCN macros in inttypes.h for some types | 
 | 848 | - arm sys/user.h regressions | 
 | 849 | - failure of offsetof() to be an integer constant expression | 
 | 850 | - tgmath return value type problems | 
 | 851 |  | 
 | 852 | header compatibility improvements: | 
 | 853 | - _GNU_SOURCE now enables everything; _ALL_SOURCE also works | 
 | 854 | - scsi/scsi.h and scsi/sg.h are now provided | 
 | 855 | - additional MAP_* flags for mmap | 
 | 856 | - additional F_* commands and flags for fcntl | 
 | 857 | - additional socket option, IPPROTO_* values, and multicase macros | 
 | 858 | - thread-related waitpid flags | 
 | 859 | - EHWPOISON added to errno.h | 
 | 860 | - additional macros for mount, swap, and reboot operations | 
 | 861 | - expose additional link.h structures | 
 | 862 | - always ensure sizeof(NULL)==sizeof(void *), even in c++ | 
 | 863 | - additional flags for poll, epoll, inotify, timerfd, timex, dlfcn | 
 | 864 | - register names in signal.h/ucontext.h for x86 | 
 | 865 | - ipc.h ipc_perm nonstandard struct field name compatibility improve | 
| Rich Felker | 7bec92e | 2013-04-14 01:51:00 -0400 | [diff] [blame] | 866 |  | 
 | 867 |  | 
 | 868 |  | 
 | 869 | 0.9.10 release notes | 
 | 870 |  | 
 | 871 | new features: | 
 | 872 | - getifaddrs  | 
 | 873 | - pthread_getattr_np (widely used by garbage collectors) | 
 | 874 | - mkostemps, mkostemp, mkstemps functions (mkostemp is future-POSIX) | 
 | 875 | - strcasestr and strverscmp (previously stubs) | 
 | 876 |  | 
 | 877 | improvements: | 
 | 878 | - major performance improvements in mbtowc | 
 | 879 | - avoid filling caller-provided thread stacks with large TLS | 
 | 880 | - debloat unnecessary static buffers | 
 | 881 | - robust posix_spawn based on CLONE_VM instead of vfork | 
 | 882 | - new system() and popen() based on posix_spawn | 
 | 883 | - better strerror strings | 
 | 884 | - further emulation of atomic close-on-exec/nonblock options for old kernels | 
 | 885 | - provide macro constants for new-ish kernel features | 
 | 886 |  | 
 | 887 | compatibility: | 
 | 888 | - several nonstandard but widely-available pwd/grp/shadow functions | 
 | 889 | - program_invocation_[short_]name | 
 | 890 | - re-added useconds_t type used by some programs | 
 | 891 | - some legacy arpa headers | 
 | 892 | - dn_skipname function (legacy resolver API) | 
 | 893 | - additional ABI aliases for supporting glibc-linked libraries/binaries | 
 | 894 |  | 
 | 895 | general bugs fixed: | 
 | 896 | - stale locks and bogus munmap call when pthread_create fails | 
 | 897 | - uninitialized argument to munmap when dynlink load_library fails | 
 | 898 | - incorrect error returns in gethostby*_r | 
 | 899 | - memory leak in gethostbyname family | 
 | 900 | - blank ai_canonname in getaddrinfo for non-CNAME records | 
 | 901 | - undefined HZ macro in scsi/sg.h | 
 | 902 | - wrong return value for wmemmove on forward-copy | 
 | 903 | - namespace conformance in strings.h | 
 | 904 | - various utmp.h bugs | 
 | 905 | - unnecessary DT_SONAME in libc.so caused problems on some systems | 
 | 906 | - multiple bugs in syslog, some possibly dangerous | 
 | 907 | - non-functional setpriority function | 
 | 908 | - slight mishandling of 0xf5 byte in UTF-8 decoder | 
 | 909 | - misaligned memory accesses in mbsrtowcs | 
 | 910 |  | 
 | 911 | arch-specific bugs fixed: | 
 | 912 | - crash in shared library loading on arm | 
 | 913 | - missing __aeabi_atexit needed by arm eabi | 
 | 914 | - wrong float_t definition on x86_64 | 
 | 915 | - various low-impact type size/alignment mismatches in some headers | 
 | 916 | - epoll struct alignment wrong on non-x86[_64] archs | 
 | 917 | - broken pipe2 fallback code on mips with old kernels | 
| Rich Felker | 6688a77 | 2013-06-29 22:43:05 -0400 | [diff] [blame^] | 918 |  | 
 | 919 |  | 
 | 920 |  | 
 | 921 | 0.9.11 release notes | 
 | 922 |  | 
 | 923 | new features: | 
 | 924 | - %m allocation modifier for scanf | 
 | 925 | - week number and ISO week-based-year functionality in strftime | 
 | 926 | - per-process and per-thread cputime clocks | 
 | 927 | - ethernet address conversion interfaces | 
 | 928 | - legacy classful ipv4 network address interfaces | 
 | 929 | - minimal dlinfo function (nonstandard) | 
 | 930 |  | 
 | 931 | other improvements: | 
 | 932 | - dynamic linker path file can now use newlines to separate paths | 
 | 933 | - math optimizations for archs with extended precision (i386) | 
 | 934 | - musl-gcc wrapper now exposes gcc's intrinsic headers | 
 | 935 | - quality of rand and rand_r pseudo-random sequences | 
 | 936 | - support for large device minor numbers (greater than 8 bits) | 
 | 937 | - various header conformance and compatibility fixes | 
 | 938 |  | 
 | 939 | directly user-visible bugs fixed: | 
 | 940 | - scanf losing characters on unbuffered streams and fmemopen streams | 
 | 941 | - failure of mbsrtowcs to record stop position when dest is full | 
 | 942 | - failure of iconv to convert to legacy codepages | 
 | 943 | - non-working pthread_[sg]etschedparam functions (wrong syscall arguments) | 
 | 944 |  | 
 | 945 | other potentially-serious bugs fixed: | 
 | 946 | - resource leaks in sem_open | 
 | 947 | - various bugs in thread exit synchronization | 
 | 948 | - invalid access in aio notification after aiocb free/reuse | 
 | 949 | - synchronization in dynamic linker when new thread dlopens during ctors | 
 | 950 | - lack of error handling for failure to read dynamic linker path file | 
 | 951 | - creation by mmap or shmget of objects larger than PTRDIFF_MAX | 
 | 952 |  | 
 | 953 | minor conformance bugs fixed: | 
 | 954 | - overflow handling for the clock function | 
 | 955 | - workaround for incorrect exceptions in fma due to compiler bugs | 
 | 956 | - workaround wrong kernel type for sem_nsems field in struct semid_ds | 
 | 957 |  | 
 | 958 | arch-specific bugs fixed: | 
 | 959 | - x86_64 sigsetjmp clobbered the signal mask rather than saving it | 
 | 960 | - misaligned stack when calling ctors/dtors (crashing on x86_64) |