1570af302Sopenharmony_ci0.5.0 - initial release 2570af302Sopenharmony_ci 3570af302Sopenharmony_ci 4570af302Sopenharmony_ci 5570af302Sopenharmony_ci0.5.9 - signal ABI bugfix, various cleanup and fixes: 6570af302Sopenharmony_ci 7570af302Sopenharmony_cisigset_t was wrongly defined as 1024 bytes instead of 1024 bits, 8570af302Sopenharmony_cibreaking the intended ABI compatibility with the LSB/glibc sigaction 9570af302Sopenharmony_cistructure. users should upgrade immediately and rebuild any libraries 10570af302Sopenharmony_cior object files that might be using the incorrect definitions. 11570af302Sopenharmony_ci 12570af302Sopenharmony_ciimproved security against DoS with tcb shadow passwords by checking 13570af302Sopenharmony_cithat the file opened was really an ordinary file. 14570af302Sopenharmony_ci 15570af302Sopenharmony_cifixed a bug in the implementation of atomic ops that could have 16570af302Sopenharmony_ciallowed the compiler to incorrectly reorder them (in practice, gcc 17570af302Sopenharmony_ciwith the default settings on i386 was not reordering them). 18570af302Sopenharmony_ci 19570af302Sopenharmony_cigreatly improved conformance to the C and POSIX standards regarding 20570af302Sopenharmony_ciwhat the standard header files make visible. _POSIX_C_SOURCE is now 21570af302Sopenharmony_cineeded to get POSIX functions in standard C headers, and _XOPEN_SOURCE 22570af302Sopenharmony_cior _GNU_SOURCE are required to get XSI interfaces or GNU extensions, 23570af302Sopenharmony_cirespectively. 24570af302Sopenharmony_ci 25570af302Sopenharmony_cimany internal improvements have been made to the syscall-related code 26570af302Sopenharmony_ciin preparation for porting to x86_64 and other archs. 27570af302Sopenharmony_ci 28570af302Sopenharmony_ci 29570af302Sopenharmony_ci 30570af302Sopenharmony_ci0.6.0 - x86_64 port, various important bugs fixed 31570af302Sopenharmony_ci 32570af302Sopenharmony_cinew x86_64 (amd64) architecture port, contributed by Nicholas J. Kain, 33570af302Sopenharmony_cialong with PORTING guide. source tree layout and build system have 34570af302Sopenharmony_cibeen improved to accommodate further ports. 35570af302Sopenharmony_ci 36570af302Sopenharmony_civarious bugs that were introduced while making the headers respect C 37570af302Sopenharmony_ciand POSIX namespace standards have been fixed. conformance to the 38570af302Sopenharmony_cistandards has been improved. 39570af302Sopenharmony_ci 40570af302Sopenharmony_cifixed an inefficiency in qsort that triggered a bug (occasionaly 41570af302Sopenharmony_ciinternal compiler error) in some versions of gcc. 42570af302Sopenharmony_ci 43570af302Sopenharmony_cifixed a major bug in the printf %n specifier that prevented it from 44570af302Sopenharmony_ciworking and caused memory corruption. 45570af302Sopenharmony_ci 46570af302Sopenharmony_ci 47570af302Sopenharmony_ci 48570af302Sopenharmony_ci0.7.0 - major improvements to posix conformance and completeness 49570af302Sopenharmony_ci 50570af302Sopenharmony_ciimplemented posix shared memory and semaphore interfaces. 51570af302Sopenharmony_ci 52570af302Sopenharmony_ciimplemented all remaining required pthread and clock interfaces. 53570af302Sopenharmony_ci 54570af302Sopenharmony_cimajor fixes to signal semantics. 55570af302Sopenharmony_ci 56570af302Sopenharmony_cigreatly improved temporary file name generation for safety against 57570af302Sopenharmony_cidenial of service due to intentional name collisions. 58570af302Sopenharmony_ci 59570af302Sopenharmony_ciadded syscall wrappers for the linux inotify interface. 60570af302Sopenharmony_ci 61570af302Sopenharmony_cimalloc(0) now returns a non-null pointer. 62570af302Sopenharmony_ci 63570af302Sopenharmony_cifixed printf %n specifier (again), pthread_once (it was always 64570af302Sopenharmony_cihanging), and non-default-type mutex behavior. 65570af302Sopenharmony_ci 66570af302Sopenharmony_ciadded ucontext/sigcontext support in headers to facilitate building 67570af302Sopenharmony_cilibgcc with dwarf2 unwind support, and possibly other low-level tools. 68570af302Sopenharmony_ci 69570af302Sopenharmony_ciimproved musl-gcc compiler wrapper. 70570af302Sopenharmony_ci 71570af302Sopenharmony_ciimplemented many small missing functions here and there, minor header 72570af302Sopenharmony_cifixes, etc. 73570af302Sopenharmony_ci 74570af302Sopenharmony_ci 75570af302Sopenharmony_ci 76570af302Sopenharmony_ci0.7.1 - improvements to completeness, bug fixes 77570af302Sopenharmony_ci 78570af302Sopenharmony_ciimplemented flockfile, wprintf, and robust mutex functions. 79570af302Sopenharmony_ci 80570af302Sopenharmony_cifixed stack corruption bug in times(), minor header bugs, and some 81570af302Sopenharmony_cierror return value bugs in thread interfaces. 82570af302Sopenharmony_ci 83570af302Sopenharmony_ci 84570af302Sopenharmony_ci 85570af302Sopenharmony_ci0.7.5 - new features, major optimization, and robustness 86570af302Sopenharmony_ci 87570af302Sopenharmony_ciimplemented POSIX timers. 88570af302Sopenharmony_ci 89570af302Sopenharmony_cioptimized and simplified many thread-related functions. 90570af302Sopenharmony_ci 91570af302Sopenharmony_cieliminated resource leak races in thread cancellation. (almost all 92570af302Sopenharmony_ciexisting implementations, including glibc, have these leaks.) 93570af302Sopenharmony_ci 94570af302Sopenharmony_cioverhauled stdio implementation to take advantage of readv/writev for 95570af302Sopenharmony_cireduced syscall load, and improved stdio's handling of error status. 96570af302Sopenharmony_ci 97570af302Sopenharmony_ciadded syscall header and interface for applications to use and 98570af302Sopenharmony_cigreatly simplified internal system for making syscalls. 99570af302Sopenharmony_ci 100570af302Sopenharmony_cistrangthened tmpnam/tempnam/tmpfile filename generation and made the 101570af302Sopenharmony_cistraight C functions not depend on POSIX symbols. 102570af302Sopenharmony_ci 103570af302Sopenharmony_cifixed pthread cancellation ABI on i386 to match the LSB/glibc ABI 104570af302Sopenharmony_ci 105570af302Sopenharmony_cibetter double-free handling in malloc 106570af302Sopenharmony_ci 107570af302Sopenharmony_civarious minor bug fixes 108570af302Sopenharmony_ci 109570af302Sopenharmony_ci 110570af302Sopenharmony_ci 111570af302Sopenharmony_ci0.7.6 - major bug fixes 112570af302Sopenharmony_ci 113570af302Sopenharmony_cifixed rare but serious under-allocation bug in malloc. 114570af302Sopenharmony_ci 115570af302Sopenharmony_cifixed signedness bug in strchr that prevented finding high bytes. 116570af302Sopenharmony_ci 117570af302Sopenharmony_cifixed serious parsing bugs in strtold. 118570af302Sopenharmony_ci 119570af302Sopenharmony_cifixed statvfs syscall (it was always failing with EINVAL). 120570af302Sopenharmony_ci 121570af302Sopenharmony_cifixed race condition in set*id() functions with threads (possible 122570af302Sopenharmony_cideadlock). further audit still needed though. 123570af302Sopenharmony_ci 124570af302Sopenharmony_cifseek no longer sets the stream error flag on failed seeks (this was 125570af302Sopenharmony_ciwrong and broke some programs, notably GNU m4). 126570af302Sopenharmony_ci 127570af302Sopenharmony_cinl_langinfo is no longer a dummy function. (the functionality was 128570af302Sopenharmony_cipreviously implemented but accidentally left unused). 129570af302Sopenharmony_ci 130570af302Sopenharmony_civarious small fixes have been made to the implementations and 131570af302Sopenharmony_ciprototypes for nonstandard and obsolete functions 132570af302Sopenharmony_ci 133570af302Sopenharmony_ci 134570af302Sopenharmony_ci 135570af302Sopenharmony_ci0.7.7 - more bug fixes and program-compatibility improvements 136570af302Sopenharmony_ci 137570af302Sopenharmony_cifixed floating point formatting and rounding bugs in printf. 138570af302Sopenharmony_ci 139570af302Sopenharmony_cifixed broken %N$ positional argument specifiers in printf. 140570af302Sopenharmony_ci 141570af302Sopenharmony_cifixed misaligned read/overread bug in strchr which could lead to 142570af302Sopenharmony_cicrashes scanning tiny strings at the end of a page when the next page 143570af302Sopenharmony_ciis not readable, or on archs (not yet supported) that forbid 144570af302Sopenharmony_cimisaligned reads. 145570af302Sopenharmony_ci 146570af302Sopenharmony_cifixed breakage of statvfs on x86_64 147570af302Sopenharmony_ci 148570af302Sopenharmony_cifixed crash in getmntent_r 149570af302Sopenharmony_ci 150570af302Sopenharmony_cifixed bug in POSIX timers created with NULL sigevent argument 151570af302Sopenharmony_ci 152570af302Sopenharmony_ciimproved semaphore performance, and sem_wait is now interruptable by 153570af302Sopenharmony_cisignals, as required by POSIX. 154570af302Sopenharmony_ci 155570af302Sopenharmony_ciadded many compatibility and system-level interfaces, increasing the 156570af302Sopenharmony_ciproportion of busybox that works with musl. 157570af302Sopenharmony_ci 158570af302Sopenharmony_ci 159570af302Sopenharmony_ci 160570af302Sopenharmony_ci0.7.8 - more bug fixes and compatibility improvements 161570af302Sopenharmony_ci 162570af302Sopenharmony_cifixed problems with ipv6 dns and address printing code that made ipv6 163570af302Sopenharmony_cisupport practically unusable, and some other getaddrinfo bugs. 164570af302Sopenharmony_ci 165570af302Sopenharmony_cifixed broken sendmsg/recvmsg functions on x86_64 (caused by incorrect 166570af302Sopenharmony_cimsghdr structure). 167570af302Sopenharmony_ci 168570af302Sopenharmony_cifixed broken sigsetjmp asm on x86_64. 169570af302Sopenharmony_ci 170570af302Sopenharmony_ciworked around a problem with input buffering on terminals reblocking 171570af302Sopenharmony_ciafter getting a blank line, due to a bug in the linux readv syscall. 172570af302Sopenharmony_ci 173570af302Sopenharmony_civarious improvements to the "rsyscall" system used to implement 174570af302Sopenharmony_cithreaded setuid, setgid, etc. 175570af302Sopenharmony_ci 176570af302Sopenharmony_ciexiting/cancelling the a timer handler thread no longer kills the 177570af302Sopenharmony_citimer. 178570af302Sopenharmony_ci 179570af302Sopenharmony_cifixed incorrect trailing zeros on some %g conversions in printf. 180570af302Sopenharmony_ci 181570af302Sopenharmony_cifixed buggy byte-swapping functions and moved them to inlines in 182570af302Sopenharmony_cibyteswap.h. 183570af302Sopenharmony_ci 184570af302Sopenharmony_cimany small improvements to header/application compatibility, support 185570af302Sopenharmony_cifor nonstandard macros, etc. 186570af302Sopenharmony_ci 187570af302Sopenharmony_ci 188570af302Sopenharmony_ci 189570af302Sopenharmony_ci0.7.9 release notes 190570af302Sopenharmony_ci 191570af302Sopenharmony_cinew pthread cancellation implementation: 192570af302Sopenharmony_ci- safe against resource-leak/side-effect-leak race conditions 193570af302Sopenharmony_ci- safe against interruption by signal handlers 194570af302Sopenharmony_ci- reduced bloat in all cancellable functions 195570af302Sopenharmony_ci- reduced bloat for blocking cancellation 196570af302Sopenharmony_ci 197570af302Sopenharmony_cinew interfaces implemented: 198570af302Sopenharmony_ci- realpath (limited functionality) 199570af302Sopenharmony_ci- wordexp (limited functionality) 200570af302Sopenharmony_ci- flock (nonstandard) 201570af302Sopenharmony_ci- forkpty (nonstandard) 202570af302Sopenharmony_ci- posix_fadvise 203570af302Sopenharmony_ci- posix_fallocate 204570af302Sopenharmony_ci 205570af302Sopenharmony_cigeneral bug fixes: 206570af302Sopenharmony_ci- syslog function failure to communicate with syslogd 207570af302Sopenharmony_ci- bug in siginfo_t definition if wait.h was included before signal.h 208570af302Sopenharmony_ci- incorrect struct definitions for most of sysv ipc 209570af302Sopenharmony_ci- pthread_exit/cancel on timer handler wrongly destroying the timer 210570af302Sopenharmony_ci- linux dup2 ebusy workaround 211570af302Sopenharmony_ci- obscure issues in non-threaded programs using some pthread functions 212570af302Sopenharmony_ci- getopt_long allowed mismatch in last char of option name 213570af302Sopenharmony_ci- incorrect parsing of obscure ip address forms 214570af302Sopenharmony_ci- initgroups not working reliably (uninitialized var) 215570af302Sopenharmony_ci- shadow pass treating empty expiry field as pass-expired-in-1970 216570af302Sopenharmony_ci- bogus longjmp if pthread_exit was called from cancellation handlers 217570af302Sopenharmony_ci 218570af302Sopenharmony_cix86_64-specific bug fixes: 219570af302Sopenharmony_ci- fcntl file locking 220570af302Sopenharmony_ci- thread stack alignment 221570af302Sopenharmony_ci- broken select timeouts due to incorrect timeval definition 222570af302Sopenharmony_ci 223570af302Sopenharmony_ci 224570af302Sopenharmony_ci 225570af302Sopenharmony_ci0.7.10 release notes 226570af302Sopenharmony_ci 227570af302Sopenharmony_cinew features: 228570af302Sopenharmony_ci- ipv6 numeric string parsing 229570af302Sopenharmony_ci- eventfd syscall wrappers 230570af302Sopenharmony_ci 231570af302Sopenharmony_cioptimizations: 232570af302Sopenharmony_ci- new qsort implementation using the smoothsort algorithm 233570af302Sopenharmony_ci- much smaller/faster sigset_t handling functions 234570af302Sopenharmony_ci- lowered spin count before futex wait in synchronization functions 235570af302Sopenharmony_ci 236570af302Sopenharmony_cigeneral bug fixes: 237570af302Sopenharmony_ci- incorrect floating point round-to-even behavior in printf 238570af302Sopenharmony_ci- major bugs in pthread barrier implementation 239570af302Sopenharmony_ci- off-by-one error in scanf %n results 240570af302Sopenharmony_ci- scanf failure to report EOF when scanning for literal text 241570af302Sopenharmony_ci- minor missing/incorrect prototype issues 242570af302Sopenharmony_ci- dependency on undefined call order in fclose 243570af302Sopenharmony_ci 244570af302Sopenharmony_cicompiler issue workarounds: 245570af302Sopenharmony_ci- incorrect inlining of variadic functions on recent gcc versions 246570af302Sopenharmony_ci- pcc preprocessor bug with recursive macro expansion 247570af302Sopenharmony_ci 248570af302Sopenharmony_ci 249570af302Sopenharmony_ci 250570af302Sopenharmony_ci0.7.11 release notes 251570af302Sopenharmony_ci 252570af302Sopenharmony_cinew features: 253570af302Sopenharmony_ci- integrated dynamic linker 254570af302Sopenharmony_ci- dynamic loading (dlopen/dlsym) (for dynamic-linked programs only) 255570af302Sopenharmony_ci- XSI search.h API 256570af302Sopenharmony_ci- POSIX message queues 257570af302Sopenharmony_ci- POSIX spawn interfaces 258570af302Sopenharmony_ci- BSD pseudo-random number generator API (random/srandom/initstate/etc.) 259570af302Sopenharmony_ci- floating point environment (limited usefulness due to gcc bugs) 260570af302Sopenharmony_ci 261570af302Sopenharmony_cigeneral bug fixes: 262570af302Sopenharmony_ci- possible crashes with wordexp due to uninitialized variable 263570af302Sopenharmony_ci- race condition in pthread_kill (also present and unfixed in glibc/nptl) 264570af302Sopenharmony_ci- pthread exit destructors called too late 265570af302Sopenharmony_ci- dangerous unbounded vla in glob 266570af302Sopenharmony_ci- brk/sbrk legacy functions mismatching legacy semantics 267570af302Sopenharmony_ci- wcsncpy dest buffer overflow 268570af302Sopenharmony_ci- strncat and wcsncat possible overflows due to double-termination 269570af302Sopenharmony_ci 270570af302Sopenharmony_ci 271570af302Sopenharmony_ci 272570af302Sopenharmony_ci0.7.12 release notes 273570af302Sopenharmony_ci 274570af302Sopenharmony_cinew features: 275570af302Sopenharmony_ci- support for textrels in shared objects 276570af302Sopenharmony_ci- rpath support in dynamic linker 277570af302Sopenharmony_ci- stdio_ext.h functions (for better gnu software compatibility) 278570af302Sopenharmony_ci 279570af302Sopenharmony_cibug fixes: 280570af302Sopenharmony_ci- some compilers miscompiling dlopen due to misuse of longjmp 281570af302Sopenharmony_ci- safe handling of invalid long-double bit patterns (affects printf) 282570af302Sopenharmony_ci- workaround for bugs in linux mprotect syscall 283570af302Sopenharmony_ci- thread-safety for random() functions 284570af302Sopenharmony_ci- various minor issues 285570af302Sopenharmony_ci 286570af302Sopenharmony_ci 287570af302Sopenharmony_ci 288570af302Sopenharmony_ci0.8.0 release notes 289570af302Sopenharmony_ci 290570af302Sopenharmony_cinew features: 291570af302Sopenharmony_ci- chinese and japanese legacy charset support in iconv 292570af302Sopenharmony_ci- zero-syscall clock_gettime support (dynamic-linked x86_64 only) 293570af302Sopenharmony_ci- futex-based locking for stdio (previously used spinlocks) 294570af302Sopenharmony_ci- LD_PRELOAD and RTLD_NEXT support in dynamic linker 295570af302Sopenharmony_ci- strptime (mostly working but incomplete) 296570af302Sopenharmony_ci- posix aio (mostly working but not entirely conformant) 297570af302Sopenharmony_ci- memory streams (fmemopen, open_memstream, ...) 298570af302Sopenharmony_ci- stub/dummy implementations for various useless legacy functions 299570af302Sopenharmony_ci- if_nameindex 300570af302Sopenharmony_ci 301570af302Sopenharmony_cisecurity hardening: 302570af302Sopenharmony_ci- setuid, etc. should not longer be able to "partially fail" with threads 303570af302Sopenharmony_ci- ensure suid programs start with fd 0,1,2 open 304570af302Sopenharmony_ci- improved openpty/forkpty failure checks 305570af302Sopenharmony_ci 306570af302Sopenharmony_cithreads/synchronization bug fixes: 307570af302Sopenharmony_ci- dangerous spurious wakeup in pthread_join lead to early return 308570af302Sopenharmony_ci- race condition enabling async cancellation (delayed/lost cancellation) 309570af302Sopenharmony_ci- destruction/unmapping race conditions in semaphores, mutexes, rwlocks 310570af302Sopenharmony_ci- recursive rwlock_rdlock deadlock when a writer is waiting 311570af302Sopenharmony_ci- race condition in sigqueue with fork 312570af302Sopenharmony_ci- timer expiration thread exit wasn't running dtors 313570af302Sopenharmony_ci- timer threads weren't blocking signals 314570af302Sopenharmony_ci- close was wrongly cancellable after succeeding on some devices 315570af302Sopenharmony_ci- robust mutex list was not reset on fork 316570af302Sopenharmony_ci 317570af302Sopenharmony_cigeneral bug fixes: 318570af302Sopenharmony_ci- incorrect logic in fread (spurious blocking; crash on write-only files) 319570af302Sopenharmony_ci- many corner cases and overflow cases for strtol-family functions 320570af302Sopenharmony_ci- various printf integer formatting issues with flags/width/precision 321570af302Sopenharmony_ci- incorrect iconv return value on failure 322570af302Sopenharmony_ci- broken FD_* macros on 64-bit targets 323570af302Sopenharmony_ci- clock function returning wrong value (real time not cpu time) 324570af302Sopenharmony_ci- siglongjmp signal mask clobbering (off-by-one pointer error) 325570af302Sopenharmony_ci- dynamic linker weak symbol resolution issues 326570af302Sopenharmony_ci- fdopendir failure to set errno 327570af302Sopenharmony_ci- various minor header fixes 328570af302Sopenharmony_ci 329570af302Sopenharmony_ci 330570af302Sopenharmony_ci 331570af302Sopenharmony_ci0.8.1 release notes 332570af302Sopenharmony_ci 333570af302Sopenharmony_cibug fixes: 334570af302Sopenharmony_ci- mismatching prototypes caused build failure on 64-bit 335570af302Sopenharmony_ci- other minor prototype errors in the headers have been fixed 336570af302Sopenharmony_ci- various other small omissions fixed 337570af302Sopenharmony_ci 338570af302Sopenharmony_ci 339570af302Sopenharmony_ci 340570af302Sopenharmony_ci0.8.2 release notes 341570af302Sopenharmony_ci 342570af302Sopenharmony_cinew features: 343570af302Sopenharmony_ci- ptrace syscall support 344570af302Sopenharmony_ci 345570af302Sopenharmony_cibug fixes: 346570af302Sopenharmony_ci- const error (only a warning with many compilers) in lio_listio 347570af302Sopenharmony_ci- minor portability fixes aimed at supporting new arch targets 348570af302Sopenharmony_ci 349570af302Sopenharmony_ci 350570af302Sopenharmony_ci 351570af302Sopenharmony_ci0.8.3 release notes 352570af302Sopenharmony_ci 353570af302Sopenharmony_cinew features: 354570af302Sopenharmony_ci- arm port (experimental) 355570af302Sopenharmony_ci- better musl-gcc wrapper script for building against musl 356570af302Sopenharmony_ci- added clone system call 357570af302Sopenharmony_ci 358570af302Sopenharmony_cibug fixes: 359570af302Sopenharmony_ci- numerous header file typos, copy/paste errors, omissions 360570af302Sopenharmony_ci- statfs and statvfs ABI are now LSB-conformant (and actually work) 361570af302Sopenharmony_ci 362570af302Sopenharmony_ci 363570af302Sopenharmony_ci 364570af302Sopenharmony_ci0.8.4 release notes 365570af302Sopenharmony_ci 366570af302Sopenharmony_cinew features: 367570af302Sopenharmony_ci- arm dynamic linker support 368570af302Sopenharmony_ci- process-shared pthread barriers now work 369570af302Sopenharmony_ci- efficient futex-requeue-based cond var broadcast 370570af302Sopenharmony_ci- more optional cancellation points are now cancellable 371570af302Sopenharmony_ci- printf accepts null pointers with %s, prints as "(null)" 372570af302Sopenharmony_ci- recursive mutexes are now fully reentrant 373570af302Sopenharmony_ci- __cxa_atexit support 374570af302Sopenharmony_ci- real vfork 375570af302Sopenharmony_ci- dynamic linker now gold-compatible 376570af302Sopenharmony_ci- prlimit syscall 377570af302Sopenharmony_ci- support for large limits with setrlimit/getrlimit (even on 32-bit) 378570af302Sopenharmony_ci- glob now supports GLOB_PERIOD option (GNU extension) 379570af302Sopenharmony_ci 380570af302Sopenharmony_cibug fixes: 381570af302Sopenharmony_ci- many serious issues in condition variables 382570af302Sopenharmony_ci- rwlock failure-to-wake deadlock issues 383570af302Sopenharmony_ci- various small header files bugs/omissions 384570af302Sopenharmony_ci- wrong failure return for pthread_create 385570af302Sopenharmony_ci- path handling issues on execvp 386570af302Sopenharmony_ci- lock count corruption with robust recursive mutexes on owner death 387570af302Sopenharmony_ci- integer overflows in atoi, etc. reading most-negative value 388570af302Sopenharmony_ci- spurious mremaps on every realloc of large memory chunks 389570af302Sopenharmony_ci- pthread cancellation failure in single-threaded programs 390570af302Sopenharmony_ci 391570af302Sopenharmony_cisecurity: 392570af302Sopenharmony_ci- avoid fd_set overflow in dns lookups 393570af302Sopenharmony_ci 394570af302Sopenharmony_ci 395570af302Sopenharmony_ci 396570af302Sopenharmony_ci0.8.5 release notes 397570af302Sopenharmony_ci 398570af302Sopenharmony_cinew features: 399570af302Sopenharmony_ci- stdio operations are now cancellable (only when low-level io happens) 400570af302Sopenharmony_ci- global ctor/dtor support in main program start code and shared libs 401570af302Sopenharmony_ci- dynamic linker support for PIE executables (but missing startup code) 402570af302Sopenharmony_ci- vfork support on x86_64 403570af302Sopenharmony_ci- complete set of locale_t functions (all ignore the locale argument) 404570af302Sopenharmony_ci- provide define float_t and double_t in math.h 405570af302Sopenharmony_ci- lighter/faster cancellation cleanup handler register/unregister 406570af302Sopenharmony_ci 407570af302Sopenharmony_cibug fixes: 408570af302Sopenharmony_ci- gcc wrapper now supports -shared, -nostdlib, -nostartfiles 409570af302Sopenharmony_ci- removed one wrongly-classified character from iswspace set (zwsp) 410570af302Sopenharmony_ci- fixed crashes in dns lookup on some errors, e.g. resolv.conf missing 411570af302Sopenharmony_ci- "make install" no longer tries to build shared libc if disabled 412570af302Sopenharmony_ci- ptrace argument handling bugs fixed 413570af302Sopenharmony_ci- work around visibility-hidden bugs in gcc 3.x 414570af302Sopenharmony_ci- fix thread-pointer-loss issue when it's initialized in signal handlers 415570af302Sopenharmony_ci- various minor typo/misc fixes in headers 416570af302Sopenharmony_ci 417570af302Sopenharmony_cicompatibility: 418570af302Sopenharmony_ci- glob behaves more like traditional implementations w.r.t. GLOB_MARK 419570af302Sopenharmony_ci- added legacy futimes, lutimes functions 420570af302Sopenharmony_ci- more compatibility macros in sys/param.h (nonstandard header) 421570af302Sopenharmony_ci- setfs[ug]id syscall wrappers (linux specific) 422570af302Sopenharmony_ci- fgetpwent function (nonstandard) 423570af302Sopenharmony_ci- utmp.h matches traditional version more closely 424570af302Sopenharmony_ci- caddr_t now matches glibc type (void * instead of long) 425570af302Sopenharmony_ci- dummy (always-fail) dlopen and dlsym functions for static linked programs 426570af302Sopenharmony_ci- [efg]cvt functions (previously posix, removed from standard) 427570af302Sopenharmony_ci- get_current_dir_name function (nonstandard) 428570af302Sopenharmony_ci 429570af302Sopenharmony_ci 430570af302Sopenharmony_ci 431570af302Sopenharmony_ci0.8.6 release notes 432570af302Sopenharmony_ci 433570af302Sopenharmony_cibug fixes: 434570af302Sopenharmony_ci- fix crash in dns lookups for all static-linked, non-threaded programs 435570af302Sopenharmony_ci 436570af302Sopenharmony_ci 437570af302Sopenharmony_ci 438570af302Sopenharmony_ci0.8.7 release notes 439570af302Sopenharmony_ci 440570af302Sopenharmony_cinew features: 441570af302Sopenharmony_ci- c++ support with g++'s libstdc++ 442570af302Sopenharmony_ci- c99 math library (float, long double, complex, etc.) 443570af302Sopenharmony_ci- numerous wchar_t functions 444570af302Sopenharmony_ci- a64l, l64a functions 445570af302Sopenharmony_ci- getdate function 446570af302Sopenharmony_ci 447570af302Sopenharmony_cicompatibility: 448570af302Sopenharmony_ci- c89 compatibility in math.h 449570af302Sopenharmony_ci- syscall.h alias for sys/syscall.h 450570af302Sopenharmony_ci- memory.h alias for string.h 451570af302Sopenharmony_ci- getcwd supports null buffer argument (auto-allocation) 452570af302Sopenharmony_ci 453570af302Sopenharmony_cibug fixes: 454570af302Sopenharmony_ci- major fenv (floating point environment) fixes and optimizations 455570af302Sopenharmony_ci- strptime mishandling of day/month names 456570af302Sopenharmony_ci- strtoull wrongly rejecting the highest 16 possible values as overflow 457570af302Sopenharmony_ci- math.h constant expression fixes for INFINITY/NAN/etc. 458570af302Sopenharmony_ci- scanf mishandling of "0" with "%x" 459570af302Sopenharmony_ci 460570af302Sopenharmony_ci 461570af302Sopenharmony_ci 462570af302Sopenharmony_ci0.8.8 release notes 463570af302Sopenharmony_ci 464570af302Sopenharmony_cinew feature: 465570af302Sopenharmony_ci- major math correctness and performance improvements 466570af302Sopenharmony_ci- many math functions implemented in asm for i386 467570af302Sopenharmony_ci- some math functions (mostly long double) in asm for x86_64 468570af302Sopenharmony_ci- new floating point parser/converter with correct rounding 469570af302Sopenharmony_ci- implement wcstod, wcstof, and wcstold 470570af302Sopenharmony_ci- new scanf implementation - cleaner, faster, more correct 471570af302Sopenharmony_ci- minimal/incomplete strfmon implementation 472570af302Sopenharmony_ci 473570af302Sopenharmony_cicompatibility: 474570af302Sopenharmony_ci- header fixes for c++ 475570af302Sopenharmony_ci- regex code resync with TRE; support common regex extensions 476570af302Sopenharmony_ci- support for compiling apps with gcc's -funsigned-char 477570af302Sopenharmony_ci- sysconf now returns dynamic limits for open files, processes 478570af302Sopenharmony_ci- give dlerror proper error status stickiness 479570af302Sopenharmony_ci- make alloca work even with -fno-builtin 480570af302Sopenharmony_ci 481570af302Sopenharmony_cicritical security fixes: 482570af302Sopenharmony_ci- stack-based buffer overflow in fprintf on unbuffered files 483570af302Sopenharmony_ci 484570af302Sopenharmony_ciother bug fixes: 485570af302Sopenharmony_ci- rare gcc register allocation (miscompilation) bug in syscall wrappers 486570af302Sopenharmony_ci- printf was rejecting the valid (but redundant) %lf format specifier 487570af302Sopenharmony_ci- fixed big data bloat (missing const) in math functions 488570af302Sopenharmony_ci- many math fixes related to floating point exceptions and rounding 489570af302Sopenharmony_ci- corrected DECIMAL_DIG definitions 490570af302Sopenharmony_ci- tgammal was wrongly setting global signgam 491570af302Sopenharmony_ci- crash in wordfree with uninitialized we_offs 492570af302Sopenharmony_ci- fix wordexp not null-initializing the we_offs initial slots 493570af302Sopenharmony_ci 494570af302Sopenharmony_ci 495570af302Sopenharmony_ci 496570af302Sopenharmony_ci0.8.9 release notes 497570af302Sopenharmony_ci 498570af302Sopenharmony_cibug fixes: 499570af302Sopenharmony_ci- major breakage in strtol and family: failure to accept leading spaces 500570af302Sopenharmony_ci- incorrect name for MATH_ERREXCEPT in math.h 501570af302Sopenharmony_ci 502570af302Sopenharmony_cicompatibility: 503570af302Sopenharmony_ci- prototypes for a few additional nonstandard functions 504570af302Sopenharmony_ci 505570af302Sopenharmony_ci 506570af302Sopenharmony_ci 507570af302Sopenharmony_ci0.8.10 release notes 508570af302Sopenharmony_ci 509570af302Sopenharmony_cinew features: 510570af302Sopenharmony_ci- correct over/underflow detection (ERANGE setting) for strtod 511570af302Sopenharmony_ci- new musl-gcc wrapper, specfile based, faster and more robust 512570af302Sopenharmony_ci- meaningful return strings for dlerror 513570af302Sopenharmony_ci- new iswalpha, iswpunct, and wcwidth; sync'd to Unicode 6.1 514570af302Sopenharmony_ci- towupper/towlower sync'd with Unicode 6.1 515570af302Sopenharmony_ci- new futex-based libc-internal locks instead of spinlocks 516570af302Sopenharmony_ci- experimental stack protector support (minimal; no random canary) 517570af302Sopenharmony_ci- experimental gdb shared library tracking support 518570af302Sopenharmony_ci 519570af302Sopenharmony_cicompatibility: 520570af302Sopenharmony_ci- getusershell family functions 521570af302Sopenharmony_ci- getresuid and getresgid syscall wrappers 522570af302Sopenharmony_ci- byte swapping macros in endian.h 523570af302Sopenharmony_ci- getdtablesize was wrongly declared in unistd.h for _XOPEN_SOURCE 524570af302Sopenharmony_ci 525570af302Sopenharmony_cibug fixes: 526570af302Sopenharmony_ci- iconv_open wrongly rejecting most dest charsets (broken in 0.8.0) 527570af302Sopenharmony_ci- sysconf failure when correct value is -1 (broken in 0.8.8) 528570af302Sopenharmony_ci- scanf and strtod family functions overreading past NAN (4 bytes vs 3) 529570af302Sopenharmony_ci- scanf and strtod wrongly treating "0.00000000001", etc. as 0 530570af302Sopenharmony_ci- many bugs in towupper/towlower (never seriously tested before) 531570af302Sopenharmony_ci- int8_t definition was wrong when gcc -funsigned-char was used 532570af302Sopenharmony_ci 533570af302Sopenharmony_ci 534570af302Sopenharmony_ci 535570af302Sopenharmony_ci0.9.0 release notes 536570af302Sopenharmony_ci 537570af302Sopenharmony_cilicense change: MIT 538570af302Sopenharmony_ci 539570af302Sopenharmony_cinew features: 540570af302Sopenharmony_ci- configure script, improved build system 541570af302Sopenharmony_ci- full stack protector support 542570af302Sopenharmony_ci- PIE support on x86 and x86_64 543570af302Sopenharmony_ci- new O(1) space, O(nm) time implementation of fnmatch 544570af302Sopenharmony_ci- improved support for sse2 floating point mode on x86 545570af302Sopenharmony_ci 546570af302Sopenharmony_cicompatibility: 547570af302Sopenharmony_ci- added linux unshare syscall 548570af302Sopenharmony_ci- exp10/pow10 function 549570af302Sopenharmony_ci- sqrtl support on arm (previously missing) 550570af302Sopenharmony_ci- removed minimal linux/*.h headers that could conflict with real ones 551570af302Sopenharmony_ci- support for _LARGEFILE64_SOURCE (mapped to standard fcns with #define) 552570af302Sopenharmony_ci- better c89 compatibility in headers 553570af302Sopenharmony_ci- stub versions of sched_* functions (previously missing) 554570af302Sopenharmony_ci- pthread stacks no longer executable (compat with hardened kernels) 555570af302Sopenharmony_ci- new ar.h and lastlog.h (legacy junk) 556570af302Sopenharmony_ci- various other header improvements 557570af302Sopenharmony_ci 558570af302Sopenharmony_cioptimization: 559570af302Sopenharmony_ci- additional x86_64 math asm 560570af302Sopenharmony_ci- better formula for acos use in i386 asm 561570af302Sopenharmony_ci 562570af302Sopenharmony_cibug fixes: 563570af302Sopenharmony_ci- large (up to a few %) errors in strtod for certain values due to bug 564570af302Sopenharmony_ci- mbsnrtowcs and wcsnrtombs were completely broken (bad exit logic) 565570af302Sopenharmony_ci- wide printf %.0s could fail due to uninitialized variable 566570af302Sopenharmony_ci- missing dlerror strings for dlsym in some cases 567570af302Sopenharmony_ci 568570af302Sopenharmony_ci 569570af302Sopenharmony_ci 570570af302Sopenharmony_ci0.9.1 release notes 571570af302Sopenharmony_ci 572570af302Sopenharmony_cinew features: 573570af302Sopenharmony_ci- dynamic linker can be used as a program to explicitly load/run executables 574570af302Sopenharmony_ci- ldd command, usable by making a symlink to the dynamic linker named ldd 575570af302Sopenharmony_ci 576570af302Sopenharmony_cibug fixes: 577570af302Sopenharmony_ci- major bugs in POSIX BRE parsing inherited from TRE regex code 578570af302Sopenharmony_ci- character matching bug in regex on ARM: WCHAR_MAX was assumed to be signed 579570af302Sopenharmony_ci- various obscure fixes related to signals and pthread cancellation 580570af302Sopenharmony_ci- remquot subnormal remainder bug 581570af302Sopenharmony_ci- buggy macros in (nonstandard) sys/param.h 582570af302Sopenharmony_ci- major bug in pthread barriers on x86_64 (out of bounds write) 583570af302Sopenharmony_ci- utimes (legacy) function was making wrong syscall (utime instead of utimes) 584570af302Sopenharmony_ci- avoid using "old" syscalls that don't exist on arm eabi linux 585570af302Sopenharmony_ci- broken strrchr(str, 0) 586570af302Sopenharmony_ci- broken mbsinit(0) 587570af302Sopenharmony_ci- broken wcsncmp 588570af302Sopenharmony_ci- syntax error in nextafter macro in tgmath.h 589570af302Sopenharmony_ci- missing support for -pie in musl-gcc wrapper 590570af302Sopenharmony_ci- abort could wrongly fail to terminate the program in some cases 591570af302Sopenharmony_ci 592570af302Sopenharmony_cicompatibility: 593570af302Sopenharmony_ci- increase default thread stack size to 80k 594570af302Sopenharmony_ci- support _BSD_SOURCE feature test macro 595570af302Sopenharmony_ci- support _LARGEFILE64_SOURCE feature test macro (merely exposes alt names) 596570af302Sopenharmony_ci- lots of legacy-compatibility improvements in headers 597570af302Sopenharmony_ci- various minor GNU extension functions 598570af302Sopenharmony_ci- sysconf reporting number of available CPUs/cores 599570af302Sopenharmony_ci- various LSB/glibc ABI interfaces aimed at compatibility with some binaries 600570af302Sopenharmony_ci- use fistpll asm mnemonic instead of fistpq for compat with clang 601570af302Sopenharmony_ci 602570af302Sopenharmony_ci 603570af302Sopenharmony_ci 604570af302Sopenharmony_ci0.9.2 release notes 605570af302Sopenharmony_ci 606570af302Sopenharmony_cibug fixes: 607570af302Sopenharmony_ci- pointer overflow in printf (crash on 32bit userspace, 64bit kernel) 608570af302Sopenharmony_ci- printf %ls over-read bug 609570af302Sopenharmony_ci- strtod failure to read -0x as negative zero 610570af302Sopenharmony_ci- flush stdio after dtors, not before 611570af302Sopenharmony_ci- wrong file position for buffered input streams on exit 612570af302Sopenharmony_ci- popen was broken when stdin/out were already closed 613570af302Sopenharmony_ci- broken wcwidth tables (missing many characters) 614570af302Sopenharmony_ci- fwrite: wrong return value of partial/failed write 615570af302Sopenharmony_ci- broken utf-16 conversions 616570af302Sopenharmony_ci- bad buffer length check in getlogin_r 617570af302Sopenharmony_ci- bad perror("") behavior; did not match perror(0) 618570af302Sopenharmony_ci- broken sysinfo syscall/structure 619570af302Sopenharmony_ci- stdint.h const macro signedness bugs 620570af302Sopenharmony_ci- broken include guards in some headers 621570af302Sopenharmony_ci- bogus localeconv values 622570af302Sopenharmony_ci- cancellation-safety for popen and pclose 623570af302Sopenharmony_ci- fma corner cases wrong on i386 624570af302Sopenharmony_ci- fcntl F_GETOWN errno missing on failure. 625570af302Sopenharmony_ci- char signedness bug in dynamic linker broke dlopen on arm 626570af302Sopenharmony_ci- mprotect failure in dynamic linker caused crash instead of error 627570af302Sopenharmony_ci 628570af302Sopenharmony_cibuild system: 629570af302Sopenharmony_ci- configure check to work around hacked-up gcc versions 630570af302Sopenharmony_ci- test for old binutils that can't support musl dynamic linker 631570af302Sopenharmony_ci 632570af302Sopenharmony_cicompatibility: 633570af302Sopenharmony_ci- make _GNU_SOURCE imply _LARGEFILE64_SOURCE 634570af302Sopenharmony_ci- syscall wrapper for lots of nonstandard and/or legacy linux syscalls 635570af302Sopenharmony_ci- versionsort stub 636570af302Sopenharmony_ci- timegm function (inverse of gmtime) 637570af302Sopenharmony_ci- various minor header tweaks 638570af302Sopenharmony_ci- make __freading/__fwriting semantics match traditional ones 639570af302Sopenharmony_ci- added gnulib-compatibility stdio interfaces 640570af302Sopenharmony_ci- added pthread_attr_setstack interface 641570af302Sopenharmony_ci- make strerror_r return partial string when buffer is too small 642570af302Sopenharmony_ci- duplocale should accept LC_GLOBAL_LOCALE 643570af302Sopenharmony_ci- align ptsname_r to upcoming posix requirements 644570af302Sopenharmony_ci- support invalid ld80 bit patterns as extra nans. 645570af302Sopenharmony_ci 646570af302Sopenharmony_ci 647570af302Sopenharmony_ci 648570af302Sopenharmony_ci0.9.3 release notes 649570af302Sopenharmony_ci 650570af302Sopenharmony_cinew features: 651570af302Sopenharmony_ci- mips (32-bit, o32 abi) port, currently static-linked only 652570af302Sopenharmony_ci- newly overhauled crypt implementation 653570af302Sopenharmony_ci- improved library pathname info for debugger from the dynamic linker 654570af302Sopenharmony_ci- getaddrinfo (and getservbyname) now support /etc/services lookups 655570af302Sopenharmony_ci- pipe2 syscall wrapper 656570af302Sopenharmony_ci- splice and vmsplice syscall wrappers 657570af302Sopenharmony_ci- syscall wrappers for extended attribute interfaces 658570af302Sopenharmony_ci- ioperm/iopl syscall wrappers on archs that support these operations 659570af302Sopenharmony_ci 660570af302Sopenharmony_cibug fixes: 661570af302Sopenharmony_ci- dlsym RTLD_NEXT library search order was wrong 662570af302Sopenharmony_ci- multiple dlopen pathname and library name handling errors 663570af302Sopenharmony_ci- potential race condition in detached thread exit 664570af302Sopenharmony_ci- broken internal-lock-handling code not updated for futex-based __lock 665570af302Sopenharmony_ci- sem_trywait spurious EAGAIN errors arising from CAS failures 666570af302Sopenharmony_ci- workaround kernel bug in cmsghdr size_t vs socklen_t issue (64-bit) 667570af302Sopenharmony_ci- getservby* crash on null protocol argument 668570af302Sopenharmony_ci- logic error skipping failed interfaces in if_nameindex 669570af302Sopenharmony_ci- various minor header/declaration related issues 670570af302Sopenharmony_ci 671570af302Sopenharmony_ciarm-specific bug fixes: 672570af302Sopenharmony_ci- broken crti/crtn startup code when gcc crtbegin/end files are linked 673570af302Sopenharmony_ci- sigsetjmp tail call optimization failure broke the function 674570af302Sopenharmony_ci- incorrect little-endian assumptions in atomic.h functions 675570af302Sopenharmony_ci- use of blx instruction in asm (not supported on pre-v5 arm) 676570af302Sopenharmony_ci 677570af302Sopenharmony_cibuild system: 678570af302Sopenharmony_ci- only use expensive -ffloat-store cflag on archs/compilers that need it 679570af302Sopenharmony_ci- make musl-gcc wrapper support -lgcc (mainly for self-hosting) 680570af302Sopenharmony_ci 681570af302Sopenharmony_ci 682570af302Sopenharmony_ci 683570af302Sopenharmony_ci0.9.4 release notes 684570af302Sopenharmony_ci 685570af302Sopenharmony_cinew features: 686570af302Sopenharmony_ci- blowfish crypt 687570af302Sopenharmony_ci- dynamic linking on mips 688570af302Sopenharmony_ci- arm hard float support 689570af302Sopenharmony_ci- BSD fgetln function in stdio 690570af302Sopenharmony_ci- minor header improvements for compatibility 691570af302Sopenharmony_ci- support for CROSS_COMPILE variable to configure 692570af302Sopenharmony_ci- legacy significand function 693570af302Sopenharmony_ci- better support for SUSv3-targeted programs 694570af302Sopenharmony_ci 695570af302Sopenharmony_ciperformance: 696570af302Sopenharmony_ci- assembly (string ops based) memcpy for i386 and x86_64 697570af302Sopenharmony_ci- reduce printf overhead 698570af302Sopenharmony_ci 699570af302Sopenharmony_cibug fixes: 700570af302Sopenharmony_ci- failure of strtod, etc. to process extremely long strings correctly 701570af302Sopenharmony_ci- read overrun in wcsstr for short needles 702570af302Sopenharmony_ci- various major mips issues that prevented most software from working 703570af302Sopenharmony_ci- erroneous floating point exception behavior in i386/x86_64 exp asm 704570af302Sopenharmony_ci- crashes on null arguments to legacy err.h functions 705570af302Sopenharmony_ci- various header file/type issues 706570af302Sopenharmony_ci- extremely rare/obscure race condition with robust mutexes 707570af302Sopenharmony_ci- crypt now never returns null (most programs don't check, then crash) 708570af302Sopenharmony_ci- missing xattr remove functions 709570af302Sopenharmony_ci 710570af302Sopenharmony_ci 711570af302Sopenharmony_ci 712570af302Sopenharmony_ci0.9.5 release notes 713570af302Sopenharmony_ci 714570af302Sopenharmony_cicompatibility and headers: 715570af302Sopenharmony_ci- POSIX+XSI+BSD features enabled by default with no macros defined 716570af302Sopenharmony_ci- most programs can now be built without adding -D_GNU_SOURCE 717570af302Sopenharmony_ci- added C99 restrict keyword where required in all prototypes 718570af302Sopenharmony_ci- greater C89 compatibility 719570af302Sopenharmony_ci- cleaner, more-compatible public syscall.h 720570af302Sopenharmony_ci- many other header fixes 721570af302Sopenharmony_ci- support for compiling musl with clang/llvm 722570af302Sopenharmony_ci 723570af302Sopenharmony_cinew features: 724570af302Sopenharmony_ci- sha 256/512 password hash functions in crypt 725570af302Sopenharmony_ci- GNU hash support in dynamic linker 726570af302Sopenharmony_ci- partial C11 coverage 727570af302Sopenharmony_ci- dladdr function added 728570af302Sopenharmony_ci- dynamic linker reports all errors instead of exiting on first error 729570af302Sopenharmony_ci- syscall wrappers added for most remaining linux syscalls 730570af302Sopenharmony_ci- provide POSIX O_SEARCH open mode using linux O_PATH 731570af302Sopenharmony_ci 732570af302Sopenharmony_cibug fixes: 733570af302Sopenharmony_ci- most atexit functions were being skipped when exiting 734570af302Sopenharmony_ci- some BSD functions were not being exposed under _BSD_SOURCE 735570af302Sopenharmony_ci- issues loading ssp-protected DSO into non-ssp program with dlopen 736570af302Sopenharmony_ci 737570af302Sopenharmony_cidebloating: 738570af302Sopenharmony_ci- eliminate .eh_frame (10-15% loaded size bloat) 739570af302Sopenharmony_ci- optimal inline syscall asm for ARM and MIPS 740570af302Sopenharmony_ci- no longer force -O3 for shared libs 741570af302Sopenharmony_ci 742570af302Sopenharmony_ci 743570af302Sopenharmony_ci 744570af302Sopenharmony_ci0.9.6 release notes 745570af302Sopenharmony_ci 746570af302Sopenharmony_cibug fixes: 747570af302Sopenharmony_ci- serious breakage in definition of O_ACCMODE mask (missing a bit) 748570af302Sopenharmony_ci 749570af302Sopenharmony_cinew features: 750570af302Sopenharmony_ci- O_EXEC open mode 751570af302Sopenharmony_ci- md5 crypt hash function 752570af302Sopenharmony_ci 753570af302Sopenharmony_ci 754570af302Sopenharmony_ci 755570af302Sopenharmony_ci0.9.7 release notes 756570af302Sopenharmony_ci 757570af302Sopenharmony_cinew features: 758570af302Sopenharmony_ci- thread-local storage (__thread/_Thread_local) 759570af302Sopenharmony_ci- microblaze port 760570af302Sopenharmony_ci- getopt option parsing reset support 761570af302Sopenharmony_ci- vsyscall (sysenter, etc.) support on i386 (faster syscalls) 762570af302Sopenharmony_ci- memmem function (GNU extension) 763570af302Sopenharmony_ci- mips fenv support 764570af302Sopenharmony_ci- accept "nan(n-char-sequence)" in strtod/scanf family functions 765570af302Sopenharmony_ci- configure now supports compiling with pcc 766570af302Sopenharmony_ci 767570af302Sopenharmony_ciquality and correctness improvements: 768570af302Sopenharmony_ci- close-on-exec flag for all library-internal file descriptors 769570af302Sopenharmony_ci- cancellation-safety and corner-case overhaul in shm_open/sem_open 770570af302Sopenharmony_ci- close EINTR vs EINPROGRESS issue 771570af302Sopenharmony_ci- mark binaries as not requiring executable stack 772570af302Sopenharmony_ci- better gdb compatibility in dynamic linker 773570af302Sopenharmony_ci- support recursive dlopen (dlopen called from constructors) 774570af302Sopenharmony_ci- posix_spawn/system/popen no longer momentarily double commit charge 775570af302Sopenharmony_ci- all stdio functions wait for locks 776570af302Sopenharmony_ci 777570af302Sopenharmony_cibug fixes: 778570af302Sopenharmony_ci- broken sysvipc *ctl functions on 64-bit archs 779570af302Sopenharmony_ci- broken shmdt on some archs 780570af302Sopenharmony_ci- getaddrinfo failure with port "0" 781570af302Sopenharmony_ci- dirname handling of trailing slash 782570af302Sopenharmony_ci- vfork race in posix_spawn 783570af302Sopenharmony_ci 784570af302Sopenharmony_ci 785570af302Sopenharmony_ci 786570af302Sopenharmony_ci0.9.8 release notes 787570af302Sopenharmony_ci 788570af302Sopenharmony_cinew features: 789570af302Sopenharmony_ci- powerpc port 790570af302Sopenharmony_ci- dl_iterate_phdr interface 791570af302Sopenharmony_ci- added mips-specific syscalls 792570af302Sopenharmony_ci- thread priority scheduling 793570af302Sopenharmony_ci- C11 CMPLX macro in complex.h 794570af302Sopenharmony_ci- x86 port io functions in sys/io.h 795570af302Sopenharmony_ci 796570af302Sopenharmony_cicompatibility: 797570af302Sopenharmony_ci- improved headers for trace/debugging/machine-access 798570af302Sopenharmony_ci- stub functions for unsupported thread-related functionality 799570af302Sopenharmony_ci 800570af302Sopenharmony_cibug fixes: 801570af302Sopenharmony_ci- numerous math bugs (mostly exception flags and excess-precision issues) 802570af302Sopenharmony_ci- register clobber error in i386 vsyscall asm (did not affect most callers) 803570af302Sopenharmony_ci- various incorrect definitions in mips headers 804570af302Sopenharmony_ci- broken dlsym asm on mips 805570af302Sopenharmony_ci- empty prefix handling in configure script (--prefix="") 806570af302Sopenharmony_ci- ldso search path logic issues 807570af302Sopenharmony_ci- lock handling for stdio memory streams at exit time 808570af302Sopenharmony_ci- invalid SO_REUSEPORT definition in socket.h (not supported by Linux) 809570af302Sopenharmony_ci- broken redirection attempt to /dev/null in configure script 810570af302Sopenharmony_ci 811570af302Sopenharmony_ci 812570af302Sopenharmony_ci 813570af302Sopenharmony_ci0.9.9 release notes 814570af302Sopenharmony_ci 815570af302Sopenharmony_cinew features: 816570af302Sopenharmony_ci- tgamma implementation (no longer lgamma wrapper with low precision) 817570af302Sopenharmony_ci- various gnu extensions: sigandset, sigorset, etc. 818570af302Sopenharmony_ci- futimesat function (obsolete) 819570af302Sopenharmony_ci- various linux syscalls: arch_prctl, personality, etc. 820570af302Sopenharmony_ci 821570af302Sopenharmony_cioptimizations: 822570af302Sopenharmony_ci- hyperbolic, inverse hyperbolic, and inverse trig, bessel functions 823570af302Sopenharmony_ci- is* comparison macros in math.h now expand inline properly 824570af302Sopenharmony_ci 825570af302Sopenharmony_cilibrary bugs fixed: 826570af302Sopenharmony_ci- calling getenv from shared library ctors was broken 827570af302Sopenharmony_ci- invalid read in mmap-serviced aligned_alloc/memalign (possible crash) 828570af302Sopenharmony_ci- wrong errno result in fallback path of pipe2 829570af302Sopenharmony_ci- various math functions raising spurious exceptions 830570af302Sopenharmony_ci- mmap errno value on invalid offsets 831570af302Sopenharmony_ci- backwards alignment logic in strlcpy 832570af302Sopenharmony_ci- integer overflows in bessel functions 833570af302Sopenharmony_ci- large (up to 60ulp) error in erfcf 834570af302Sopenharmony_ci- dlsym/dlclose crashing on invalid library handles 835570af302Sopenharmony_ci- failure to handle arch variations for cloexec/nonblock flags 836570af302Sopenharmony_ci- lio_listio wrong return value for LIO_WAIT mode 837570af302Sopenharmony_ci- dladdr failure to resolve PLT addresses 838570af302Sopenharmony_ci- time_t/struct tm conversion off-by-one-day in december 839570af302Sopenharmony_ci- malloc corruption on nonstandard kernels with non-page-aligned brk 840570af302Sopenharmony_ci 841570af302Sopenharmony_ciarch-specific bugs fixed: 842570af302Sopenharmony_ci- arm ctors/dtors were not working with recent gcc versions 843570af302Sopenharmony_ci- arm and mips setjmp/longjmp wrongly saved/restored fenv state 844570af302Sopenharmony_ci- loss of precision in i386/x86_64 expl 845570af302Sopenharmony_ci 846570af302Sopenharmony_ciheader bugs fixed: 847570af302Sopenharmony_ci- incorrect PRI/SCN macros in inttypes.h for some types 848570af302Sopenharmony_ci- arm sys/user.h regressions 849570af302Sopenharmony_ci- failure of offsetof() to be an integer constant expression 850570af302Sopenharmony_ci- tgmath return value type problems 851570af302Sopenharmony_ci 852570af302Sopenharmony_ciheader compatibility improvements: 853570af302Sopenharmony_ci- _GNU_SOURCE now enables everything; _ALL_SOURCE also works 854570af302Sopenharmony_ci- scsi/scsi.h and scsi/sg.h are now provided 855570af302Sopenharmony_ci- additional MAP_* flags for mmap 856570af302Sopenharmony_ci- additional F_* commands and flags for fcntl 857570af302Sopenharmony_ci- additional socket option, IPPROTO_* values, and multicase macros 858570af302Sopenharmony_ci- thread-related waitpid flags 859570af302Sopenharmony_ci- EHWPOISON added to errno.h 860570af302Sopenharmony_ci- additional macros for mount, swap, and reboot operations 861570af302Sopenharmony_ci- expose additional link.h structures 862570af302Sopenharmony_ci- always ensure sizeof(NULL)==sizeof(void *), even in c++ 863570af302Sopenharmony_ci- additional flags for poll, epoll, inotify, timerfd, timex, dlfcn 864570af302Sopenharmony_ci- register names in signal.h/ucontext.h for x86 865570af302Sopenharmony_ci- ipc.h ipc_perm nonstandard struct field name compatibility improve 866570af302Sopenharmony_ci 867570af302Sopenharmony_ci 868570af302Sopenharmony_ci 869570af302Sopenharmony_ci0.9.10 release notes 870570af302Sopenharmony_ci 871570af302Sopenharmony_cinew features: 872570af302Sopenharmony_ci- getifaddrs 873570af302Sopenharmony_ci- pthread_getattr_np (widely used by garbage collectors) 874570af302Sopenharmony_ci- mkostemps, mkostemp, mkstemps functions (mkostemp is future-POSIX) 875570af302Sopenharmony_ci- strcasestr and strverscmp (previously stubs) 876570af302Sopenharmony_ci 877570af302Sopenharmony_ciimprovements: 878570af302Sopenharmony_ci- major performance improvements in mbtowc 879570af302Sopenharmony_ci- avoid filling caller-provided thread stacks with large TLS 880570af302Sopenharmony_ci- debloat unnecessary static buffers 881570af302Sopenharmony_ci- robust posix_spawn based on CLONE_VM instead of vfork 882570af302Sopenharmony_ci- new system() and popen() based on posix_spawn 883570af302Sopenharmony_ci- better strerror strings 884570af302Sopenharmony_ci- further emulation of atomic close-on-exec/nonblock options for old kernels 885570af302Sopenharmony_ci- provide macro constants for new-ish kernel features 886570af302Sopenharmony_ci 887570af302Sopenharmony_cicompatibility: 888570af302Sopenharmony_ci- several nonstandard but widely-available pwd/grp/shadow functions 889570af302Sopenharmony_ci- program_invocation_[short_]name 890570af302Sopenharmony_ci- re-added useconds_t type used by some programs 891570af302Sopenharmony_ci- some legacy arpa headers 892570af302Sopenharmony_ci- dn_skipname function (legacy resolver API) 893570af302Sopenharmony_ci- additional ABI aliases for supporting glibc-linked libraries/binaries 894570af302Sopenharmony_ci 895570af302Sopenharmony_cigeneral bugs fixed: 896570af302Sopenharmony_ci- stale locks and bogus munmap call when pthread_create fails 897570af302Sopenharmony_ci- uninitialized argument to munmap when dynlink load_library fails 898570af302Sopenharmony_ci- incorrect error returns in gethostby*_r 899570af302Sopenharmony_ci- memory leak in gethostbyname family 900570af302Sopenharmony_ci- blank ai_canonname in getaddrinfo for non-CNAME records 901570af302Sopenharmony_ci- undefined HZ macro in scsi/sg.h 902570af302Sopenharmony_ci- wrong return value for wmemmove on forward-copy 903570af302Sopenharmony_ci- namespace conformance in strings.h 904570af302Sopenharmony_ci- various utmp.h bugs 905570af302Sopenharmony_ci- unnecessary DT_SONAME in libc.so caused problems on some systems 906570af302Sopenharmony_ci- multiple bugs in syslog, some possibly dangerous 907570af302Sopenharmony_ci- non-functional setpriority function 908570af302Sopenharmony_ci- slight mishandling of 0xf5 byte in UTF-8 decoder 909570af302Sopenharmony_ci- misaligned memory accesses in mbsrtowcs 910570af302Sopenharmony_ci 911570af302Sopenharmony_ciarch-specific bugs fixed: 912570af302Sopenharmony_ci- crash in shared library loading on arm 913570af302Sopenharmony_ci- missing __aeabi_atexit needed by arm eabi 914570af302Sopenharmony_ci- wrong float_t definition on x86_64 915570af302Sopenharmony_ci- various low-impact type size/alignment mismatches in some headers 916570af302Sopenharmony_ci- epoll struct alignment wrong on non-x86[_64] archs 917570af302Sopenharmony_ci- broken pipe2 fallback code on mips with old kernels 918570af302Sopenharmony_ci 919570af302Sopenharmony_ci 920570af302Sopenharmony_ci 921570af302Sopenharmony_ci0.9.11 release notes 922570af302Sopenharmony_ci 923570af302Sopenharmony_cinew features: 924570af302Sopenharmony_ci- %m allocation modifier for scanf 925570af302Sopenharmony_ci- week number and ISO week-based-year functionality in strftime 926570af302Sopenharmony_ci- per-process and per-thread cputime clocks 927570af302Sopenharmony_ci- ethernet address conversion interfaces 928570af302Sopenharmony_ci- legacy classful ipv4 network address interfaces 929570af302Sopenharmony_ci- minimal dlinfo function (nonstandard) 930570af302Sopenharmony_ci 931570af302Sopenharmony_ciother improvements: 932570af302Sopenharmony_ci- dynamic linker path file can now use newlines to separate paths 933570af302Sopenharmony_ci- math optimizations for archs with extended precision (i386) 934570af302Sopenharmony_ci- musl-gcc wrapper now exposes gcc's intrinsic headers 935570af302Sopenharmony_ci- quality of rand and rand_r pseudo-random sequences 936570af302Sopenharmony_ci- support for large device minor numbers (greater than 8 bits) 937570af302Sopenharmony_ci- various header conformance and compatibility fixes 938570af302Sopenharmony_ci 939570af302Sopenharmony_cidirectly user-visible bugs fixed: 940570af302Sopenharmony_ci- scanf losing characters on unbuffered streams and fmemopen streams 941570af302Sopenharmony_ci- failure of mbsrtowcs to record stop position when dest is full 942570af302Sopenharmony_ci- failure of iconv to convert to legacy codepages 943570af302Sopenharmony_ci- non-working pthread_[sg]etschedparam functions (wrong syscall arguments) 944570af302Sopenharmony_ci 945570af302Sopenharmony_ciother potentially-serious bugs fixed: 946570af302Sopenharmony_ci- resource leaks in sem_open 947570af302Sopenharmony_ci- various bugs in thread exit synchronization 948570af302Sopenharmony_ci- invalid access in aio notification after aiocb free/reuse 949570af302Sopenharmony_ci- synchronization in dynamic linker when new thread dlopens during ctors 950570af302Sopenharmony_ci- lack of error handling for failure to read dynamic linker path file 951570af302Sopenharmony_ci- creation by mmap or shmget of objects larger than PTRDIFF_MAX 952570af302Sopenharmony_ci 953570af302Sopenharmony_ciminor conformance bugs fixed: 954570af302Sopenharmony_ci- overflow handling for the clock function 955570af302Sopenharmony_ci- workaround for incorrect exceptions in fma due to compiler bugs 956570af302Sopenharmony_ci- workaround wrong kernel type for sem_nsems field in struct semid_ds 957570af302Sopenharmony_ci 958570af302Sopenharmony_ciarch-specific bugs fixed: 959570af302Sopenharmony_ci- x86_64 sigsetjmp clobbered the signal mask rather than saving it 960570af302Sopenharmony_ci- misaligned stack when calling ctors/dtors (crashing on x86_64) 961570af302Sopenharmony_ci 962570af302Sopenharmony_ci 963570af302Sopenharmony_ci 964570af302Sopenharmony_ci0.9.12 release notes 965570af302Sopenharmony_ci 966570af302Sopenharmony_cinew features: 967570af302Sopenharmony_ci- zoneinfo time zone support 968570af302Sopenharmony_ci- PIE support on all supported archs 969570af302Sopenharmony_ci- named sub-archs for endian and float ABI variants 970570af302Sopenharmony_ci- improved support for non-root installs of the dynamic linker 971570af302Sopenharmony_ci- ability to selectively build only performance-critical modules with -O3 972570af302Sopenharmony_ci- simple buffer overflow detection in free/realloc 973570af302Sopenharmony_ci- inet_ntop now presents v4-mapped addresses in ::ffff:a.b.c.d form 974570af302Sopenharmony_ci- ldd now reports libc and the dynamic linker in its output 975570af302Sopenharmony_ci 976570af302Sopenharmony_cicompatibility: 977570af302Sopenharmony_ci- support for new init/fini array (needed for ctors/dtors on newer gcc) 978570af302Sopenharmony_ci- C++ ABI fully matches glibc/LSB, at least on x86 979570af302Sopenharmony_ci- many added ABI compatibility symbols for using glibc-linked libs 980570af302Sopenharmony_ci- support for STB_GNU_UNIQUE symbol bindings (found in some C++ libs) 981570af302Sopenharmony_ci- macros/types for new Linux kernel features in headers 982570af302Sopenharmony_ci 983570af302Sopenharmony_cibugs fixed: 984570af302Sopenharmony_ci- crashes in scanf on literal mismatches (regression from adding %m) 985570af302Sopenharmony_ci- dl_iterate_phdr was passing invalid phdr pointers to its callback 986570af302Sopenharmony_ci- getaddrinfo with null host and AF_UNSPEC was failing to report IPv6 987570af302Sopenharmony_ci- integer overflows in date/time conversion code 988570af302Sopenharmony_ci- misinterpretation of pre-1930s dates as post-2038 on 32-bit archs 989570af302Sopenharmony_ci- make install failed to install bits headers if make was not run first 990570af302Sopenharmony_ci- shm_open was wrongly cancellable 991570af302Sopenharmony_ci- low- or no-impact heap corruption in memalign 992570af302Sopenharmony_ci- explicitly running the dynamic linker on PIE programs did not work 993570af302Sopenharmony_ci- missing macros and sysconf for some supported POSIX option groups 994570af302Sopenharmony_ci- missing close-on-exec flags for several internal fd uses 995570af302Sopenharmony_ci 996570af302Sopenharmony_ciarch-specific bugs: 997570af302Sopenharmony_ci- wrong SIG_ATOMIC_MIN/MAX macros on x86_64 998570af302Sopenharmony_ci- erfcl was missing on archs where long double is same as double 999570af302Sopenharmony_ci- broken dynamic-model TLS in static-linked arm/mips/powerpc programs 1000570af302Sopenharmony_ci 1001570af302Sopenharmony_ci 1002570af302Sopenharmony_ci 1003570af302Sopenharmony_ci0.9.13 release notes 1004570af302Sopenharmony_ci 1005570af302Sopenharmony_cinew features: 1006570af302Sopenharmony_ci- iconv support for EUC-KR and Big5 (including HKSCS) encodings 1007570af302Sopenharmony_ci- field widths (POSIX 2008 feature) in strftime 1008570af302Sopenharmony_ci- recursive rpath and $ORIGIN support in dynamic linker 1009570af302Sopenharmony_ci- cpu affinity interfaces 1010570af302Sopenharmony_ci- support for armhf (hardfloat) floating point environment (fenv) 1011570af302Sopenharmony_ci- support for SSE fenv on i386 (for apps using -mfpmath=sse -msse2) 1012570af302Sopenharmony_ci- strftime %s format (seconds since the epoch, future POSIX requirement) 1013570af302Sopenharmony_ci- configure script now saves its command line as a comment in config.mak 1014570af302Sopenharmony_ci- legacy functions valloc and euidaccess 1015570af302Sopenharmony_ci 1016570af302Sopenharmony_ciperformance: 1017570af302Sopenharmony_ci- optimized asm memcpy for arm 1018570af302Sopenharmony_ci- optimized asm memset for i386 and x86_64 1019570af302Sopenharmony_ci- optimized C versions of memcpy and memset for all archs 1020570af302Sopenharmony_ci- eliminated major spurious syscalls from posix_spawn 1021570af302Sopenharmony_ci- some math asm for armhf (hardfloat) 1022570af302Sopenharmony_ci 1023570af302Sopenharmony_ciworkarounds for: 1024570af302Sopenharmony_ci- qemu-user's rt_sigaction syscall does not allow old to alias new 1025570af302Sopenharmony_ci- qemu-user's madvise always succeeds (broke pthread_getattr_np) 1026570af302Sopenharmony_ci- passing PT_INTERP to dlopen attempted to double-load libc 1027570af302Sopenharmony_ci- gcc 4.8.x generating self-referential (infinite recursion) memcpy/memset 1028570af302Sopenharmony_ci- linux's lack of support for fchdir, fchmod, fchown, fstat on O_PATH fds 1029570af302Sopenharmony_ci 1030570af302Sopenharmony_cibugs fixed: 1031570af302Sopenharmony_ci- failure to honor flags for fchmodat and faccessat (linux syscall api flaws) 1032570af302Sopenharmony_ci- SIGEV_THREAD timer id corruption and race condition issues 1033570af302Sopenharmony_ci- timer thread TLS incorrectly keeping values from previous expiry run 1034570af302Sopenharmony_ci- ecvt/fcvt decimal position off-by-one 1035570af302Sopenharmony_ci- in symbol-versioned libs, symbol resolved to oldest instead of newest 1036570af302Sopenharmony_ci- posix_spawn not correctly reporting errno from exec failure 1037570af302Sopenharmony_ci- "make install" was not atomic (overwrote files rather than replacing) 1038570af302Sopenharmony_ci- integer overflows in strftime 1039570af302Sopenharmony_ci- unset/empty TZ variable was mishandled 1040570af302Sopenharmony_ci- strftime could crash if the struct tm did not have valid tm_zone field 1041570af302Sopenharmony_ci- failure of fenv functions to handle invalid arguments (required by ISO C) 1042570af302Sopenharmony_ci- failure of some math functions (C and i386 asm) to raise underflow flag 1043570af302Sopenharmony_ci- broken dn_expand function (previously not used internally) 1044570af302Sopenharmony_ci- race conditions with signals during fork 1045570af302Sopenharmony_ci- incorrect access check in mktemp (obsolete function) 1046570af302Sopenharmony_ci- unnecessary arbitrary limits on size of program headers in dynamic loader 1047570af302Sopenharmony_ci- text formatting bugs in output of err.h functions 1048570af302Sopenharmony_ci 1049570af302Sopenharmony_ciarch-specific bugs: 1050570af302Sopenharmony_ci- fesetenv(FE_DFL_ENV) crashed on i386 1051570af302Sopenharmony_ci- breakage of arm crt code when libc is compiled as thumb 1052570af302Sopenharmony_ci- arm/armhf (hardfloat) misidentified by configure 1053570af302Sopenharmony_ci- ambiguity of wait (exit status) macros on mips with signal number 127 1054570af302Sopenharmony_ci- wrong value of _NSIG and SIGRTMAX on mips 1055570af302Sopenharmony_ci 1056570af302Sopenharmony_ci 1057570af302Sopenharmony_ci 1058570af302Sopenharmony_ci0.9.14 release notes 1059570af302Sopenharmony_ci 1060570af302Sopenharmony_cibugs fixed: 1061570af302Sopenharmony_ci- failure to properly install dynamic linker with DESTDIR set (symlink wrong) 1062570af302Sopenharmony_ci- rare deadlock in libc-internal locking routines 1063570af302Sopenharmony_ci- dynamic linker used fallback paths wrongly on (possibly transient) errors 1064570af302Sopenharmony_ci- popen broken when stdin or stdout was already closed in parent 1065570af302Sopenharmony_ci- deadlock/memory-corruption in multithreaded set*id and setrlimit functions 1066570af302Sopenharmony_ci- realpath failed when file was not readable 1067570af302Sopenharmony_ci- readpath mistakenly had cancellation points in it 1068570af302Sopenharmony_ci- crashes in scanf with invalid %m conversion specifiers 1069570af302Sopenharmony_ci- misclassificiation of some invalid ld80 float representation in fpclassify 1070570af302Sopenharmony_ci- various overflow and underflow flag issues in math functions 1071570af302Sopenharmony_ci- domain handling errors for acoshf and acoshl 1072570af302Sopenharmony_ci- wrong values for some sysconf properties 1073570af302Sopenharmony_ci- lack of proper memory barriers on arm 1074570af302Sopenharmony_ci 1075570af302Sopenharmony_cimips-specific bugs: 1076570af302Sopenharmony_ci- broken sysv ipc structures 1077570af302Sopenharmony_ci- multiple stack-related bugs in clone, leading to crashes in parent or child 1078570af302Sopenharmony_ci- overflow writing sigset_t in multithreaded set*id and setrlimit functions 1079570af302Sopenharmony_ci 1080570af302Sopenharmony_ciother improvements: 1081570af302Sopenharmony_ci- size and performance improvements to various math functions 1082570af302Sopenharmony_ci- wait.h as a compatibility alias for sys/wait.h 1083570af302Sopenharmony_ci- various header improvements 1084570af302Sopenharmony_ci- support for runtime-variable page size on archs that need it (mainly mips) 1085570af302Sopenharmony_ci 1086570af302Sopenharmony_ci 1087570af302Sopenharmony_ci 1088570af302Sopenharmony_ci0.9.15 release notes 1089570af302Sopenharmony_ci 1090570af302Sopenharmony_cinew features: 1091570af302Sopenharmony_ci- support for mixing IPv4 and v6 nameserver addresses in resolv.conf 1092570af302Sopenharmony_ci- RFC 3678 multicast structures/macros in netinet/in.h 1093570af302Sopenharmony_ci- putspent and fgetspent functions (shadow password API) 1094570af302Sopenharmony_ci- timef function (obsolete, removed in POSIX 2008) 1095570af302Sopenharmony_ci- fanotify syscalls (Linux-specific feature) 1096570af302Sopenharmony_ci- semtimedop syscall (Linux-specific sysvipc extension) 1097570af302Sopenharmony_ci- quotactl syscall and header (filesystem quotas support) 1098570af302Sopenharmony_ci- drem and finite functions (obsolete BSD functions) 1099570af302Sopenharmony_ci- getloadavg function (non-standard) 1100570af302Sopenharmony_ci- herror function (non-standard and obsolete) 1101570af302Sopenharmony_ci- libc.so now stores and prints its version information 1102570af302Sopenharmony_ci- expose constants for new Linux features including O_TMPFILE 1103570af302Sopenharmony_ci- implement FNM_LEADING_DIR option to fnmatch (GNU extension) 1104570af302Sopenharmony_ci- posix_close function (accepted for inclusion in next POSIX issue) 1105570af302Sopenharmony_ci 1106570af302Sopenharmony_cibugs fixed: 1107570af302Sopenharmony_ci- buffer overflow in mbsrtowcs 1108570af302Sopenharmony_ci- clobbering of gr_name in getgrnam_r and getgrgid_r 1109570af302Sopenharmony_ci- execle ignoring the environment argument 1110570af302Sopenharmony_ci- setenv crash on malloc failure 1111570af302Sopenharmony_ci- out-of-bounds access in fnmatch with FNM_PATHNAME and certain patterns 1112570af302Sopenharmony_ci- failure of malloc to set errno when failing to extend heap 1113570af302Sopenharmony_ci- incorrect errno value from getcwd with zero size 1114570af302Sopenharmony_ci- spurious failure in faccessat with AT_EACCESS flag with suid/sgid programs 1115570af302Sopenharmony_ci- several fd leaks due to missing close-on-exec flag 1116570af302Sopenharmony_ci- misspellings/typos in macro names in several headers 1117570af302Sopenharmony_ci- incorrect failure return value in inet_pton 1118570af302Sopenharmony_ci- various numeric ip address parsing and validation fixes 1119570af302Sopenharmony_ci- namespace conformance issues in several headers 1120570af302Sopenharmony_ci- minor header issues 1121570af302Sopenharmony_ci- zombie processes left by faccessat with AT_EACCESS 1122570af302Sopenharmony_ci- timezone file parser failing/crashing on 64-bit archs 1123570af302Sopenharmony_ci- hang in localtime with near-overflowing time_t values on 64-bit archs 1124570af302Sopenharmony_ci- timezone path search was only trying first path 1125570af302Sopenharmony_ci- incorrect handling of excessive-length TZ environment strings 1126570af302Sopenharmony_ci- timezone file loading was wrongly enforcing O_NOFOLLOW/rejecting symlinks 1127570af302Sopenharmony_ci- iswspace was wrongly returning true for the null character 1128570af302Sopenharmony_ci- various bugs in wordexp 1129570af302Sopenharmony_ci- putgrent could write corrupt lines after write failures 1130570af302Sopenharmony_ci- dn_expand misinterpreted in-packet offsets greater than 255 1131570af302Sopenharmony_ci- spurious strftime/wcsftime failure on len+1==bufsize case 1132570af302Sopenharmony_ci- incorrect underflow flag in fma corner cases 1133570af302Sopenharmony_ci- log*(0) wrongly returned +inf in downward-rounding mode 1134570af302Sopenharmony_ci- failure of fchmod, fstat, fchdir, and fchown to produce EBADF 1135570af302Sopenharmony_ci 1136570af302Sopenharmony_ciarch-specific bugs fixed: 1137570af302Sopenharmony_ci- i386: failure of fesetround to set sse rounding mode 1138570af302Sopenharmony_ci- i386: floating point limit constants misinterpreted due to excess precision 1139570af302Sopenharmony_ci- powerpc: broken thread pointer access when compiled with clang 1140570af302Sopenharmony_ci- microblaze: dynamic linker entry point code possibly clobbering argv 1141570af302Sopenharmony_ci 1142570af302Sopenharmony_cistrict conformance issues: 1143570af302Sopenharmony_ci- NULL definition re-aligned with POSIX (requires (void *) cast) 1144570af302Sopenharmony_ci- alignment of math.h is* comparison functions with C11 annex F requirements 1145570af302Sopenharmony_ci 1146570af302Sopenharmony_ci 1147570af302Sopenharmony_ci 1148570af302Sopenharmony_ci1.0.0 release notes 1149570af302Sopenharmony_ci 1150570af302Sopenharmony_cinew features: 1151570af302Sopenharmony_ci- support for mips softfloat ABI variant 1152570af302Sopenharmony_ci- legacy setkey and encrypt API for DES 1153570af302Sopenharmony_ci- support for BSD version of struct tcphdr in addition to GNU version 1154570af302Sopenharmony_ci- added ipv6 and icmpv6 protocol lookups to getprotoent-family functions 1155570af302Sopenharmony_ci 1156570af302Sopenharmony_cinew experimental ports: 1157570af302Sopenharmony_ci- sh (SuperH) 1158570af302Sopenharmony_ci- x32 (ILP32 ABI for x86_64) 1159570af302Sopenharmony_ci 1160570af302Sopenharmony_cicompatibility: 1161570af302Sopenharmony_ci- improved c89 compiler support in math.h 1162570af302Sopenharmony_ci- eliminate some compiler warnings in public headers 1163570af302Sopenharmony_ci- added some missing things for LFS64 APIs 1164570af302Sopenharmony_ci- added fallback emulation of accept4 for older kernels 1165570af302Sopenharmony_ci 1166570af302Sopenharmony_cibugs fixed: 1167570af302Sopenharmony_ci- buffer overflow in printf when printing smallest denormal exactly 1168570af302Sopenharmony_ci- rounding errors in printf in some just-over-halfway cases 1169570af302Sopenharmony_ci- posix_spawn did not accept null pid pointer (crashed) 1170570af302Sopenharmony_ci- ftello gave incorrect result for unflushed append-mode streams 1171570af302Sopenharmony_ci- mishandling of n=0 case in wcsxfrm (wild buffer overrun) 1172570af302Sopenharmony_ci- possible system breakage during libc upgrade due to install.sh bugs 1173570af302Sopenharmony_ci- nftw FTW_MOUNT flag prevented walking any directories at all 1174570af302Sopenharmony_ci- ptsname/ptsname_r returned negated error codes 1175570af302Sopenharmony_ci- getprotoent function returned junk after listing valid protocols 1176570af302Sopenharmony_ci- wrong error code from readdir when the directory has been deleted 1177570af302Sopenharmony_ci- various prototype/argument-type fixes, mostly to legacy functions 1178570af302Sopenharmony_ci- various header namespace violations 1179570af302Sopenharmony_ci 1180570af302Sopenharmony_ciarch-specific bugs fixed: 1181570af302Sopenharmony_ci- fesetenv(FE_DFL_ENV) was broken on i386 and x86_64 1182570af302Sopenharmony_ci- strerror(EDQUOT) did not work on mips 1183570af302Sopenharmony_ci- recvmsg/sendmsg were broken on powerpc 1184570af302Sopenharmony_ci- sysv ipc was broken on powerpc and mips 1185570af302Sopenharmony_ci- statfs/statvfs were broken on mips 1186570af302Sopenharmony_ci- sigaltstack was broken on mips 1187570af302Sopenharmony_ci 1188570af302Sopenharmony_ci 1189570af302Sopenharmony_ci 1190570af302Sopenharmony_ci1.1.0 release notes 1191570af302Sopenharmony_ci 1192570af302Sopenharmony_cinew features: 1193570af302Sopenharmony_ci- relro memory protection in dynamic linker 1194570af302Sopenharmony_ci- malloc can now extend heap with mmap if brk fails 1195570af302Sopenharmony_ci- vdso clock_gettime/gettimeofday/time acceleration on x86_64 1196570af302Sopenharmony_ci- thread/library-safe versions of search.h functions (nonstandard) 1197570af302Sopenharmony_ci- getauxval function (nonstandard) 1198570af302Sopenharmony_ci- sysconf extensions to query physical memory size 1199570af302Sopenharmony_ci 1200570af302Sopenharmony_cibugs fixed: 1201570af302Sopenharmony_ci- floating point printf output corruption from carry into uninitialized slot 1202570af302Sopenharmony_ci- possible runaway carry overflow in printf floating point 1203570af302Sopenharmony_ci- printf %g failure to strip trailing zeros in some cases 1204570af302Sopenharmony_ci- search past end of haystack in memmem 1205570af302Sopenharmony_ci- off-by-one error in confstr return value 1206570af302Sopenharmony_ci- crashes in some near-empty static programs that use stack protector 1207570af302Sopenharmony_ci- deadlock race in pthread_once 1208570af302Sopenharmony_ci- non-working clock_gettime fallback for old kernels 1209570af302Sopenharmony_ci 1210570af302Sopenharmony_ciarch-specific bugs fixed: 1211570af302Sopenharmony_ci- crash from missing syscall asm register clobbers on real microblaze kernel 1212570af302Sopenharmony_ci- crash in all nontrivial dynamic linker use on microblaze 1213570af302Sopenharmony_ci- incorrect rlimit constants on mips 1214570af302Sopenharmony_ci- broken, possibly dangerous, use of getrlimit syscall on x32 in sysconf 1215570af302Sopenharmony_ci 1216570af302Sopenharmony_ci 1217570af302Sopenharmony_ci 1218570af302Sopenharmony_ci1.1.1 release notes 1219570af302Sopenharmony_ci 1220570af302Sopenharmony_cinew features: 1221570af302Sopenharmony_ci- new options --preload and --library-path to dynamic linker 1222570af302Sopenharmony_ci- public execvpe function (nonstandard extension) 1223570af302Sopenharmony_ci- iconv support for cp437 and cp850 1224570af302Sopenharmony_ci 1225570af302Sopenharmony_cibugs fixed: 1226570af302Sopenharmony_ci- false negatives with some periodic needles in strstr, wcsstr, and memmem 1227570af302Sopenharmony_ci- crash on invalid zoneinfo files 1228570af302Sopenharmony_ci- incorrect zero-padding of some outputs for strftime %s specifier 1229570af302Sopenharmony_ci- misreporting of errors in configure script when $CC does not work at all 1230570af302Sopenharmony_ci- treating not-yet-implemented strptime specifiers as errors 1231570af302Sopenharmony_ci 1232570af302Sopenharmony_cicompatibility: 1233570af302Sopenharmony_ci- configure now detects serious constant-folding bug in gcc 4.9.0 1234570af302Sopenharmony_ci- removed __yield symbol (unused) that clashed with some compilers 1235570af302Sopenharmony_ci- improvements to sysconf's handling of unsupported/invalid arguments 1236570af302Sopenharmony_ci 1237570af302Sopenharmony_ciarch-specific bugs fixed: 1238570af302Sopenharmony_ci- misdetection of superh ABI variant by configure on gcc 3.x 1239570af302Sopenharmony_ci- missing SO_RCVBUFFORCE and SO_SNDBUFFORCE in mips socket.h 1240570af302Sopenharmony_ci- build regression on armv6 and later with -mthumb 1241570af302Sopenharmony_ci 1242570af302Sopenharmony_ci 1243570af302Sopenharmony_ci 1244570af302Sopenharmony_ci1.1.2 release notes 1245570af302Sopenharmony_ci 1246570af302Sopenharmony_cinew features: 1247570af302Sopenharmony_ci- multi-protocol matches (tcp and udp) in getaddrinfo 1248570af302Sopenharmony_ci- support for AI_V4MAPPED and AI_ALL flags to getaddrinfo 1249570af302Sopenharmony_ci- reverse name lookups from /etc/hosts 1250570af302Sopenharmony_ci- reverse service lookups from /etc/services 1251570af302Sopenharmony_ci- support for service aliases in /etc/services 1252570af302Sopenharmony_ci- ipsec and tunneling protocols to getprotoent-family functions 1253570af302Sopenharmony_ci- res_send, res_mkquery, res_querydomain, and dn_comp functions 1254570af302Sopenharmony_ci- ipv6 scope id handling for link-local scope addresses 1255570af302Sopenharmony_ci- previously-unimplemented %C and %y in strptime now work 1256570af302Sopenharmony_ci- vdso clock_gettime acceleration on i386 (new kernel feature) 1257570af302Sopenharmony_ci- better O_CLOEXEC/SOCK_CLOEXEC fallbacks for old kernels 1258570af302Sopenharmony_ci 1259570af302Sopenharmony_cibugs fixed: 1260570af302Sopenharmony_ci- buffer overflow in dns response parsing (CVE-2014-3484) 1261570af302Sopenharmony_ci- possible infinite loop in dns response parsing 1262570af302Sopenharmony_ci- sendfile off_t 32/64-bit size mismatch 1263570af302Sopenharmony_ci- incorrect end pointer in some cases when wcsrtombs stops early 1264570af302Sopenharmony_ci- incorrect if_nametoindex return value when interface does not exist 1265570af302Sopenharmony_ci- dummy "ent" function aliases that possibly shadowed real ones 1266570af302Sopenharmony_ci- tmpfile fd leak on memory exhaustion 1267570af302Sopenharmony_ci- getaddrinfo returning EAI_NONAME for some transient failures 1268570af302Sopenharmony_ci 1269570af302Sopenharmony_ciarch-specific bugs fixed: 1270570af302Sopenharmony_ci- broken kernel side RLIM_INFINITY on mips 1271570af302Sopenharmony_ci- incorrect syscall argument 6/7 types for pselect on x32 1272570af302Sopenharmony_ci 1273570af302Sopenharmony_ci 1274570af302Sopenharmony_ci 1275570af302Sopenharmony_ci1.1.3 release notes 1276570af302Sopenharmony_ci 1277570af302Sopenharmony_cinew features: 1278570af302Sopenharmony_ci- address sorting in getaddrinfo, etc. modeled on rfc 3484/6724 1279570af302Sopenharmony_ci- default timezone taken from /etc/localtime when $TZ is unset 1280570af302Sopenharmony_ci- getopt double-colon extension for optional arguments 1281570af302Sopenharmony_ci- support for TLSDESC-based (gnu2) TLS dialect on i386 and x86_64 1282570af302Sopenharmony_ci- sendmmsg/recvmmsg (linux-specific) 1283570af302Sopenharmony_ci- fmtmsg (last mandatory XSI function that was missing) 1284570af302Sopenharmony_ci 1285570af302Sopenharmony_cicompatibility: 1286570af302Sopenharmony_ci- treat dns rcode=2 as temporary failure, not negative result 1287570af302Sopenharmony_ci- working thread-pointer for pre-2.6 kernels on i386 1288570af302Sopenharmony_ci- further ABI-compat symbols: __xmknod[at], __sysv_signal 1289570af302Sopenharmony_ci 1290570af302Sopenharmony_cibugs fixed: 1291570af302Sopenharmony_ci- memmem false positives/false negatives/crashes from invalid logic 1292570af302Sopenharmony_ci- gethostby*_r not setting result pointer to null on failure 1293570af302Sopenharmony_ci- aliasing violations in syscall.h SYSLOG_NAMES feature 1294570af302Sopenharmony_ci- fanotify_mark syscall arguments wrong 1295570af302Sopenharmony_ci 1296570af302Sopenharmony_ciarch-specific bugs fixed: 1297570af302Sopenharmony_ci- various subtle relocation bugs in powerpc and sh dynamic linker 1298570af302Sopenharmony_ci 1299570af302Sopenharmony_ci 1300570af302Sopenharmony_ci 1301570af302Sopenharmony_ci1.1.4 release notes 1302570af302Sopenharmony_ci 1303570af302Sopenharmony_cinew features: 1304570af302Sopenharmony_ci- experimental locale support for LC_MESSAGES and LC_TIME 1305570af302Sopenharmony_ci- non-stub gettext family functions for message translation 1306570af302Sopenharmony_ci- or1k (OpenRISC 1000) port 1307570af302Sopenharmony_ci- syslog options LOG_CONS and LOG_PERROR 1308570af302Sopenharmony_ci- issetugid function (from OpenBSD) 1309570af302Sopenharmony_ci- improved if_nameindex and getifaddrs functions 1310570af302Sopenharmony_ci 1311570af302Sopenharmony_cicompatibility: 1312570af302Sopenharmony_ci- work around bug #61144 in gcc 4.9.0 and 4.9.1 1313570af302Sopenharmony_ci- support getauxval(AT_SECURE) even on kernels without AT_SECURE 1314570af302Sopenharmony_ci 1315570af302Sopenharmony_cibugs fixed: 1316570af302Sopenharmony_ci- empty dynamic linker error messages (regression in 1.1.3) 1317570af302Sopenharmony_ci- if_nameindex omitted unconfigured and ipv6-only interfaces 1318570af302Sopenharmony_ci- incorrect return value for fwide function 1319570af302Sopenharmony_ci- failure of wide printf/scanf functions to set wide orientation 1320570af302Sopenharmony_ci- multiple issues in legacy function getpass 1321570af302Sopenharmony_ci- dynamic linker did not accept colon as a separator for LD_PRELOAD 1322570af302Sopenharmony_ci- errno clobber in syslog caused wrong output for %m specifier 1323570af302Sopenharmony_ci- crash in regexec for nonzero nmatch argument with REG_NOSUB 1324570af302Sopenharmony_ci- minor bugs in rarely-used nl_langinfo item lookups 1325570af302Sopenharmony_ci 1326570af302Sopenharmony_ciarch-specific bugs fixed: 1327570af302Sopenharmony_ci- broken relocations in mips dynamic linker (regression in 1.1.3) 1328570af302Sopenharmony_ci- register state corruption in setjmp asm for microblaze 1329570af302Sopenharmony_ci- broken struct stat st_ino field on microblaze 1330570af302Sopenharmony_ci- broken struct stat st_dev field on big endian mips 1331570af302Sopenharmony_ci- broken asm register constraints in atomics on powerpc 1332570af302Sopenharmony_ci- missing barriers in atomics on mips, powerpc, microblaze, and sh 1333570af302Sopenharmony_ci 1334570af302Sopenharmony_ci 1335570af302Sopenharmony_ci 1336570af302Sopenharmony_ci1.1.5 release notes 1337570af302Sopenharmony_ci 1338570af302Sopenharmony_cinew features: 1339570af302Sopenharmony_ci- full C11 coverage (threads, UTF-16/32 API, timespec_get, etc.) 1340570af302Sopenharmony_ci- malloc_usable_size function (nonstandard) 1341570af302Sopenharmony_ci- support for new F_OFD_* fcntl operations (linux 3.15, POSIX-future) 1342570af302Sopenharmony_ci- new _DEFAULT_SOURCE feature test macro to request default profile 1343570af302Sopenharmony_ci 1344570af302Sopenharmony_ciperformance: 1345570af302Sopenharmony_ci- private-futex support 1346570af302Sopenharmony_ci- redesigned cond var implementation with major performance improvement 1347570af302Sopenharmony_ci- tweaked spinning in userspace before performing futex waits 1348570af302Sopenharmony_ci 1349570af302Sopenharmony_cibugs fixed: 1350570af302Sopenharmony_ci- failure of dn_expand to null-terminate name for crafted DNS packets 1351570af302Sopenharmony_ci- corruption of cond var mutex state when switching mutexes 1352570af302Sopenharmony_ci- use of uninitialized memory with application-provided thread stacks 1353570af302Sopenharmony_ci- false ownership of orphaned mutexes due to tid reuse 1354570af302Sopenharmony_ci- possible failure-to-wake for robust mutexes on owner death 1355570af302Sopenharmony_ci- subtle errors in robust mutex unrecoverable status handling 1356570af302Sopenharmony_ci- missing memory/compiler barrier spinning to obtain locks 1357570af302Sopenharmony_ci- wrong behavior in various zero-length stdio operations 1358570af302Sopenharmony_ci- buffer overflow in swab with odd argument 1359570af302Sopenharmony_ci- incorrect sequence generation in the rand48 family of prng functions 1360570af302Sopenharmony_ci- missing cancellation check in non-wait paths of sem_wait, pthread_join 1361570af302Sopenharmony_ci- missing barrier in pthread_once fast path 1362570af302Sopenharmony_ci- memory leak in regexec when input contains illegal sequence 1363570af302Sopenharmony_ci- various parser bugs in regcomp 1364570af302Sopenharmony_ci- wrong return value on overflow in some strtoul-family functions 1365570af302Sopenharmony_ci- broken CPU_EQUAL macro in sched.h 1366570af302Sopenharmony_ci- dlerror not working in static-linked programs 1367570af302Sopenharmony_ci- mishandling of negative non-whole-hour TZ offsets 1368570af302Sopenharmony_ci- incorrect case mappings for U+00DF 1369570af302Sopenharmony_ci- namespace pollution via accidentally-non-static function named "dummy" 1370570af302Sopenharmony_ci- missing __fpclassifyl and __signbitl definitions for ld64 archs 1371570af302Sopenharmony_ci 1372570af302Sopenharmony_ci 1373570af302Sopenharmony_ci 1374570af302Sopenharmony_ci1.1.6 release notes 1375570af302Sopenharmony_ci 1376570af302Sopenharmony_cinew features: 1377570af302Sopenharmony_ci- getopt '-' flag for processing non-option arguments 1378570af302Sopenharmony_ci- getopt_long argument permutation extension 1379570af302Sopenharmony_ci- getopt_long abbreviated options 1380570af302Sopenharmony_ci- ns_parserr and related DNS-packet-parsing functions 1381570af302Sopenharmony_ci- fnmatch FNM_CASEFOLD extension 1382570af302Sopenharmony_ci- support for translation of getopt error messages 1383570af302Sopenharmony_ci- login_tty function (legacy) 1384570af302Sopenharmony_ci 1385570af302Sopenharmony_ciperformance: 1386570af302Sopenharmony_ci- efficient atomics on armv7+ targets 1387570af302Sopenharmony_ci- pthread_once shrink-wrapping of fast path 1388570af302Sopenharmony_ci 1389570af302Sopenharmony_cicompatibility: 1390570af302Sopenharmony_ci- baseline arm binaries now work on new cpus/kernels without kuser_helper 1391570af302Sopenharmony_ci- dynamic linker now honors DT_RUNPATH without DT_RPATH (new binutils) 1392570af302Sopenharmony_ci- arm asm is now compatible with clang's internal assembler 1393570af302Sopenharmony_ci- suppress macro implementations of functions when headers are used in C++ 1394570af302Sopenharmony_ci- increased message length limit for syslog 1395570af302Sopenharmony_ci 1396570af302Sopenharmony_cibugs fixed: 1397570af302Sopenharmony_ci- open ignored file creation mode argument for O_TMPFILE 1398570af302Sopenharmony_ci- wrong printf formatting for %#.0o with value zero 1399570af302Sopenharmony_ci- missing private state for uchar.h functions (null ps pointer) 1400570af302Sopenharmony_ci- sched_getaffinity left uninitialized data in output bit array 1401570af302Sopenharmony_ci- wrong return values for pthread_getaffinity_np and pthread_setaffinity_np 1402570af302Sopenharmony_ci- buggy handling of multibyte option chars with arguments in getopt 1403570af302Sopenharmony_ci- printf failed to report or stop on write errors 1404570af302Sopenharmony_ci- printf failed to honor '+' modifier when printing NANs 1405570af302Sopenharmony_ci- wcsnrtombs returned the wrong value in one code path 1406570af302Sopenharmony_ci- syslog failed to check for connect error 1407570af302Sopenharmony_ci- multi-threaded set*id() had spurious failures from ugly workaround code 1408570af302Sopenharmony_ci- various minor header conformance bugs (signedness, constant expressions, ...) 1409570af302Sopenharmony_ci 1410570af302Sopenharmony_ciarch-specific bugs fixed: 1411570af302Sopenharmony_ci- on or1k, some syscalls with 64-bit arguments were broken (misaligned) 1412570af302Sopenharmony_ci- usage of sahf instruction on x86_64 crashed on some early cpu models 1413570af302Sopenharmony_ci 1414570af302Sopenharmony_ci 1415570af302Sopenharmony_ci 1416570af302Sopenharmony_ci1.1.7 release notes 1417570af302Sopenharmony_ci 1418570af302Sopenharmony_cinew features: 1419570af302Sopenharmony_ci- alternate passwd/group backend support via nscd protocol 1420570af302Sopenharmony_ci- masked cancellation mode extension (experimental) 1421570af302Sopenharmony_ci- aio cancellation 1422570af302Sopenharmony_ci- aarch64 port (experimental) 1423570af302Sopenharmony_ci 1424570af302Sopenharmony_ciperformance: 1425570af302Sopenharmony_ci- significant memset asm optimizations on i386 and x86_64 1426570af302Sopenharmony_ci 1427570af302Sopenharmony_cicompatibility: 1428570af302Sopenharmony_ci- suppress EINTR in semaphores for old kernels where futex restart is broken 1429570af302Sopenharmony_ci- always set optarg in getopt_long 1430570af302Sopenharmony_ci- support SOCK_RAW socket type in getaddrinfo 1431570af302Sopenharmony_ci- report success instead of EINPROGRESS when close is interrupted 1432570af302Sopenharmony_ci 1433570af302Sopenharmony_cibugs fixed: 1434570af302Sopenharmony_ci- multithreaded set*id() was not async-signal safe, had various race bugs 1435570af302Sopenharmony_ci- getspnam_r returned results for partial username matches 1436570af302Sopenharmony_ci- wordexp bad character checker mis-counted parentheses 1437570af302Sopenharmony_ci- close on fd with pending aio could lead to file corruption 1438570af302Sopenharmony_ci- old aio implementation had numerous conformance bugs 1439570af302Sopenharmony_ci- malloc init code could deadlock due to race condition 1440570af302Sopenharmony_ci- pthread_exit did not disable cancellation 1441570af302Sopenharmony_ci- pthread_cond_wait could wrongly consume signal on cancellation 1442570af302Sopenharmony_ci- execvp wrongly stopped path search on EACCESS 1443570af302Sopenharmony_ci- fsync, fdatasync, and msync were not honored as cancellation points 1444570af302Sopenharmony_ci- fchmodat was subject to fd leak race (missing O_CLOEXEC) 1445570af302Sopenharmony_ci- fchmodat failed to report EOPNOTSUPP in race path 1446570af302Sopenharmony_ci- passwd/group lookup functions had various minor error-reporting bugs 1447570af302Sopenharmony_ci- isatty had false-positives/device-state-corruption for OSS sound devices 1448570af302Sopenharmony_ci- configure script failed to detect gcc with translated messages 1449570af302Sopenharmony_ci- FLT_ROUNDS macro failed to reflect rounding mode changes in fenv 1450570af302Sopenharmony_ci 1451570af302Sopenharmony_ciarch-specific bugs fixed: 1452570af302Sopenharmony_ci- mips fesetenv did not handle FE_DFL_ENV 1453570af302Sopenharmony_ci- mips POLLWRNORM and POLLWRBAND macros had wrong values 1454570af302Sopenharmony_ci- x32 pthread synchronization object type definitions were wrong 1455570af302Sopenharmony_ci- powerpc minimum signal stack size was insufficient 1456570af302Sopenharmony_ci 1457570af302Sopenharmony_ci 1458570af302Sopenharmony_ci 1459570af302Sopenharmony_ci1.1.8 release notes 1460570af302Sopenharmony_ci 1461570af302Sopenharmony_cibugs fixed: 1462570af302Sopenharmony_ci- stack-based buffer overflow in inet_pton (CVE-2015-1817) 1463570af302Sopenharmony_ci- regcomp crash/mem-corruption with illegal bytes after backslash 1464570af302Sopenharmony_ci- regcomp wrongly allowed backrefs in ER 1465570af302Sopenharmony_ci- regcomp miscompiled character class brace-repetitions 1466570af302Sopenharmony_ci- regcomp wrongly processed \0 as an unmatchable backref 1467570af302Sopenharmony_ci- new FLT_ROUNDS definition failed to work in C++ code 1468570af302Sopenharmony_ci 1469570af302Sopenharmony_ciarch-specific bugs fixed: 1470570af302Sopenharmony_ci- aarch64 was missing max_align_t definition 1471570af302Sopenharmony_ci 1472570af302Sopenharmony_ci 1473570af302Sopenharmony_ci 1474570af302Sopenharmony_ci1.1.9 release notes 1475570af302Sopenharmony_ci 1476570af302Sopenharmony_cinew features: 1477570af302Sopenharmony_ci- ability to protect libc code itself with stack protector 1478570af302Sopenharmony_ci- sigsetjmp now restores signal mask after restoring context, not before 1479570af302Sopenharmony_ci- thread-local dlerror status/messages 1480570af302Sopenharmony_ci- dlerror messages are no longer truncated 1481570af302Sopenharmony_ci- diagnostics for constraint violations with ctype.h macros 1482570af302Sopenharmony_ci 1483570af302Sopenharmony_cioptimizations: 1484570af302Sopenharmony_ci- reduce cost of PIC on archs where PLT calls need a fixed GOT register 1485570af302Sopenharmony_ci- spin locks no longer constantly invalidate cache lines while spinning 1486570af302Sopenharmony_ci- code size reduction in static-linked TLS init 1487570af302Sopenharmony_ci 1488570af302Sopenharmony_cibugs fixed: 1489570af302Sopenharmony_ci- failure to process robust mutexes on detached-thread exit 1490570af302Sopenharmony_ci- possible memory corruption due to robust mutex list on detached-thread exit 1491570af302Sopenharmony_ci- crash on memory exhaustion in getgr* internals 1492570af302Sopenharmony_ci- misaligned memory accesses in static binaries with low-alignment TLS blocks 1493570af302Sopenharmony_ci- multiple cases of wrongful path search continuation after transient failure 1494570af302Sopenharmony_ci- small memory leak on failure of dlopen with RPATH $ORIGIN 1495570af302Sopenharmony_ci- several small math bugs related to exception flags with non-finite args 1496570af302Sopenharmony_ci- mmap leak in sem_open failure path for link call 1497570af302Sopenharmony_ci- duplocale clobbered new locale struct with memcpy of old 1498570af302Sopenharmony_ci- futimes crashed with null timeval argument 1499570af302Sopenharmony_ci 1500570af302Sopenharmony_ciarch-specific bugs fixed: 1501570af302Sopenharmony_ci- stack protector spuriously aborted after forking on x32 1502570af302Sopenharmony_ci- stack protector spuriously aborted with flockfile on powerpc 1503570af302Sopenharmony_ci- theoretically-possible clobbering of syscall return value on mips 1504570af302Sopenharmony_ci- random thread-pointer setup failure on sh (uninitialized return value) 1505570af302Sopenharmony_ci- possible crash in dlsym on sh due to incorrectly-computed branch target 1506570af302Sopenharmony_ci- broken fesetenv(FE_DFL_ENV) on mips 1507570af302Sopenharmony_ci- dynamic linker name for sh ignored fpu/nofpu and endianness 1508570af302Sopenharmony_ci- various minor aarch64 bugs 1509570af302Sopenharmony_ci- dangling pointers in x32 syscall timespec fixup code 1510570af302Sopenharmony_ci 1511570af302Sopenharmony_ci 1512570af302Sopenharmony_ci 1513570af302Sopenharmony_ci1.1.10 release notes 1514570af302Sopenharmony_ci 1515570af302Sopenharmony_cinew features: 1516570af302Sopenharmony_ci- fail-safe (allocation-free) C locale for newlocale to return 1517570af302Sopenharmony_ci- all locale categories track requested locale name 1518570af302Sopenharmony_ci- rcrt1.o start file for static PIE 1519570af302Sopenharmony_ci 1520570af302Sopenharmony_cioptimizations: 1521570af302Sopenharmony_ci- inline atomics for sh4a 1522570af302Sopenharmony_ci- removed heavy atomics from locale-related code paths 1523570af302Sopenharmony_ci- removed global data accesses from CURRENT_LOCALE macro & callers 1524570af302Sopenharmony_ci- dynamic linker stage 1 size reduction 1525570af302Sopenharmony_ci 1526570af302Sopenharmony_cicompatibility: 1527570af302Sopenharmony_ci- better configure detection of unsupported compiler options 1528570af302Sopenharmony_ci- support for more relocation types in libc.so, not currently used 1529570af302Sopenharmony_ci- iconv_open accepts "" and "CHAR" as aliases for native (UTF-8) 1530570af302Sopenharmony_ci- additional LFS64 macros in sys/resource.h 1531570af302Sopenharmony_ci 1532570af302Sopenharmony_ciregressions fixed: 1533570af302Sopenharmony_ci- dynamic linker crash on NONE-type relocations (only mips affected) 1534570af302Sopenharmony_ci- inability to build as thumb2 on arm 1535570af302Sopenharmony_ci- failure to run under qemu-i386 user-level emulation 1536570af302Sopenharmony_ci- inability to access globals from libc on powerpc 1537570af302Sopenharmony_ci- PIE link errors in Scrt1.o under unusual usage on some archs 1538570af302Sopenharmony_ci 1539570af302Sopenharmony_ciother bugs fixed: 1540570af302Sopenharmony_ci- failure of ungetc/ungetwc to work on FILE streams in EOF state 1541570af302Sopenharmony_ci- possible null pointer dereference in gettext 1542570af302Sopenharmony_ci- possible initial stack misalignment on mips with PIE 1543570af302Sopenharmony_ci 1544570af302Sopenharmony_ci 1545570af302Sopenharmony_ci 1546570af302Sopenharmony_ci1.1.11 release notes 1547570af302Sopenharmony_ci 1548570af302Sopenharmony_cinew features: 1549570af302Sopenharmony_ci- byte-based C locale 1550570af302Sopenharmony_ci- vdso clock_gettime on arm 1551570af302Sopenharmony_ci- musl-clang wrapper 1552570af302Sopenharmony_ci- sh2 nommu target support 1553570af302Sopenharmony_ci 1554570af302Sopenharmony_ciperformance: 1555570af302Sopenharmony_ci- major speed-up for dynamic linker symbol lookups with GNU hash 1556570af302Sopenharmony_ci 1557570af302Sopenharmony_cicompatibility: 1558570af302Sopenharmony_ci- strverscmp now matches GNU behavior in corner cases 1559570af302Sopenharmony_ci- empty TZ environment variable gives GMT rather than system default 1560570af302Sopenharmony_ci- reconnection on syslog server socket loss (syslogd restart) 1561570af302Sopenharmony_ci- mmap fallback in simple_malloc when brk fails 1562570af302Sopenharmony_ci- support for %m and %s with null pointers in wide printf variants 1563570af302Sopenharmony_ci- call frame information in i386 asm for improved debugger support 1564570af302Sopenharmony_ci 1565570af302Sopenharmony_cibugs fixed: 1566570af302Sopenharmony_ci- spurious errors from pwd/grp functions when nscd backend is absent 1567570af302Sopenharmony_ci- possible invalid access on calloc with simple_malloc 1568570af302Sopenharmony_ci- null pointer dereferences after calling uselocale((locale_t)0) 1569570af302Sopenharmony_ci- erroneous support for cancellation in stdio caused data loss 1570570af302Sopenharmony_ci- inconsistent handling of atexit called from atexit handler 1571570af302Sopenharmony_ci- missing locking in error paths for ungetwc 1572570af302Sopenharmony_ci- btowc mishandling of out-of-range non-EOF inputs 1573570af302Sopenharmony_ci- negated return value of ns_skiprr, failure in related functions 1574570af302Sopenharmony_ci- incorrect void return type for syncfs, missing error status 1575570af302Sopenharmony_ci- possible failure of tempnam due to missing null termination 1576570af302Sopenharmony_ci- negated tm_gmtoff field in struct tm 1577570af302Sopenharmony_ci- off-by-one error in getsubopt leaving equals sign in value result 1578570af302Sopenharmony_ci 1579570af302Sopenharmony_ciarch-specific bugs fixed: 1580570af302Sopenharmony_ci- soft deadlocks on i386/x86_64 due to missing barrier in internal locks 1581570af302Sopenharmony_ci- regression in arm pre-v7 support for kernels with kuser helper removed 1582570af302Sopenharmony_ci- runaway PC on mips detached thread exit (due to kernel regression) 1583570af302Sopenharmony_ci- mismatched ABI for local-dynamic model TLS on mips and powerpc 1584570af302Sopenharmony_ci- incorrect value of some SO_* constants on mips 1585570af302Sopenharmony_ci- broken 64-bit syscall argument passing on aarch64 1586570af302Sopenharmony_ci 1587570af302Sopenharmony_ci 1588570af302Sopenharmony_ci 1589570af302Sopenharmony_ci1.1.12 release notes 1590570af302Sopenharmony_ci 1591570af302Sopenharmony_cinew features: 1592570af302Sopenharmony_ci- fdpic abi on sh2 for shareable text segment without mmu 1593570af302Sopenharmony_ci- general fdpic elf support in dynamic linker 1594570af302Sopenharmony_ci- CFI generation for x86_64 asm source files 1595570af302Sopenharmony_ci- protection against silently building a libc.so with missing symbols 1596570af302Sopenharmony_ci 1597570af302Sopenharmony_cicompatibility: 1598570af302Sopenharmony_ci- nl_langinfo(CODESET) now returns "ASCII" in byte-based C locale 1599570af302Sopenharmony_ci- fixed build regression due to buggy .SECONDARY in some GNU make versions 1600570af302Sopenharmony_ci- additional arm eabi functions needed by llvm arm backend 1601570af302Sopenharmony_ci- added format argument attributes to gettext function prototypes 1602570af302Sopenharmony_ci- static PIE no longer requires linking with -E/-rdynamic 1603570af302Sopenharmony_ci- eliminated spurious protected-data warnings linking against libc.so 1604570af302Sopenharmony_ci- avoided spurious fpu asm errors with some armhf toolchains 1605570af302Sopenharmony_ci 1606570af302Sopenharmony_cibugs fixed: 1607570af302Sopenharmony_ci- fclose of stdin/stdout caused deadlock at exit 1608570af302Sopenharmony_ci- missing memory barrier in pthread_join 1609570af302Sopenharmony_ci- open_[w]memstream produced no buffer when no writes took place 1610570af302Sopenharmony_ci- uninitialized scopeid in address lookups from hosts file and ip literals 1611570af302Sopenharmony_ci- ip literals for mismatching family (v4 vs v6) were queried as hostnames 1612570af302Sopenharmony_ci- possible crash on OOM in regcomp 1613570af302Sopenharmony_ci- incorrect contents in localeconv structure (-1 instead of CHAR_MAX) 1614570af302Sopenharmony_ci- strftime mishandling of out-of-range struct tm members 1615570af302Sopenharmony_ci- wrongful attribute((const)) on pthread_self and errno location function 1616570af302Sopenharmony_ci 1617570af302Sopenharmony_ciarch-specific bugs fixed: 1618570af302Sopenharmony_ci- arm crt1 entry point failed to align stack pointer in some cases 1619570af302Sopenharmony_ci- mips fesetround failed to actually set rounding mode 1620570af302Sopenharmony_ci- i386 asm source CFI generation had multiple bugs 1621570af302Sopenharmony_ci 1622570af302Sopenharmony_ci 1623570af302Sopenharmony_ci 1624570af302Sopenharmony_ci1.1.13 release notes 1625570af302Sopenharmony_ci 1626570af302Sopenharmony_cinew features: 1627570af302Sopenharmony_ci- out-of-tree builds 1628570af302Sopenharmony_ci- search domains in resolv.conf 1629570af302Sopenharmony_ci- sh arch supports j-core (j2) cas.l atomics 1630570af302Sopenharmony_ci- dynamic linker includes arch/abi in output when run as a command 1631570af302Sopenharmony_ci- header support for new kernel features through linux 4.4 1632570af302Sopenharmony_ci- mips vdso clock_gettime support 1633570af302Sopenharmony_ci- regex BRE extensions: \|, \+, \? 1634570af302Sopenharmony_ci 1635570af302Sopenharmony_ciperformance: 1636570af302Sopenharmony_ci- improved atomics performance on all archs with ll/sc model 1637570af302Sopenharmony_ci- atomic instructions are now inlined on armv6 1638570af302Sopenharmony_ci- use fpu sqrt for arm softfp abi on targets with vfp 1639570af302Sopenharmony_ci 1640570af302Sopenharmony_cicompatibility: 1641570af302Sopenharmony_ci- getnameinfo now accepts sockaddr sizes larger than needed 1642570af302Sopenharmony_ci- new default CFLAGS/LDFLAGS avoid entire classes of toolchain bugs 1643570af302Sopenharmony_ci- explicit use of float_t/double_t avoids compiler float spill bugs 1644570af302Sopenharmony_ci- i386 max_align_t definition now works with g++ 4.7's pseudo-c++11 1645570af302Sopenharmony_ci- all known protocols are added to protoent functions 1646570af302Sopenharmony_ci- stub utmpname, utmpxname functions 1647570af302Sopenharmony_ci- linker support for -Bsymbolic-functions is no longer mandatory 1648570af302Sopenharmony_ci- regex parsing size limits increased 1649570af302Sopenharmony_ci- malloc_usable_size now accepts null pointer input 1650570af302Sopenharmony_ci 1651570af302Sopenharmony_cibugs fixed: 1652570af302Sopenharmony_ci- potential single-byte heap overflow in getdelim 1653570af302Sopenharmony_ci- mishandling of transient failure opening hosts, services, resolv.conf 1654570af302Sopenharmony_ci- mremap was sometimes able to allocate objects larger than PTRDIFF_MAX 1655570af302Sopenharmony_ci- nl_langinfo wrongly returned NULL instead of "" for invalid items 1656570af302Sopenharmony_ci- out-of-bounds dynamic tls allocation due to pointer/index scaling error 1657570af302Sopenharmony_ci- getifaddrs misreported point-to-point interface addresses 1658570af302Sopenharmony_ci- tdelete left tsearch trees misbalanced 1659570af302Sopenharmony_ci- tsearch crashed on allocation failure 1660570af302Sopenharmony_ci- tsearch, tfind, and tdelete failed to handle null pointer input 1661570af302Sopenharmony_ci- passing signal number 0 to sigaction resulted in a crash 1662570af302Sopenharmony_ci- getdelim updated caller's size wrongly when realloc failed 1663570af302Sopenharmony_ci- getdelim realloc strategy was wasteful 1664570af302Sopenharmony_ci- if_nametoindex returned wrong value on failure 1665570af302Sopenharmony_ci- missing ssp-suppression for some source files called from early-init 1666570af302Sopenharmony_ci- various minor resolv.conf parsing bugs 1667570af302Sopenharmony_ci- fwrite wrongly reported success on write errors in line-buffered flush 1668570af302Sopenharmony_ci- fwrite and fread wrongly returned nmemb (not 0) when size was 0 1669570af302Sopenharmony_ci 1670570af302Sopenharmony_cinommu-specific bugs fix: 1671570af302Sopenharmony_ci- failure to zero bss in FDPIC shared library loader 1672570af302Sopenharmony_ci- unsafe writes to read-only file mapping in non-FDPIC library loader 1673570af302Sopenharmony_ci 1674570af302Sopenharmony_ciarch-specific bugs fixed: 1675570af302Sopenharmony_ci- sh[eb]-nofpu-fdpic was using fpu-dependent setjmp/longjmp variants 1676570af302Sopenharmony_ci- dynamic linker path file name was wrong for arm "softfp" targets 1677570af302Sopenharmony_ci- mips siginfo_t and related macros were defined incorrectly 1678570af302Sopenharmony_ci- possibly misaligned pointer globals on arm (from an asm source file) 1679570af302Sopenharmony_ci- mips dynamic linker failed to provide info needed by debugger 1680570af302Sopenharmony_ci- mips cancellation asm wrongly assumed validity of $gp register value 1681570af302Sopenharmony_ci 1682570af302Sopenharmony_ci 1683570af302Sopenharmony_ci 1684570af302Sopenharmony_ci1.1.14 release notes 1685570af302Sopenharmony_ci 1686570af302Sopenharmony_ciregressions fixed: 1687570af302Sopenharmony_ci- treatment of empty string argument as error by puts and fputs 1688570af302Sopenharmony_ci- make clean and distclean failure in unconfigured trees 1689570af302Sopenharmony_ci- sh/fdpic dynamic linker entry point hang due to wrong code 1690570af302Sopenharmony_ci- armhf (and arm softfp model) build failure with clang 1691570af302Sopenharmony_ci 1692570af302Sopenharmony_ciother bugs fixed: 1693570af302Sopenharmony_ci- wrongly clamping (rather than failing) excessive rounds in crypt-sha* 1694570af302Sopenharmony_ci 1695570af302Sopenharmony_ci 1696570af302Sopenharmony_ci 1697570af302Sopenharmony_ci1.1.15 release notes 1698570af302Sopenharmony_ci 1699570af302Sopenharmony_cinew features: 1700570af302Sopenharmony_ci- mips64 (full 64-bit and n32) port 1701570af302Sopenharmony_ci- mips r6 isa support (subarch for mips, mips64, and mipsn32 archs) 1702570af302Sopenharmony_ci- powerpc64 port 1703570af302Sopenharmony_ci- powerpc (32-bit) soft-float ABI support (subarch) 1704570af302Sopenharmony_ci- pthread_tryjoin_np and pthread_timedjoin_np (nonstandard extensions) 1705570af302Sopenharmony_ci- header-level support for linux 4.5 and 4.6 features 1706570af302Sopenharmony_ci- sched_getcpu (nonstandard extension) support, including vdso version 1707570af302Sopenharmony_ci- __STDC_ISO_10646__, __STDC_IEC_559__ macros predefined via stdc-predef.h 1708570af302Sopenharmony_ci- support for new elf/arch features in elf.h 1709570af302Sopenharmony_ci 1710570af302Sopenharmony_cicompatibility: 1711570af302Sopenharmony_ci- configure now correctly chooses cross-prefix based on build/host/target 1712570af302Sopenharmony_ci- abort now successfully terminates pid 1 in a container (or top-level) 1713570af302Sopenharmony_ci 1714570af302Sopenharmony_cibugs fixed: 1715570af302Sopenharmony_ci- memmem read past end of haystack, possible false positives or crashes 1716570af302Sopenharmony_ci- buffer underflow (reverse-overflow) in ungetwc 1717570af302Sopenharmony_ci- double-free under certain usage of putenv 1718570af302Sopenharmony_ci- incorrect treatment by regcomp of * at start of BRE subexpression 1719570af302Sopenharmony_ci- gethostbyname[2][_r] produced ip addresses in misaligned buffers 1720570af302Sopenharmony_ci- looking up some invalid hostnames caused malformed dns queries 1721570af302Sopenharmony_ci- lookups from hosts file were inconsistent with non-matching family 1722570af302Sopenharmony_ci- missing h_length value in gethostbyaddr results 1723570af302Sopenharmony_ci- a64l function produced wrong-signed results on 64-bit archs 1724570af302Sopenharmony_ci- broken padding of string formats to width in wide printf variants 1725570af302Sopenharmony_ci- wrong results for expf(-NAN) and exp2f(-NAN) 1726570af302Sopenharmony_ci- wrong value for RUSAGE_CHILDREN prevented it from working 1727570af302Sopenharmony_ci- abort failed to provide abnormal termination with SIGABRT blocked 1728570af302Sopenharmony_ci 1729570af302Sopenharmony_ciarch-specific bugs fixed: 1730570af302Sopenharmony_ci- broken posix_fadvise on arm and powerpc (32-bit) 1731570af302Sopenharmony_ci- thread structure/dtv corruption on powerpc at thread startup 1732570af302Sopenharmony_ci- various wrong mips and powerpc ioctl and termios constant values 1733570af302Sopenharmony_ci 1734570af302Sopenharmony_ci 1735570af302Sopenharmony_ci 1736570af302Sopenharmony_ci1.1.16 release notes 1737570af302Sopenharmony_ci 1738570af302Sopenharmony_cinew features: 1739570af302Sopenharmony_ci- s390x (64-bit S/390) port 1740570af302Sopenharmony_ci- pthread_setname_np extension function 1741570af302Sopenharmony_ci- limited pthread_setattr_default_np function to set stack size defaults 1742570af302Sopenharmony_ci- header-level support for linux 4.7, 4.8, and 4.9 features 1743570af302Sopenharmony_ci- confstr _CS_V6_ENV and _CS_V7_ENV items 1744570af302Sopenharmony_ci 1745570af302Sopenharmony_cicompatibility: 1746570af302Sopenharmony_ci- public prototypes for abi-compat *_unlocked symbols, etc. 1747570af302Sopenharmony_ci- fflush_unlocked(NULL) now works 1748570af302Sopenharmony_ci- resolv.h __RES version macro now matches supported APIs 1749570af302Sopenharmony_ci- workaround for gdb bugs backtracing across signals on x86_64 1750570af302Sopenharmony_ci- anchors ^ and $ are now accepted in BRE subexpressions 1751570af302Sopenharmony_ci- building for thumb2-only arm isa levels is now possible 1752570af302Sopenharmony_ci 1753570af302Sopenharmony_cibugs fixed: 1754570af302Sopenharmony_ci- integer overflows in regexec buffer allocation (CVE-2016-8859) 1755570af302Sopenharmony_ci- failure of regexec to report matches at offsets past INT_MAX 1756570af302Sopenharmony_ci- static-pie executables with initialized thread-local storage crashed 1757570af302Sopenharmony_ci- printf failed to catch EOVERFLOW in some cases, wrongly produced it in others 1758570af302Sopenharmony_ci- printf produced wrong output, result for float with precision near INT_MAX 1759570af302Sopenharmony_ci- printf produced wrong results with alt-form octal, zero flag, & field width 1760570af302Sopenharmony_ci- printf float rounding was wrong for some midpoint cases 1761570af302Sopenharmony_ci- swprintf printed junk after internal (256-byte) buffer filled up 1762570af302Sopenharmony_ci- strtod family rounded incorrectly in several corner cases 1763570af302Sopenharmony_ci- getmntent failed to handle long records 1764570af302Sopenharmony_ci- getopt_long_only wrongly treated "--" as an option 1765570af302Sopenharmony_ci- asctime output wrongly varied by locale 1766570af302Sopenharmony_ci- strftime %y specifier produced wrong output for negative tm_year 1767570af302Sopenharmony_ci- time zone names quoted with <> were misparsed 1768570af302Sopenharmony_ci- corner case integer overflow in tm_year for some date conversions 1769570af302Sopenharmony_ci- failure to load shared libs whose names were prefixes of standard lib names 1770570af302Sopenharmony_ci- wrong error codes for several failure cases in various functions 1771570af302Sopenharmony_ci- various asymptomatic undefined behavior 1772570af302Sopenharmony_ci- various minor namespace issues in headers 1773570af302Sopenharmony_ci 1774570af302Sopenharmony_ciarch-specific bugs fixed: 1775570af302Sopenharmony_ci- tcsetattr regression on mips (completely non-working) 1776570af302Sopenharmony_ci- wrong pread/pwrite syscall calling convention on sh 1777570af302Sopenharmony_ci- wrong preadv2/pwritev2 syscall numbers on x32 1778570af302Sopenharmony_ci- mrand48/jrand48 produced wrong-signedness results on 64-bit archs 1779570af302Sopenharmony_ci 1780570af302Sopenharmony_ci 1781570af302Sopenharmony_ci1.1.17 release notes 1782570af302Sopenharmony_ci 1783570af302Sopenharmony_cinew features: 1784570af302Sopenharmony_ci- RTLD_LAZY deferred symbol binding, functionally equivalent to lazy binding 1785570af302Sopenharmony_ci- safeguard against dlopen of multiple libc versions/instances 1786570af302Sopenharmony_ci- new posix_spawn flag POSIX_SPAWN_SETSID 1787570af302Sopenharmony_ci- posix_spawnattr_setflags now reports unknown flags as error 1788570af302Sopenharmony_ci- ldso option --argv0 to set argv[0] 1789570af302Sopenharmony_ci- added _NL_LOCALE_NAME extension to nl_langinfo 1790570af302Sopenharmony_ci 1791570af302Sopenharmony_cicompatibility: 1792570af302Sopenharmony_ci- dlopen local-to-global promotion no longer changes existing symbols 1793570af302Sopenharmony_ci- gettext now searches locale name variants for translation files 1794570af302Sopenharmony_ci- increased locale name length limit from 15 to 23 bytes 1795570af302Sopenharmony_ci- setlocale(LC_ALL, 0) returns single name if all categories are same 1796570af302Sopenharmony_ci- realloc no longer fails when mremap doesn't work 1797570af302Sopenharmony_ci- getservby* no longer treat numeric port strings as service records 1798570af302Sopenharmony_ci- mmap now works around incorrect EPERM error codes from kernel 1799570af302Sopenharmony_ci- impact of REG_* namespace pollution in x86[_64] signal.h is reduced 1800570af302Sopenharmony_ci- arm atomic asm now assembles correctly with new binutils 1801570af302Sopenharmony_ci- PAGE_SIZE on arm is no longer constant (quiet upstream ABI relaxation) 1802570af302Sopenharmony_ci- lsearch/lfind now pass args to compare callback in canonical order 1803570af302Sopenharmony_ci- STB_WEAK and STB_GNU_UNIQUE symbols now behave same as STB_GLOBAL 1804570af302Sopenharmony_ci- better clang CFLAGS checks in configure 1805570af302Sopenharmony_ci- global vis.h hack, which made lld refuse to link to libc.so, is disabled 1806570af302Sopenharmony_ci 1807570af302Sopenharmony_ciperformance: 1808570af302Sopenharmony_ci- single-instruction optimized math functions for aarch64, s390x, powerpc64 1809570af302Sopenharmony_ci- fast path for ASCII in towupper/towlower 1810570af302Sopenharmony_ci- new mostly-integer-math fma function 1811570af302Sopenharmony_ci 1812570af302Sopenharmony_cisemantic bugs fixed: 1813570af302Sopenharmony_ci- POSIX-format TZ dst time transitions were wrong for southern hemisphere 1814570af302Sopenharmony_ci- regex REG_NEWLINE semantics were wrong with negated brackets 1815570af302Sopenharmony_ci- various bugs in strptime %j, %p, %C formats 1816570af302Sopenharmony_ci- iconv mapped some characters to legacy 8bit encodings incorrectly 1817570af302Sopenharmony_ci- glob failed to match "/" 1818570af302Sopenharmony_ci- UTF-8 decoder accepted invalid f4 9x xx xx code sequences 1819570af302Sopenharmony_ci- scanf %% conversion failed to consume whitespace 1820570af302Sopenharmony_ci- glob with GLOB_PERIOD wrongly descended into . and .. 1821570af302Sopenharmony_ci- nftw gave incorrect base name offset when pathname ends in "/" 1822570af302Sopenharmony_ci- functional regression in resolv.conf attempts option 1823570af302Sopenharmony_ci- scalbn could produce wrong result due to double rounding in subnormal range 1824570af302Sopenharmony_ci- strftime %y format wrong with negative years 1825570af302Sopenharmony_ci- mbsnrtowcs and wcsnrtombs mishandled input limits 1826570af302Sopenharmony_ci- minor issues with error codes for various functions 1827570af302Sopenharmony_ci 1828570af302Sopenharmony_cisafety/consistency bugs fixed: 1829570af302Sopenharmony_ci- stack-based buffer overflow in dns response processing 1830570af302Sopenharmony_ci- invalid free in regexec on certain error paths 1831570af302Sopenharmony_ci- invalid free in globfree after failed glob 1832570af302Sopenharmony_ci- one-byte buffer overflow in legacy getpass function 1833570af302Sopenharmony_ci- failed dlopen corrupted thread-local storage module list 1834570af302Sopenharmony_ci- race in pthread_create with priority attributes could leave signals masked 1835570af302Sopenharmony_ci- multithreaded set*id() functions could induce spurious EINTRs 1836570af302Sopenharmony_ci- dl_iterate_phdr reported wrong base address in static PIE 1837570af302Sopenharmony_ci- fd leak and wrong cancellation state after dns socket failure 1838570af302Sopenharmony_ci- memory leaks and other issues in environment-modification functions 1839570af302Sopenharmony_ci- read-after-free race in pthread_detach 1840570af302Sopenharmony_ci- memmem performed single-byte over-read in short-needle code paths 1841570af302Sopenharmony_ci- read via uninitialized pointer in gettext core 1842570af302Sopenharmony_ci- bindtextdomain broke bindings for all other domains 1843570af302Sopenharmony_ci- various silent undefined behavior 1844570af302Sopenharmony_ci- getopt clobbered optopt on success 1845570af302Sopenharmony_ci 1846570af302Sopenharmony_ciarch-specific bugs fixed: 1847570af302Sopenharmony_ci- x32 dynamic TLS accesses crashed 1848570af302Sopenharmony_ci- s390x was missing dlsym entry point (needed for RTLD_NEXT) 1849570af302Sopenharmony_ci- powerpc64 ldso startup could crash depending on link order 1850570af302Sopenharmony_ci- powerpc64 setjmp/longjmp didn't properly save/restore TOC pointer 1851570af302Sopenharmony_ci- thumb2 setjmp/longjmp silently broke at ld-time with text not aligned 1852570af302Sopenharmony_ci- fchown was broken on archs without SYS_fchown syscall 1853570af302Sopenharmony_ci- fstatat was broken on mips64 1854570af302Sopenharmony_ci- various incorrect constants in powerpc64 and mips headers 1855570af302Sopenharmony_ci 1856570af302Sopenharmony_ci 1857570af302Sopenharmony_ci1.1.18 release notes 1858570af302Sopenharmony_ci 1859570af302Sopenharmony_ciregression fixes: 1860570af302Sopenharmony_ci- glob failed to match literal . and .. path components 1861570af302Sopenharmony_ci- build for armv4t ISA level was broken 1862570af302Sopenharmony_ci 1863570af302Sopenharmony_ciother bug fixes: 1864570af302Sopenharmony_ci- stack overflow in posix_spawnp with large PATH variable in environment 1865570af302Sopenharmony_ci 1866570af302Sopenharmony_ci 1867570af302Sopenharmony_ci1.1.19 release notes 1868570af302Sopenharmony_ci 1869570af302Sopenharmony_cinew features: 1870570af302Sopenharmony_ci- iconv framework for processing stateful encodings 1871570af302Sopenharmony_ci- iconv support for iso-2022-jp 1872570af302Sopenharmony_ci- iconv support for converting to legacy JIS-based Japanese encodings 1873570af302Sopenharmony_ci- iconv support for UTF-16/32 with BOM-determined endianness 1874570af302Sopenharmony_ci- iconv ibm1047 (ebcdic latin1-equivalent) support 1875570af302Sopenharmony_ci- iconv cp866 (dos cyrillic) support 1876570af302Sopenharmony_ci- character data tables & case mappings updated to Unicode 10.0 1877570af302Sopenharmony_ci- fopencookie stdio extension 1878570af302Sopenharmony_ci- strftime padding character extensions 1879570af302Sopenharmony_ci- header-level support for new linux features through 4.13 1880570af302Sopenharmony_ci 1881570af302Sopenharmony_cicompatibility: 1882570af302Sopenharmony_ci- UTC timezone is now called UTC instead of GMT 1883570af302Sopenharmony_ci- _DIRENT_HAVE_D_* macros in dirent.h 1884570af302Sopenharmony_ci- dladdr dli_fbase definition now matches other implementations 1885570af302Sopenharmony_ci- pthread_getattr_np now reports guard size 1886570af302Sopenharmony_ci- strftime '+' modifier better matches apparent intent of POSIX 1887570af302Sopenharmony_ci- getopt_long handles long option names containing '=' 1888570af302Sopenharmony_ci- better compatibility with linux uapi headers 1889570af302Sopenharmony_ci- workaround linux bug where getcwd can return non-absolute pathname 1890570af302Sopenharmony_ci- configure logic for finding compiler_rt with clang 1891570af302Sopenharmony_ci- execvp path search now continues after ENOTDIR components 1892570af302Sopenharmony_ci 1893570af302Sopenharmony_cibugs fixed: 1894570af302Sopenharmony_ci- fgetwc failed when character crossed buffer boundary 1895570af302Sopenharmony_ci- memory corruption after failing to dlopen a second libc 1896570af302Sopenharmony_ci- sysconf reported infinite rlimits incorrectly 1897570af302Sopenharmony_ci- getopt_long --opt=arg did not work with partial matches 1898570af302Sopenharmony_ci- printf was wrong for alt-form octal with value 0, no explicit precision 1899570af302Sopenharmony_ci- endian errors in arpa/nameser.h and netinet/icmp6.h (missing endian.h) 1900570af302Sopenharmony_ci- atfork handler could clobber fork's errno 1901570af302Sopenharmony_ci- iconv could wrongly output surrogate pairs in ucs2 1902570af302Sopenharmony_ci- fmemopen buffer underallocation with extreme size argument 1903570af302Sopenharmony_ci- getaddrinfo AI_NUMERICSERV wrong error code 1904570af302Sopenharmony_ci- data race in at_quick_exit 1905570af302Sopenharmony_ci- ldd failed to honor rpath $ORIGIN for program in . without "./" prefix 1906570af302Sopenharmony_ci 1907570af302Sopenharmony_ciarch-specfic bugs fixed: 1908570af302Sopenharmony_ci- x32 unistd.h wrongly reported LP64 instead of ILP32 1909570af302Sopenharmony_ci- aarch64 signal.h had wrong type for ucontext_t uc_link member 1910570af302Sopenharmony_ci 1911570af302Sopenharmony_ci 1912570af302Sopenharmony_ci1.1.20 release notes 1913570af302Sopenharmony_ci 1914570af302Sopenharmony_cinew features: 1915570af302Sopenharmony_ci- m68k port 1916570af302Sopenharmony_ci- replacement of malloc is now allowed/supported 1917570af302Sopenharmony_ci- setvbuf now accepts caller-provided buffers for stdio streams 1918570af302Sopenharmony_ci- getrandom syscall wrapper, getentropy function 1919570af302Sopenharmony_ci- mlock2 syscall wrapper 1920570af302Sopenharmony_ci- memfd_create syscall wrapper 1921570af302Sopenharmony_ci- explicit_bzero function 1922570af302Sopenharmony_ci- header-level support for new linux features through 4.17 1923570af302Sopenharmony_ci- wcsftime now supports padding specifier extensions 1924570af302Sopenharmony_ci- dynamic linker's reclaim_gaps now works on fdpic archs 1925570af302Sopenharmony_ci- getaddrinfo now honors AI_ADDRCONFIG 1926570af302Sopenharmony_ci- pthread_attr_init now honors pthread_setattr_default_np defaults 1927570af302Sopenharmony_ci 1928570af302Sopenharmony_cihardening: 1929570af302Sopenharmony_ci- prevent bypass of guarantee that suids start with fd 0/1/2 open 1930570af302Sopenharmony_ci- dlopen now rejects libraries with initial-exec refs to dynamic TLS 1931570af302Sopenharmony_ci 1932570af302Sopenharmony_cicompatibility: 1933570af302Sopenharmony_ci- elf.h: new flags, aux vector entry types, etc. 1934570af302Sopenharmony_ci- minor namespace issues in several headers 1935570af302Sopenharmony_ci- intNN_t types used in bitfields now safe against -funsigned-bitfields 1936570af302Sopenharmony_ci- complex arc trig/hyperbolic functions were badly broken 1937570af302Sopenharmony_ci- nice function returned wrong value 1938570af302Sopenharmony_ci- stdio locks no longer depend on read-after-free not faulting 1939570af302Sopenharmony_ci- avoid excessive stack usage in getcwd 1940570af302Sopenharmony_ci- inet_ntop no longer compresses single zeros in IPv6 (RFC 5952) 1941570af302Sopenharmony_ci- resolver routability probe for sorting results works on no-IPv6 systems 1942570af302Sopenharmony_ci- added missing ST_RELATIME definition to statvfs.h 1943570af302Sopenharmony_ci- uchar.h now works with old C++ profiles 1944570af302Sopenharmony_ci- added missing and arch-specific commands to ptrace.h 1945570af302Sopenharmony_ci- musl-gcc wrapper now works with default-pie host toolchains 1946570af302Sopenharmony_ci 1947570af302Sopenharmony_cibugs fixed: 1948570af302Sopenharmony_ci- getopt wrongly treating colons in optstring as valid option chars 1949570af302Sopenharmony_ci- nl_langinfo_l(CODESET, loc) reported wrong locale's value 1950570af302Sopenharmony_ci- out-of-tree build produced broken crt files with stack protector enabled 1951570af302Sopenharmony_ci- fmaf produced wrong result for some corner cases 1952570af302Sopenharmony_ci- out of bounds write for zero length buffer passed to gethostname 1953570af302Sopenharmony_ci- getopt_long_only wrongly prefix-matched long-options over short ones 1954570af302Sopenharmony_ci- pthread_kill wrongly returned ESRCH for exited by valid pthread_t's 1955570af302Sopenharmony_ci- iconv buffer overflow converting to legacy JIS-based encodings 1956570af302Sopenharmony_ci- iconv conversion to "UTF-32" (no explicit endianness) failed (regression) 1957570af302Sopenharmony_ci- iconv mishandled big5-hkscs characters that map to two unicode chars 1958570af302Sopenharmony_ci- dynamic linker didn't map/clear bss for libraries with single LOAD segment 1959570af302Sopenharmony_ci- resolver wrongly duplicated trailing dot from query into canonical name 1960570af302Sopenharmony_ci- some futex waits omitted timeout arg to syscall, thereby spun on EFAULT 1961570af302Sopenharmony_ci- dladdr mishandled addresses not matching symbols 1962570af302Sopenharmony_ci- alignment of dirent structures from readdir was broken (regression) 1963570af302Sopenharmony_ci- strftime %z output wrong sign for offsets <1 hour west of UTC 1964570af302Sopenharmony_ci- limits.h, pathconf erroneously defined SYMLINK_MAX 1965570af302Sopenharmony_ci- FP_ILOGB0 and FP_ILOGBNAN definitions were not valid for use in #if 1966570af302Sopenharmony_ci- getopt failed to update optarg and optind correctly on missing argument 1967570af302Sopenharmony_ci- EMULTIHOP error lacked strerror text 1968570af302Sopenharmony_ci- mktime malfunctioned with tm_isdst>0 but no-DST POSIX-format time zone 1969570af302Sopenharmony_ci- async thread self-cancellation produced a deadlock condition 1970570af302Sopenharmony_ci- pthread_barrierattr_setpshared failed to produce EINVAL for bad argument 1971570af302Sopenharmony_ci- fileno failed to produce EBADF for non-fd-associated FILEs 1972570af302Sopenharmony_ci- fmemopen's w+ mode failed to truncate buffer at open 1973570af302Sopenharmony_ci- open_[w]memstream did not bind stream orientation at open time 1974570af302Sopenharmony_ci- system wrongly returned 0x7f00 instead of -1 on error 1975570af302Sopenharmony_ci- wide printf functions ignored field width for %c formats 1976570af302Sopenharmony_ci- fprintf failed to set stream orientation for unbuffered stream or no output 1977570af302Sopenharmony_ci- psignal, psiginfo, and perror wrongly set stream orientation for stderr 1978570af302Sopenharmony_ci- psignal, psiginfo potentially clobbered errno on success 1979570af302Sopenharmony_ci 1980570af302Sopenharmony_ciarch-specfic bugs fixed: 1981570af302Sopenharmony_ci- on arm/aarch64/sh, local-exec TLS layout mismatched ABI with large align 1982570af302Sopenharmony_ci- on arm/microblaze/sh, struct ipc_perm mismatched (buggy) kernel ABI 1983570af302Sopenharmony_ci- SO_PEERSEC definition was wrong on mips 1984570af302Sopenharmony_ci- on mips, return from start function passed to clone crashed (runaway exec) 1985570af302Sopenharmony_ci- printf %a precision specifier malfunctioned except on ld80 archs 1986570af302Sopenharmony_ci- async thread cancellation crashed on powerpc64 and sh-fdpic 1987570af302Sopenharmony_ci 1988570af302Sopenharmony_ci 1989570af302Sopenharmony_ci1.1.21 release notes 1990570af302Sopenharmony_ci 1991570af302Sopenharmony_cinew features: 1992570af302Sopenharmony_ci- setting default thread stack size via PT_GNU_STACK program header 1993570af302Sopenharmony_ci- arm vfork implementation 1994570af302Sopenharmony_ci- arm tlsdesc/gnu2 tls dialect support 1995570af302Sopenharmony_ci- name_to_handle_at and name_to_handle_at syscall wrappers 1996570af302Sopenharmony_ci- header-level support for new linux features through 4.18 1997570af302Sopenharmony_ci 1998570af302Sopenharmony_cioptimizations: 1999570af302Sopenharmony_ci- glob rewrite with much better performance and stack usage properties 2000570af302Sopenharmony_ci- single-threaded and already-locked fast paths for getc/putc variants 2001570af302Sopenharmony_ci- single-instruction fma implementations for arm, s390x, powerpc, & x86_64 2002570af302Sopenharmony_ci- single-instruction fabs and sqrt implementations for powerpc 2003570af302Sopenharmony_ci- size and performance from making all internal-only functions/data hidden 2004570af302Sopenharmony_ci- made &errno and pthread_self results cachable again (attribute((const))) 2005570af302Sopenharmony_ci- significant speedup in strtod with short inputs 2006570af302Sopenharmony_ci- new tsearch AVL tree implementation, smaller and faster 2007570af302Sopenharmony_ci- special-cased nop calls to wmemmove 2008570af302Sopenharmony_ci- fixed erroneously suboptimal skip conditions in strstr and memmem 2009570af302Sopenharmony_ci 2010570af302Sopenharmony_cihardening: 2011570af302Sopenharmony_ci- default thread stack guard size increased from 4k to 8k 2012570af302Sopenharmony_ci 2013570af302Sopenharmony_cicompatibility: 2014570af302Sopenharmony_ci- default thread stack size increased from 80k to 128k 2015570af302Sopenharmony_ci- building for arm as thumb2 with clang internal assembler now works 2016570af302Sopenharmony_ci- aio threads could overflow stack on kernels that break MINSIGSTKSZ ABI 2017570af302Sopenharmony_ci- aio threads no longer call malloc (problematic with malloc replacement) 2018570af302Sopenharmony_ci- pthread_sigmask/sigprocmask now ignore an invalid how when not changing mask 2019570af302Sopenharmony_ci 2020570af302Sopenharmony_cibugs fixed: 2021570af302Sopenharmony_ci- soft deadlock regression in stdio FILE locks with >2 threads contending 2022570af302Sopenharmony_ci- deadlock and buffered data loss race in fclose 2023570af302Sopenharmony_ci- race condition leading to possible crash in dcngettext plural forms 2024570af302Sopenharmony_ci- glob failed to see past searchable-but-unreadable path components 2025570af302Sopenharmony_ci- getdelim wrongly realloc'd buffer that was already exactly right size 2026570af302Sopenharmony_ci- getdelim failed to set stream orientation on early error 2027570af302Sopenharmony_ci- ttyname[_r] reported wrong error when given bad fd 2028570af302Sopenharmony_ci- pthread_key_delete left old tsd values exposed if slot was reused 2029570af302Sopenharmony_ci- freeaddrinfo failed to support freeing sublists 2030570af302Sopenharmony_ci- access to optopt was broken by copy relocations 2031570af302Sopenharmony_ci- memccpy returned wrong result if first byte past buffer end matched 2032570af302Sopenharmony_ci- wordexp read past end of input string ending in backslash 2033570af302Sopenharmony_ci- sem_wait and sem_timedwait were wrongly not interruptible by signals 2034570af302Sopenharmony_ci- getspnam[_r] wrongly treated not-found as an error 2035570af302Sopenharmony_ci 2036570af302Sopenharmony_ciarch-specfic bugs fixed: 2037570af302Sopenharmony_ci- soft deadlocks (missing futex wake) on powerpc locking 2038570af302Sopenharmony_ci- dlsym returned wrong address for thread-local symbols on ppc/mips/m68k 2039570af302Sopenharmony_ci 2040570af302Sopenharmony_ci 2041570af302Sopenharmony_ci1.1.22 release notes 2042570af302Sopenharmony_ci 2043570af302Sopenharmony_cinew features: 2044570af302Sopenharmony_ci- priority-inheritance mutexes 2045570af302Sopenharmony_ci- membarrier syscall, pre-registration to use it, fallback emulation 2046570af302Sopenharmony_ci- header-level support for new linux features in 4.19, 4.20, 5.0 2047570af302Sopenharmony_ci 2048570af302Sopenharmony_cimajor internal changes: 2049570af302Sopenharmony_ci- complete, async-safe view of all existent threads as global list 2050570af302Sopenharmony_ci- robust __synccall based on new thread list 2051570af302Sopenharmony_ci- new dynamic TLS is installed synchronously at dlopen 2052570af302Sopenharmony_ci- TLSDESC resolver functions no longer make bad ABI assumptions to call C 2053570af302Sopenharmony_ci- resolved shared library dependencies are now recorded 2054570af302Sopenharmony_ci 2055570af302Sopenharmony_cicompatibility & conformance: 2056570af302Sopenharmony_ci- dependency-order shared library constructor execution 2057570af302Sopenharmony_ci- sigaltstack no longer rejects SS_AUTODISARM, future flags 2058570af302Sopenharmony_ci- FILE is now a complete (dummy) type in pre-C11 feature profiles 2059570af302Sopenharmony_ci- setvbuf reports failure on invalid arguments 2060570af302Sopenharmony_ci- TSVTX is exposed unconditionally in tar.h 2061570af302Sopenharmony_ci- multithreaded set*id() no longer depends on /proc 2062570af302Sopenharmony_ci- key slot reuse after pthread_key_delete no longer depends on /proc 2063570af302Sopenharmony_ci 2064570af302Sopenharmony_cibugs fixed: 2065570af302Sopenharmony_ci- failures in multithreaded set*id() with concurrent thread creation/exit 2066570af302Sopenharmony_ci- interposed free was called from invalid/inconsistent contexts 2067570af302Sopenharmony_ci- freeaddrinfo performed invalid free of some partial results lists 2068570af302Sopenharmony_ci- dlsym dependency order search had false negatives and false positives 2069570af302Sopenharmony_ci- dn_skipname gave wrong results for labels with 8-bit content 2070570af302Sopenharmony_ci- dcngettext clobbered errno, often breaking printing of error messages 2071570af302Sopenharmony_ci- sscanf read past end of buffer under certain conditions (1.1.21 regression) 2072570af302Sopenharmony_ci- pthread_key_create spuriously failed under race condition (1.1.21 regression) 2073570af302Sopenharmony_ci- fdopendir wrongly succeeded with O_PATH file descriptors 2074570af302Sopenharmony_ci- gets behaved incorrectly in presence of null bytes 2075570af302Sopenharmony_ci- namespace violations in c11 tsd and mutex function dependencies 2076570af302Sopenharmony_ci- incorrect prototype for makecontext (unimplemented) 2077570af302Sopenharmony_ci 2078570af302Sopenharmony_ciarch-specfic bugs fixed: 2079570af302Sopenharmony_ci- s390x had wrong values for POSIX_FADV_DONTNEED/_NOREUSE 2080570af302Sopenharmony_ci 2081570af302Sopenharmony_ci 2082570af302Sopenharmony_ci 2083570af302Sopenharmony_ci1.1.23 release notes 2084570af302Sopenharmony_ci 2085570af302Sopenharmony_cinew features: 2086570af302Sopenharmony_ci- riscv64 port 2087570af302Sopenharmony_ci- configure now allows customizing AR and RANLIB vars 2088570af302Sopenharmony_ci- header-level support for new linux features in 5.1 2089570af302Sopenharmony_ci 2090570af302Sopenharmony_cimajor internal changes: 2091570af302Sopenharmony_ci- removed extern __syscall; syscall header code is now fully self-contained 2092570af302Sopenharmony_ci 2093570af302Sopenharmony_ciperformance: 2094570af302Sopenharmony_ci- new math library implementation for log/exp/pow 2095570af302Sopenharmony_ci- aarch64 dynamic tlsdesc function is streamlined 2096570af302Sopenharmony_ci 2097570af302Sopenharmony_cicompatibility & conformance: 2098570af302Sopenharmony_ci- O_TTY_INIT is now defined 2099570af302Sopenharmony_ci- sys/types.h no longer pollutes namespace with sys/sysmacros.h in any profile 2100570af302Sopenharmony_ci- powerpc asm is now compatible with clang internal assembler 2101570af302Sopenharmony_ci 2102570af302Sopenharmony_cichanges for new POSIX interpretations: 2103570af302Sopenharmony_ci- fgetwc now sets stream error indicator on encoding errors 2104570af302Sopenharmony_ci- fmemopen no longer rejects 0 size 2105570af302Sopenharmony_ci 2106570af302Sopenharmony_cibugs fixed: 2107570af302Sopenharmony_ci- static TLS for shared libraries was allocated wrong on "Variant I" archs 2108570af302Sopenharmony_ci- crash in dladdr reading through uninitialized pointer on non-match 2109570af302Sopenharmony_ci- sigaltstack wrongly errored out on invalid ss_size when doing SS_DISABLE 2110570af302Sopenharmony_ci- getdents function misbehaved with buffer length larger than INT_MAX 2111570af302Sopenharmony_ci- set*id could deadlock after fork from multithreaded process 2112570af302Sopenharmony_ci 2113570af302Sopenharmony_ciarch-specfic bugs fixed: 2114570af302Sopenharmony_ci- s390x SO_PEERSEC definition was wrong 2115570af302Sopenharmony_ci- passing of 64-bit syscall arguments was broken on microblaze 2116570af302Sopenharmony_ci- posix_fadvise was broken on mips due to missing 7-arg syscall support 2117570af302Sopenharmony_ci- vrregset_t layout and member naming was wrong on powerpc64 2118570af302Sopenharmony_ci 2119570af302Sopenharmony_ci 2120570af302Sopenharmony_ci 2121570af302Sopenharmony_ci1.1.24 release notes 2122570af302Sopenharmony_ci 2123570af302Sopenharmony_cinew features: 2124570af302Sopenharmony_ci- GLOB_TILDE extension to glob 2125570af302Sopenharmony_ci- non-stub catgets localization API, using netbsd binary catalog format 2126570af302Sopenharmony_ci- posix_spawn file actions for [f]chdir (extension, pending future standard) 2127570af302Sopenharmony_ci- secure_getenv function (extension) 2128570af302Sopenharmony_ci- copy_file_range syscall wrapper (Linux extension) 2129570af302Sopenharmony_ci- header-level support for new linux features in 5.2 2130570af302Sopenharmony_ci 2131570af302Sopenharmony_ciperformance: 2132570af302Sopenharmony_ci- new fast path for lrint (generic C version) on 32-bit archs 2133570af302Sopenharmony_ci 2134570af302Sopenharmony_cimajor internal changes: 2135570af302Sopenharmony_ci- functions involving time are overhauled to be time64-ready in 32-bit archs 2136570af302Sopenharmony_ci- x32 uses the new time64 code paths to replace nasty hacks in syscall glue 2137570af302Sopenharmony_ci 2138570af302Sopenharmony_cicompatibility & conformance: 2139570af302Sopenharmony_ci- support for powerpc[64] unaligned relocation types 2140570af302Sopenharmony_ci- powerpc[64] and sh sys/user.h no longer clash with kernel asm/ptrace.h 2141570af302Sopenharmony_ci- select no longer modifies timeout on failure (or at all) 2142570af302Sopenharmony_ci- mips64 stat results are no longer limited to 32-bit time range 2143570af302Sopenharmony_ci- optreset (BSD extension) now has a public declaration 2144570af302Sopenharmony_ci- support for clang inconsistencies in wchar_t type vs some 32-bit archs 2145570af302Sopenharmony_ci- mips r6 syscall asm no longer has invalid lo/hi register clobbers 2146570af302Sopenharmony_ci- vestigial asm declarations of __tls_get_new are removed (broke some tooling) 2147570af302Sopenharmony_ci- riscv64 mcontext_t mismatch glibc's member naming is corrected 2148570af302Sopenharmony_ci 2149570af302Sopenharmony_cibugs fixed: 2150570af302Sopenharmony_ci- glob failed to match broken symlinks consistently 2151570af302Sopenharmony_ci- invalid use of interposed calloc to allocate initial TLS 2152570af302Sopenharmony_ci- various dlsym symbol resolution logic errors 2153570af302Sopenharmony_ci- semctl with SEM_STAT_ANY didn't work 2154570af302Sopenharmony_ci- pthread_create with explicit scheduling was subject to priority inversion 2155570af302Sopenharmony_ci- pthread_create failure path had data race for thread count 2156570af302Sopenharmony_ci- timer_create with SIGEV_THREAD notification had data race getting timer id 2157570af302Sopenharmony_ci- wide printf family failed to support l modifier for float formats 2158570af302Sopenharmony_ci 2159570af302Sopenharmony_ciarch-specific bugs fixed: 2160570af302Sopenharmony_ci- x87 floating point stack imbalance in math asm (i386-only CVE-2019-14697) 2161570af302Sopenharmony_ci- x32 clock_adjtime, getrusage, wait3, wait4 produced junk (struct mismatches) 2162570af302Sopenharmony_ci- lseek broken on x32 and mipsn32 with large file offsets 2163570af302Sopenharmony_ci- riscv64 atomics weren't compiler barriers 2164570af302Sopenharmony_ci- riscv64 atomics had broken asm constraints (missing earlyclobber flag) 2165570af302Sopenharmony_ci- arm clone() was broken when compiled as thumb if start function returned 2166570af302Sopenharmony_ci- mipsr6 setjmp/longjmp did not preserve fpu register state correctly 2167570af302Sopenharmony_ci 2168570af302Sopenharmony_ci 2169570af302Sopenharmony_ci 2170570af302Sopenharmony_ci1.2.0 release notes 2171570af302Sopenharmony_ci 2172570af302Sopenharmony_cinew features: 2173570af302Sopenharmony_ci- time_t is now 64-bit on all archs (not just 64-bit archs) 2174570af302Sopenharmony_ci- character type & case mapping data updated to Unicode 12.1.0 2175570af302Sopenharmony_ci- header-level support for new linux features in 5.3 and 5.4 2176570af302Sopenharmony_ci 2177570af302Sopenharmony_ciperformance: 2178570af302Sopenharmony_ci- new O(1) wchar_t case mapping implementation 2179570af302Sopenharmony_ci- i386 now uses C math code for exp, faster than old asm 2180570af302Sopenharmony_ci- mips math asm 2181570af302Sopenharmony_ci 2182570af302Sopenharmony_cicompatibility & conformance: 2183570af302Sopenharmony_ci- endian.h now aims to conform to future POSIX definition 2184570af302Sopenharmony_ci- support older compilers that don't accept powerpc math asm constraints 2185570af302Sopenharmony_ci- fdpic code in ldso was incompatible with valid optimizations in gcc 9+ 2186570af302Sopenharmony_ci- RLIMIT_RTTIME was missing from sys/resource.h 2187570af302Sopenharmony_ci 2188570af302Sopenharmony_cibugs fixed: 2189570af302Sopenharmony_ci- wcwidth wrongly returned 0 for most of planes 4 and up 2190570af302Sopenharmony_ci- missing case mapping between U+03F3 and U+037F 2191570af302Sopenharmony_ci- wrong cacosh results for arguments with negative imaginary part 2192570af302Sopenharmony_ci- wrong catanf/catanl results for various classes of arguments 2193570af302Sopenharmony_ci- wrong return value for ungetc with argument outside [0,UCHAR_MAX] 2194570af302Sopenharmony_ci- posix_openpt with no ptys available produced wrong errno 2195570af302Sopenharmony_ci 2196570af302Sopenharmony_ciarch-specific bugs fixed: 2197570af302Sopenharmony_ci- sigcontext/regset definition mistakes & omissions on m68k, powerpc64 2198570af302Sopenharmony_ci- fesetenv(FE_DFL_ENV) crashed on riscv64 2199570af302Sopenharmony_ci- sh2 dynamic linker was broken since 1.1.21 (crash in stage 2b) 2200570af302Sopenharmony_ci- arm dynamic linker chose wrong tls/atomic variants since 1.1.21 2201570af302Sopenharmony_ci- some math library functions returned excess precision on i386 2202570af302Sopenharmony_ci- unconfirmed regression in fchmodat AT_SYMLINK_NOFOLLOW on mips* 2203570af302Sopenharmony_ci 2204570af302Sopenharmony_ci 2205570af302Sopenharmony_ci 2206570af302Sopenharmony_ci1.2.1 release notes 2207570af302Sopenharmony_ci 2208570af302Sopenharmony_cimajor changes: 2209570af302Sopenharmony_ci- new malloc implementation (mallocng & overhauled bump allocator) 2210570af302Sopenharmony_ci 2211570af302Sopenharmony_cinew features: 2212570af302Sopenharmony_ci- DNS queries via res_* now set AD flag, report zone signedness (DNSSEC) 2213570af302Sopenharmony_ci- PTHREAD_NULL macro (POSIX-future) 2214570af302Sopenharmony_ci 2215570af302Sopenharmony_ciperformance: 2216570af302Sopenharmony_ci- optimized memcpy and memset for aarch64 2217570af302Sopenharmony_ci- optimized memcpy for arm now supports big endian 2218570af302Sopenharmony_ci- optimized x86_64 remquol 2219570af302Sopenharmony_ci- improved strerror without linear search 2220570af302Sopenharmony_ci 2221570af302Sopenharmony_cibugs fixed: 2222570af302Sopenharmony_ci- lock-skipping for processes that returned to single-threaded was wrong 2223570af302Sopenharmony_ci- AF_UNSPEC dns lookups mishandled single failure in paired A+AAAA 2224570af302Sopenharmony_ci- res_send and res_query returned wrong value on errors from nameserver 2225570af302Sopenharmony_ci- corrupted sysvipc timestamps on 32-bit archs with old kernels 2226570af302Sopenharmony_ci- incorrect parsing of timezone offsets after overly-long zone name 2227570af302Sopenharmony_ci- clock_adjtime was broken on 32-bit archs (time64) 2228570af302Sopenharmony_ci- pthread_kill as not async-signal-safe 2229570af302Sopenharmony_ci- pthread_cancel was not async-cancel-safe 2230570af302Sopenharmony_ci- large-ulp errors in various math functions in non-default rounding modes 2231570af302Sopenharmony_ci 2232570af302Sopenharmony_ciarch-specific bugs fixed: 2233570af302Sopenharmony_ci- arm clock_gettime was broken on some hw due to bad time64 vdso 2234570af302Sopenharmony_ci- m68k sqrtl lacked long double precision 2235570af302Sopenharmony_ci- mips* syscall mechanism regressions on older kernels 2236570af302Sopenharmony_ci- mips* had negated error codes for some syscalls (kernel bug) 2237570af302Sopenharmony_ci- mips* SIGEMT was wrongly called SIGSTKFLT 2238570af302Sopenharmony_ci- sh fesetround didn't work correctly on sh 2239570af302Sopenharmony_ci 2240570af302Sopenharmony_ci 2241570af302Sopenharmony_ci 2242570af302Sopenharmony_ci1.2.2 release notes 2243570af302Sopenharmony_ci 2244570af302Sopenharmony_cimajor changes: 2245570af302Sopenharmony_ci- child restrictions lifted after fork of multithreaded parent 2246570af302Sopenharmony_ci 2247570af302Sopenharmony_cinew features: 2248570af302Sopenharmony_ci- _Fork function (POSIX-future) 2249570af302Sopenharmony_ci- reallocarray function (extension from OpenBSD, now widespread) 2250570af302Sopenharmony_ci- gettid function (kernel tid as supported concept) 2251570af302Sopenharmony_ci- SIGEV_THREAD_ID sigevent API (Linux extension) 2252570af302Sopenharmony_ci- tcgetwinsize and tcsetwinsize functions (POSIX-future) 2253570af302Sopenharmony_ci 2254570af302Sopenharmony_ciperformance: 2255570af302Sopenharmony_ci- faster software sqrt on archs without native sqrt instruction 2256570af302Sopenharmony_ci 2257570af302Sopenharmony_cicompatibility: 2258570af302Sopenharmony_ci- realpath no longer depends on procfs availability & accuracy 2259570af302Sopenharmony_ci- time zone parser now always prefers 64-bit tables if present 2260570af302Sopenharmony_ci- crypt_blowfish now supports $2b$ prefix 2261570af302Sopenharmony_ci- res_query now reports errors via h_errno 2262570af302Sopenharmony_ci- set*id and setrlimit are now safe in vforked/cloned child 2263570af302Sopenharmony_ci- setgroups now applies to all threads 2264570af302Sopenharmony_ci- dlopen debugger notification is improved, should work with lldb 2265570af302Sopenharmony_ci- setrlimit no longer needs __synccall broadcast on linux 2.6.36+ 2266570af302Sopenharmony_ci- faccessat with AT_EACCESS no longer needs child process on linux 5.8+ 2267570af302Sopenharmony_ci 2268570af302Sopenharmony_cibugs fixed: 2269570af302Sopenharmony_ci- buffer overflow and infinite loop errors in wcsnrtombs (CVE-2020-28928) 2270570af302Sopenharmony_ci- sem_close unmapped still-referenced semaphores 2271570af302Sopenharmony_ci- fork of process with active aio could deadlock or crash paren 2272570af302Sopenharmony_ci- pthread_cond_wait was broken with priority-inheritance mutex 2273570af302Sopenharmony_ci- getgrouplist wrongly failed when nscd reported an empty list 2274570af302Sopenharmony_ci- abort could leak modified SIGABRT disposition to fork or posix_spawn child 2275570af302Sopenharmony_ci- regression with mallocng: malloc_usable_size(0) crashed 2276570af302Sopenharmony_ci- readlink wrongly gave EINVAL on zero length dest buffer 2277570af302Sopenharmony_ci- sqrtl was severely inaccurate (not correctly rounded) on ldquad archs 2278570af302Sopenharmony_ci- assert failure wrongly flushed stdio (possible deadlock) 2279570af302Sopenharmony_ci- MUSL_LOCPATH search was broken with multiple components 2280570af302Sopenharmony_ci- missing newline in herror output 2281570af302Sopenharmony_ci- possible deadlock in pthread_exit with pshared mutex or barrier usage 2282570af302Sopenharmony_ci- pthread_mutexattr_getprotocol didn't read back protocol 2283570af302Sopenharmony_ci- v4l2 ioctl translation for pre-time64 kernels didn't work 2284570af302Sopenharmony_ci 2285570af302Sopenharmony_ciarch-specific bugs fixed: 2286570af302Sopenharmony_ci- x86_64 longjmp failed to handle 0 argument reliably 2287570af302Sopenharmony_ci- i386 __set_thread_area fallback for pre-2.6 kernels didn't work 2288570af302Sopenharmony_ci- missing O_LARGEFILE macro value on x86_64, x32, mips64 2289570af302Sopenharmony_ci- unpredictable s390x breakage from failure to preserve call-saved registers 2290570af302Sopenharmony_ci 2291570af302Sopenharmony_ci 2292570af302Sopenharmony_ci 2293570af302Sopenharmony_ci1.2.3 release notes 2294570af302Sopenharmony_ci 2295570af302Sopenharmony_cinew features: 2296570af302Sopenharmony_ci- qsort_r function (POSIX-future) 2297570af302Sopenharmony_ci- pthread_getname_np extension function 2298570af302Sopenharmony_ci- hard float on SPE FPU for powerpc-sf 2299570af302Sopenharmony_ci- SEEK_DATA and SEEK_HOLE exposed in unistd.h (Linux extensions) 2300570af302Sopenharmony_ci 2301570af302Sopenharmony_cicompatibility: 2302570af302Sopenharmony_ci- free now preserves errno (POSIX-future requirement) 2303570af302Sopenharmony_ci- setjmp is declared explicitly with returns_twice for non-GCC compilers 2304570af302Sopenharmony_ci- macro version of isascii is no longer defined for C++ 2305570af302Sopenharmony_ci- dynamic linker now tolerates zero-length LOAD segments 2306570af302Sopenharmony_ci- epoll_[p]wait is now a cancellation point 2307570af302Sopenharmony_ci- pwd/grp functions no longer fail on systems without AF_UNIX support 2308570af302Sopenharmony_ci- POSIX TZ parsing is stricter to allow more names to fallback to files 2309570af302Sopenharmony_ci- NULL is now defined as nullptr when used in C++11 or later 2310570af302Sopenharmony_ci- gettext now accepts null pointer as argument 2311570af302Sopenharmony_ci 2312570af302Sopenharmony_cibugs fixed: 2313570af302Sopenharmony_ci- old regression in wcwidth of Hangul combining (vowel/final) letters 2314570af302Sopenharmony_ci- duplocale used wrong malloc when malloc was replaced (1.2.2 regression) 2315570af302Sopenharmony_ci- fmaf rounded wrong on archs without FE_TOWARDZERO (all softfloat archs) 2316570af302Sopenharmony_ci- popen didn't honor requirement not to leak other popen pipe fds to child 2317570af302Sopenharmony_ci- aligned_alloc and variants crashed on allocation failure 2318570af302Sopenharmony_ci- dl_iterate_phdr reported incorrect module TLS pointers 2319570af302Sopenharmony_ci- mishandling of some inputs in acoshf and expm1f and functions using them 2320570af302Sopenharmony_ci- potentially wrong-sign zero in cproj functions at infinity 2321570af302Sopenharmony_ci- multiple bugs in legacy function cuserid 2322570af302Sopenharmony_ci- minor posix_spawn file actions API conformance issues 2323570af302Sopenharmony_ci- pthread_setname_np fd leak 2324570af302Sopenharmony_ci- out-of-bound read in zoneinfo handling with distant-past times 2325570af302Sopenharmony_ci- out-of-tree builds lacked generated debug cfi for x86 asm 2326570af302Sopenharmony_ci 2327570af302Sopenharmony_ciarch-specific bugs fixed: 2328570af302Sopenharmony_ci- powerpc (32-bit) struct shmid_ds layout was wrong for some fields 2329570af302Sopenharmony_ci- time64 struct layout was wrong in sound ioctl fallback (32-bit archs) 2330570af302Sopenharmony_ci 2331570af302Sopenharmony_ci 2332570af302Sopenharmony_ci 2333570af302Sopenharmony_ci1.2.4 release notes 2334570af302Sopenharmony_ci 2335570af302Sopenharmony_cinew features: 2336570af302Sopenharmony_ci- large dns record lookups via tcp fallback 2337570af302Sopenharmony_ci- new getaddrinfo EAI_NODATA result to distinguish NODATA/NxDomain 2338570af302Sopenharmony_ci- support for new RELR compressed format for relative relocations 2339570af302Sopenharmony_ci- sysconf keys for querying signal stack size requirements 2340570af302Sopenharmony_ci- real vfork on riscv64 2341570af302Sopenharmony_ci 2342570af302Sopenharmony_ciperformance: 2343570af302Sopenharmony_ci- mallocng no longer uses MADV_FREE (high performance cost, little gain) 2344570af302Sopenharmony_ci- vdso clock_gettime is supported once again on 32-bit arm 2345570af302Sopenharmony_ci 2346570af302Sopenharmony_cicompatibility: 2347570af302Sopenharmony_ci- gethostbyname family now distinguishes NO_DATA from HOST_NOT_FOUND 2348570af302Sopenharmony_ci- res_send now works with caller-provided edns0 queries 2349570af302Sopenharmony_ci- arpa/nameser.h RR types list is now up-to-date 2350570af302Sopenharmony_ci- previously-missing POSIX confstr keys have been added 2351570af302Sopenharmony_ci- mntent interfaces now accept missing fields 2352570af302Sopenharmony_ci- alt signal stack, if any, is now used for internal signals 2353570af302Sopenharmony_ci- the LFS64 macros are no longer exposed without _LARGEFILE64_SOURCE 2354570af302Sopenharmony_ci- memmem (POSIX-future) is now exposed in default feature profile 2355570af302Sopenharmony_ci- pthread_atfork now admits calls from an application-provided malloc 2356570af302Sopenharmony_ci- debugger tracking of shared libraries now works on MIPS PIE binaries 2357570af302Sopenharmony_ci- sendmsg now supports up to SCM_MAX_FD fds in SCM_RIGHTS messages 2358570af302Sopenharmony_ci 2359570af302Sopenharmony_cibugs fixed: 2360570af302Sopenharmony_ci- gethostbyname[2]_r wrongly returned nonzero (error) on negative result 2361570af302Sopenharmony_ci- parallel v4/v6 address queries could fail on query id collisions 2362570af302Sopenharmony_ci- spurious getaddrinfo/AI_ADDRCONFIG failures due to errno clobbering 2363570af302Sopenharmony_ci- dns search domains ending in dot (including lone dot) broke lookups 2364570af302Sopenharmony_ci- ipv6 servers in resolv.conf broke lookups on systems with v6 disabled 2365570af302Sopenharmony_ci- systems with bindv6only failed to query both v4 and v6 nameservers 2366570af302Sopenharmony_ci- res_mkquery mishandled consecutive final dots in name 2367570af302Sopenharmony_ci- res_send could malfunction for very small answer buffer sizes 2368570af302Sopenharmony_ci- resolver dns backend accepted answers with wrong (A vs AAAA) RR type 2369570af302Sopenharmony_ci- getservbyport_r returned junk or ENOENT (vs ERANGE) on buffer size errors 2370570af302Sopenharmony_ci- dns result parsing of malformed responses could process uninitialized data 2371570af302Sopenharmony_ci- freopen didn't reset stream orientation (byte/wide) & encoding rule 2372570af302Sopenharmony_ci- fwprintf didn't print most fields on open_wmemstream FILEs 2373570af302Sopenharmony_ci- wide printf %lc ignored field width 2374570af302Sopenharmony_ci- wide printf erroneously processed %n after encoding errors 2375570af302Sopenharmony_ci- use of wide printf %9$ argument slot overflowed undersized buffer 2376570af302Sopenharmony_ci- swprintf malfunctioned on nul character in output 2377570af302Sopenharmony_ci- strverscmp ordered digit sequences vs nondigits incorrectly 2378570af302Sopenharmony_ci- timer_create/SIGEV_THREAD failure leaked the thread 2379570af302Sopenharmony_ci- semaphores were subject to missed-wake under certain usage patterns 2380570af302Sopenharmony_ci- several possible rare deadlocks with lock handling at thread exit 2381570af302Sopenharmony_ci- several possible rare deadlocks with aio and multithreaded fork 2382570af302Sopenharmony_ci- dynamic linker relro processing was broken on archs w/variable pagesize 2383570af302Sopenharmony_ci- async cancellation could run cancellation handlers in invalid context 2384570af302Sopenharmony_ci- pthread_detach was wrongly a cancellation point in rare race code path 2385570af302Sopenharmony_ci- use-after-close/double-close errors in mq_notify error paths 2386570af302Sopenharmony_ci- mq_notify event thread wrongly ran with signals unmasked 2387570af302Sopenharmony_ci- wcs{,n}cmp, wmemcmp returned wrong results when difference overflowed 2388570af302Sopenharmony_ci- accept4, pipe2, and dup3 handled unknown flags wrong in fallback cases 2389570af302Sopenharmony_ci- CPU_SETSIZE macro had wrong unit 2390570af302Sopenharmony_ci- select fallback for pre-time64 kernels truncated timeout (vs clamping) 2391570af302Sopenharmony_ci 2392570af302Sopenharmony_ciarch-specific bugs fixed: 2393570af302Sopenharmony_ci- x32 new socketcalls took fallback path due to pointer sign extension 2394570af302Sopenharmony_ci- x32 wait4 didn't fill rusage structure (time64 regression) 2395570af302Sopenharmony_ci- x32 semtimedop mismatched timespec ABI with kernel (time64 regression) 2396570af302Sopenharmony_ci- sigaction signal mask was bogus on or1k, microblaze, mips, and riscv 2397570af302Sopenharmony_ci- powerpc-sf longjmp asm clobbered value argument 2398570af302Sopenharmony_ci- or1k poll function passed timeout to syscall in wrong form 2399570af302Sopenharmony_ci 2400570af302Sopenharmony_ci 2401570af302Sopenharmony_ci 2402570af302Sopenharmony_ci1.2.5 release notes 2403570af302Sopenharmony_ci 2404570af302Sopenharmony_cinew features: 2405570af302Sopenharmony_ci- statx function (linux extension; via syscall and fallback using fstatat) 2406570af302Sopenharmony_ci- clone function is now usable and gives _Fork-like consistency in child 2407570af302Sopenharmony_ci- statvfs now provides f_type result 2408570af302Sopenharmony_ci- preadv2 and pwritev2 (linux extension) syscall wrappers 2409570af302Sopenharmony_ci- riscv64 TLSDESC support 2410570af302Sopenharmony_ci 2411570af302Sopenharmony_cinew ports: 2412570af302Sopenharmony_ci- loongarch64 2413570af302Sopenharmony_ci- riscv32 2414570af302Sopenharmony_ci 2415570af302Sopenharmony_cicompatibility: 2416570af302Sopenharmony_ci- DNS resolver can now handle answers with long CNAME chains 2417570af302Sopenharmony_ci- string.h no longer provides (C23-incompat) non-prototype decl of basename 2418570af302Sopenharmony_ci- fstatat statx backend now matches stat syscall non-automounting behavior 2419570af302Sopenharmony_ci- mntent interfaces now handle escaped whitespace in paths/options 2420570af302Sopenharmony_ci 2421570af302Sopenharmony_cistandards updates: 2422570af302Sopenharmony_ci- printf %lc of nul wchar now produces output 2423570af302Sopenharmony_ci- snprintf and swprintf no longer fail on n > INT_MAX 2424570af302Sopenharmony_ci- ppoll is now exposed in default feature profile 2425570af302Sopenharmony_ci 2426570af302Sopenharmony_cibugs fixed: 2427570af302Sopenharmony_ci- some long DNS answers were wrongly rejected despite new TCP support 2428570af302Sopenharmony_ci- glob could wrongly return GLOB_NOMATCH if aborted before any matches 2429570af302Sopenharmony_ci- multithreaded set*id could malfunction from thread sequencing logic bug 2430570af302Sopenharmony_ci- certain use of threads after fork could deadlock thread-list lock 2431570af302Sopenharmony_ci- posix_spawn child could deadlock in race with async parent death 2432570af302Sopenharmony_ci- mbrtowc return value was wrong if argument n exceeded UINT_MAX 2433570af302Sopenharmony_ci- 80-bit extended acoshl and powl got some corner cases wrong 2434570af302Sopenharmony_ci- syslog incorrectly generated localized timestamps 2435570af302Sopenharmony_ci 2436570af302Sopenharmony_ciarch-specific bugs fixed: 2437570af302Sopenharmony_ci- arm (32-bit) TLSDESC malfunctioned due to addends being processed wrong 2438570af302Sopenharmony_ci- riscv64 icache flush operation was non-functional 2439570af302Sopenharmony_ci- sh sigsetjmp failed to properly restore call-saved register r8 on return 2440570af302Sopenharmony_ci- sh dlsym RTLD_NEXT did not identify calling module correctly 2441