Changes for 4.5.0 snapshot
[newlib-cygwin.git] / newlib / NEWS
blobce4391367b5d6c6aed58cc5b7ad531420f2c9d51
1 *** Major changes in newlib version 4.5.0:
3 - major clean-up of libgloss build including merging a number of platforms
4   into top-level Makefile (moxie, v850, i960, msp430, frv, i386, ...) and
5   removal of dead platforms such as xc16x
6 - strverscmp fixed for comparison of digit sequence with non-digits
7 - proper locking added from amdgcn
8 - numerous improvements to arc support including support of 16-entry 
9   register file
10 - long double complex functions are now skipped if long double != double
11 - support for POSIX.1-2024 added to features.h
12 - arc64: port added for Synopsys Designware ARCv3 ISA
13 - sys/xtensa removed and replaced by machine/xtensa and libgloss
14 - fixes to powf
15 - fixes for building with gcc-15
17 *** Major changes in newlib version 4.4.0:
19 - long double support for i386, aarch64, and x86_64 added from FreeBSD
20 - RISC-V Zfinx/Zdinx extension support
21 - wildcard support added to allow arbitrary include dirs to be specified for a platform
22 - Xtensa port added
23 - printf family helper functions split out into separate files to save space when linking
24 - wide-oriented I/O fixes including proper split of byte and wide-oriented stdio functions
25 - support added for RISC-V long double math
26 - fixes for c99/gcc-14 warnings treated as errors in multiple platforms
28 *** Major changes in newlib version 4.3.0:
31 - remove i?86-pc-linux-gnu support
32 - remove decstation & sunos support
33 - remove phoenix OS support
34 - remove unused members from struct _reent (see also --enable-newlib-reent-binary-compat)
35 - build system internals heavily rewritten & updated
36 - make arm jmp_buf size and alignment ABI-conformant
37 - fixed bug in arm setjmp/longjmp to preserve floating-point register values
38 - add --enable-newlib-reent-thread-local configuration option
39 - add --enable-newlib-reent-binary-compat configuration option
40 - add 64-bit powerpc setjmp/longjmp support
41 - use global stdio streams for all configurations
42 - use global atexit data for all configurations
43 - vectorized math routines added for amdgcn platform
44 - nvptx: remove newlib ELIX level 1 restriction
46 *** Major changes in newlib version 4.2.0:
48 - remove use of --cygnus option for automake
49 - rename configure.in files to configure.ac
50 - enable automake silent rules
51 - import gdtoa from OpenBSD
52 - update to Unicode 14.0
53 - ignore _FORTIFY_SOURCE when building newlib
54 - fixes to ldtoa
55 - add clock support to nvptx port
56 - various pthread POSIX APIs added
57 - added implementatio for sig2str/str2sig
58 - strtod/strtof to set errno to ERANGE consistently for underflow
59 - fixed rounding issue with sqrt/sqrtf
60 - fixed heap fragmentation issue with nano-malloc
61 - FTW port for newlib
62 - additions to sys/tree.h
64 *** Major changes in newlib version 4.1.0:
66 - fixes for regressions to pow/powf and tgamma functions
67 - RISC-V semihosting support
68 - RISC-V and arm patches
70 *** Major changes in newlib version 4.0.0:
72 - additional out-of-bounds checking for malloc/nano-malloc family
73 - various fixes to makedocbook for python 3.8
74 - multiple standard/accuracy fixes to libm math routines
75 - C-SKY port
76 - support for Armv8-R aarch64 added
77 - move of __tzrules_struct from time.h to internal header
78 - math additions/improvements for RISC-V and arm
79 - all arm code converted to use unified syntax for Thumb1
80 - fenv support added for multiple platforms
81 - hard float support for PowerPC taken from FreeBSD
82 - advertising clause removed from BSD licenses
83 - various other fixes
85 *** Major changes in newlib version 3.2.0:
87 - memmem performance improvement
88 - nanf() and HUGE_VALF now used in libm float routines to reduce size
89 - new reduced "tiny" code size printf and puts support
90 - errno setting enhanced in libm routines
91 - new --enable-newlib-reent-check-verify configure option to verify reent memory
92 - <fenv.h> support added
93 - <sys/time.h> and <sys/_timespec.h> synced with FreeBSD
94 - timeval macros moved to <sys/time.h>
95 - newlib wide char conversion functions updated to Unicode 11.0
96 - new msp430-elfbare target support
97 - AMD GCN port
98 - PRU port
99 - nbdm port
100 - various standard improvements
102 *** Major changes in newlib version 3.1.0:
104 - global stdio streams support added for reent small
105 - _CLOCKID_T made system configurable
106 - generated Unicode 10.0 width data, case conversion data,
107   character category data
108 - Unicode table generation scripts fixed/enhanced
109 - performance enhancements for qsort, strstr
110 - nvptx port added
111 - sinf/cosf/sincosf/exp/exp2/log/log2/pow rewritten for performance and accuracy
112 - various gcc warnings fixed
113 - various standard improvements
116 *** Major changes in newlib version 3.0.0:
118 - K&R support removed in code and docs
119 - 64-bit time_t support
120 - riscv platform support added
121 - new expf, exp2f, logf, and powf implementations
122 - unification of lock object names
123 - locking routine retargetting at link time
124 - new long double complex math routines
125 - various ARM optimizations
126 - various POSIX/BSD additions
127 - further feature test macros overhaul
129 *** Major changes in newlib version 2.5.0:
131 - memory.h added
132 - some header file reorganization
133 - doc fixes
134 - ctype rewrite
135 - added per-locale string functions
136 - additional feature test macro overhaul
138 *** Major changes in newlib version 2.4.0:
140 - feature test macro overhaul
141 - new string functions (e.g. timingsafe_bcmp)
142 - new stdlib functions (e.g. arc4random)
143 - simplified versioning macros for newlib
144 - Changelog files deprecated
146 *** Major changes in newlib version 2.3.0:
148 - dynamic atexit logic fixed
149 - various arm performance enhancements
150 - new version of strtold
151 - doc improvements
152 - arc platform support redone
153 - strftime improvements/enhancements
154 - imported logic from FreeBSD
155 - locking fixes
156 - complex math enhancements
157 - visium platform support added
158 - or1k platform support added
160 *** Major changes in newlib version 2.2.0:
162 - multiple functional/performance enhancements for arm/aarch64
163 - new nano formatted I/O support
164 - replacement of or16/or32 with or1k platform
165 - qsort_r support
166 - additional long double math routines
167 - ito/utoa/ltoa
168 - restructuring of gmtime/localtime so tz functions only linked by localtime
169 - unlocked I/O functions
170 - various warning clean-ups
172 *** Major changes in newlib version 2.1.0:
174 - multibyte decimal point support added to
175   scanf family
176 - multiple changes for FreeBSD compatibility
177 - multiple RTEMS changes for Linux compatibility
178 - addition of restrict keyword
179 - nano-malloc support added
180 - global atexit support added
181 - new nds32 platform support
182 - new msp430 platform support
183 - new nios2 platform support
184 - lite exit support
185 - updated arm support (aarch64)
186 - newlib ported to x86_64-pc-cygwin
188 *** Major changes in newlib version 2.0.0:
190 - addition of aarch64 platform support
191 - addition of epiphany platform support
192 - addition of 'm' printf conversion specifier
193 - memrchr function added
194 - removal of many compiler warnings
195 - removal of enable-newlib-fp-hw option and
196   deprecation of mathfp directory
197 - type of offset in file structure changed from int to off_t
198 - new optimized arm math routines
199 - various bug fixes
201 *** Major changes in newlib version 1.20.0:
203 * I/O lock clean-up
204 * fixes to strftime/strptime
205 * fixes to arm support
206 * new NO_INCLUDE_LIST configuration support
207 * rl78 platform support contributed
208 * sparc-leon platform support contributed
209 * cvs-to-git mirroring of newlib
210 * various bug fixes
212 *** Major changes in newlib version 1.19.0:
214 * complex math functions
215 * locale support extended to maintain wide char values of native strings
216 * eXtensible Data Record (XDR) support for Cygwin
217 * wide char functions updated to Unicode 5.2
218 * additional locale charsets
219 * POSIX standard adherence improvements
220 * tic6x platform support contributed
221 * cr16 platform support contributed
222 * various bug fixes
224 *** Major changes in newlib version 1.18.0:
226 * wide-char enhancements
227 * long double math routines added for platforms where LDBL == DBL
228 * long long math routines added
229 * math cleanup
230 * UTF-16 modifications for Cygwin
231 * major locale charset overhaul including added charsets
232 * added moxie platform
233 * added rx platform
234 * added xc16x platform
235 * various cleanups
236 * various bug fixes
238 *** Major changes in newlib version 1.17.0:
240 * new C99 wide-char function additions
241 * lm32 platform support contributed
242 * movement of regex functions from sys/linux directory into
243   shared libc/posix directory
244 * string function optimizations
245 * redesign of formatted I/O to reduce dependencies when using
246   sprintf/sscanf family of functions
247 * numerous warning cleanups
248 * documentation fixes to support pdf, info, ps formats and
249   eclipse libhover hover docs
250 * various bug fixes
252 *** Major changes in newlib version 1.16.0:
254 * mep-elf support contributed
255 * x86_64 support added
256 * reentrant I/O clean-up
257 * various new C functions added from C99, POSIX, SUSV, etc..
258 * switch to use top-level libtool
259 * spu floating-point environment and stdio enhancement
260 * fastmath support
261 * various bug fixes
263 *** Major changes in newlib version 1.15.0:
265 * new platforms added (bfin, spu, fido)
266 * merge of csl branch changes (e.g. m68k)
267 * additional C99 support (printf modifiers, strtod, isnan/isinf)
268 * new configuration option to turn off dynamic allocation for atexit
269 * reentrancy added for read / write functions
270 * Cygwin fixes (e.g. POSIX read file flush behavior)
271 * switch to autoconf 2.5.9
272 * use of aclocal/automake 1.9.6
273 * various bug fixes and doc cleanups
275 *** Major changes in newlib version 1.14.0:
277 * new platforms added (cris, mt, m32c)
278 * more locking protection macros added
279 * various C99/POSIX/SUSV3 compliance issue improvements
280 * reentrancy cleanup
281 * header file improvements (e.g. adding RTEMS stdint.h/inttypes.h)
282 * various math fixes
283 * changes made to allow use of gcc4 to build newlib
284 * general bug fixes and cleanups
286 *** Major changes in newlib version 1.13.0:
288 * optimized iconv support
289 * new configuration option to disable syscalls in newlib (e.g. sys/arm)
290 * new configuration options controlling long long, long double support
291 * ability of configuration options to override platform defaults
292 * improved locking protection for file I/O functions
293 * new reentrant functions
294 * various fixes to allow building under FC3 and Debian Linux
295 * cxa exit support
296 * new platforms (e.g. crx)
297 * new iprintf and iscanf family functions
299 *** Major changes in newlib version 1.12.0:
301 * general iconv support added
302 * major cleanup with linux header files regarding warnings
303 * thread-safety and reentrancy fixes
304 * additional wide character C99 functions
305 * addition of %lc, %ls, %S, and %C printf format specifiers
306 * doc cleanup
308 *** Major changes in newlib version 1.11.0:
310 * enhanced EL/IX support for i[3456]86-pc-linux 
311 * new --enable-newlib-elix-level configuration option
312 * positional arg I/O support for printf family (--enable-newlib-io-pos-args)
313 * support for the Fujitsu FRV architecture added by Red Hat
314 * support for Motorola Altivec and SPE added by Red Hat
315 * new small reentrancy structure support
316 * dynamic reentrancy structure support
318 *** Major changes in newlib version 1.10.0:
320 * libtool support for i[3456]86-pc-linux native builds
321 * addition of libm/machine/i386 directory, for i386 fast math routines
323 *** Major changes in newlib version 1.9.0:
325 * i[3456]86-pc-linux support
327 * Long Double I/O support via the WANT_IO_LONG_DBL flag
329 * addition of reentrant environment functions
331 * addition of xscale and AVR platforms
333 * severe reduction in the number of warnings issued
335 * consolidation of many RTEMS features into shared headers
337 *** Major changes in newlib version 1.8.2:
339 * RTEMS features and fixes from Joel Sherrill.
341 * More work on reentrant routines.
343 * Floating point math library check, --enable-newlib-hw-fp.
345 *** Major changes in newlib version 1.8.1:
347 * Added check for --enable-newlib-mb configure option which defines the
348   MB_CAPABLE macro.  Multibyte support for JIS, SJIS, and EUC-JP implemented.
350 * Reduced code size for libm modules.
352 * Replaced the BSD malloc with Doug Lea's malloc.
354 *** Major changes in newlib version 1.8.0:
356 * Added simulated signal handling functions _raise_r, _signal_r, raise, and
357   signal except for sparc-sun-sunos*, i[3456]86-*-sco*, and a29k-*-* systems,
358   which already provide access to signal.  The signal functionality provided
359   does not interact with hardware generated signals.
360     
361 * Added reentrant function rand_r from POSIX.1c.
363 * Removed _asctime, _next, _scanpoint, and _signgam fields from struct
364   _reent.  These are no longer necessary since there are now functions
365   that explictly support multiple threads (asctime_r, ctime_r, gamma_r,
366   gmtime_r, lgamma_r, localtime_r, rand_r, & strtok_r).
369 *** Major changes in newlib version 1.7.0:
371 * Cross compiler target libraries are now built in a subdir of the top level
372   build directory.
374   Old way: build
375                 /newlib
376                        /m68020
377                               /m68881
378   New way:
379            build
380                 /m68k-coff
381                           /m68020
382                                  /m68881
384   where m68020 and m68881 are multilib subdirectories
386 * m68k targets support --disable options to avoid building unwanted versions
387   of the libraries.
389   --disable-softfloat - don't build libc, libg++, etc. for -msoft-float
390   --disable-m68881    - don't build libc, libg++, etc. for -m68881
391   --disable-m68000    - don't build libc, libg++, etc. for -m68000
392   --disable-m68020    - don't build libc, libg++, etc. for -m68020
394   These options have *no* effect on the default libraries, so if the default
395   is -m68020, --disable-m68020 is nilpotent.
397 * Reentrancy support in libm removed.
399 * strtok, strtol, strtoul, assert, div, ldiv, qsort, vfprintf
400   replaced with NetBSD versions.
402 * Support for systems with 32 bit "doubles" added.
404 * unctrl added.
406 * dtoa.c updated from master dtoa.c soruces (netlib.att.com)
408 * Various bug fixes.
410 *** Major changes in newlib version 1.6.1:
412 * Added reentrant functions (asctime_r, ctime_r, gmtime_r, localtime_r,
413 and strtok_r) from POSIX.1c.
415 * Removed _asctime_r and _strtok_r functions.