xref: /third_party/musl/WHATSNEW (revision 570af302)
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