*** Major changes in newlib version 4.5.0:

- major clean-up of libgloss build including merging a number of platforms
  into top-level Makefile (moxie, v850, i960, msp430, frv, i386, ...) and
  removal of dead platforms such as xc16x
- strverscmp fixed for comparison of digit sequence with non-digits
- proper locking added from amdgcn
- numerous improvements to arc support including support of 16-entry 
  register file
- long double complex functions are now skipped if long double != double
- support for POSIX.1-2024 added to features.h
- arc64: port added for Synopsys Designware ARCv3 ISA
- sys/xtensa removed and replaced by machine/xtensa and libgloss
- fixes to powf
- fixes for building with gcc-15

*** Major changes in newlib version 4.4.0:

- long double support for i386, aarch64, and x86_64 added from FreeBSD
- RISC-V Zfinx/Zdinx extension support
- wildcard support added to allow arbitrary include dirs to be specified for a platform
- Xtensa port added
- printf family helper functions split out into separate files to save space when linking
- wide-oriented I/O fixes including proper split of byte and wide-oriented stdio functions
- support added for RISC-V long double math
- fixes for c99/gcc-14 warnings treated as errors in multiple platforms

*** Major changes in newlib version 4.3.0:


- remove i?86-pc-linux-gnu support
- remove decstation & sunos support
- remove phoenix OS support
- remove unused members from struct _reent (see also --enable-newlib-reent-binary-compat)
- build system internals heavily rewritten & updated
- make arm jmp_buf size and alignment ABI-conformant
- fixed bug in arm setjmp/longjmp to preserve floating-point register values
- add --enable-newlib-reent-thread-local configuration option
- add --enable-newlib-reent-binary-compat configuration option
- add 64-bit powerpc setjmp/longjmp support
- use global stdio streams for all configurations
- use global atexit data for all configurations
- vectorized math routines added for amdgcn platform
- nvptx: remove newlib ELIX level 1 restriction

*** Major changes in newlib version 4.2.0:

- remove use of --cygnus option for automake
- rename configure.in files to configure.ac
- enable automake silent rules
- import gdtoa from OpenBSD
- update to Unicode 14.0
- ignore _FORTIFY_SOURCE when building newlib
- fixes to ldtoa
- add clock support to nvptx port
- various pthread POSIX APIs added
- added implementatio for sig2str/str2sig
- strtod/strtof to set errno to ERANGE consistently for underflow
- fixed rounding issue with sqrt/sqrtf
- fixed heap fragmentation issue with nano-malloc
- FTW port for newlib
- additions to sys/tree.h

*** Major changes in newlib version 4.1.0:

- fixes for regressions to pow/powf and tgamma functions
- RISC-V semihosting support
- RISC-V and arm patches

*** Major changes in newlib version 4.0.0:

- additional out-of-bounds checking for malloc/nano-malloc family
- various fixes to makedocbook for python 3.8
- multiple standard/accuracy fixes to libm math routines
- C-SKY port
- support for Armv8-R aarch64 added
- move of __tzrules_struct from time.h to internal header
- math additions/improvements for RISC-V and arm
- all arm code converted to use unified syntax for Thumb1
- fenv support added for multiple platforms
- hard float support for PowerPC taken from FreeBSD
- advertising clause removed from BSD licenses
- various other fixes

*** Major changes in newlib version 3.2.0:

- memmem performance improvement
- nanf() and HUGE_VALF now used in libm float routines to reduce size
- new reduced "tiny" code size printf and puts support
- errno setting enhanced in libm routines
- new --enable-newlib-reent-check-verify configure option to verify reent memory
- <fenv.h> support added
- <sys/time.h> and <sys/_timespec.h> synced with FreeBSD
- timeval macros moved to <sys/time.h>
- newlib wide char conversion functions updated to Unicode 11.0
- new msp430-elfbare target support
- AMD GCN port
- PRU port
- nbdm port
- various standard improvements

*** Major changes in newlib version 3.1.0:

- global stdio streams support added for reent small
- _CLOCKID_T made system configurable
- generated Unicode 10.0 width data, case conversion data,
  character category data
- Unicode table generation scripts fixed/enhanced
- performance enhancements for qsort, strstr
- nvptx port added
- sinf/cosf/sincosf/exp/exp2/log/log2/pow rewritten for performance and accuracy
- various gcc warnings fixed
- various standard improvements


*** Major changes in newlib version 3.0.0:

- K&R support removed in code and docs
- 64-bit time_t support
- riscv platform support added
- new expf, exp2f, logf, and powf implementations
- unification of lock object names
- locking routine retargetting at link time
- new long double complex math routines
- various ARM optimizations
- various POSIX/BSD additions
- further feature test macros overhaul

*** Major changes in newlib version 2.5.0:

- memory.h added
- some header file reorganization
- doc fixes
- ctype rewrite
- added per-locale string functions
- additional feature test macro overhaul

*** Major changes in newlib version 2.4.0:

- feature test macro overhaul
- new string functions (e.g. timingsafe_bcmp)
- new stdlib functions (e.g. arc4random)
- simplified versioning macros for newlib
- Changelog files deprecated

*** Major changes in newlib version 2.3.0:

- dynamic atexit logic fixed
- various arm performance enhancements
- new version of strtold
- doc improvements
- arc platform support redone
- strftime improvements/enhancements
- imported logic from FreeBSD
- locking fixes
- complex math enhancements
- visium platform support added
- or1k platform support added

*** Major changes in newlib version 2.2.0:

- multiple functional/performance enhancements for arm/aarch64
- new nano formatted I/O support
- replacement of or16/or32 with or1k platform
- qsort_r support
- additional long double math routines
- ito/utoa/ltoa
- restructuring of gmtime/localtime so tz functions only linked by localtime
- unlocked I/O functions
- various warning clean-ups

*** Major changes in newlib version 2.1.0:

- multibyte decimal point support added to
  scanf family
- multiple changes for FreeBSD compatibility
- multiple RTEMS changes for Linux compatibility
- addition of restrict keyword
- nano-malloc support added
- global atexit support added
- new nds32 platform support
- new msp430 platform support
- new nios2 platform support
- lite exit support
- updated arm support (aarch64)
- newlib ported to x86_64-pc-cygwin

*** Major changes in newlib version 2.0.0:

- addition of aarch64 platform support
- addition of epiphany platform support
- addition of 'm' printf conversion specifier
- memrchr function added
- removal of many compiler warnings
- removal of enable-newlib-fp-hw option and
  deprecation of mathfp directory
- type of offset in file structure changed from int to off_t
- new optimized arm math routines
- various bug fixes

*** Major changes in newlib version 1.20.0:

* I/O lock clean-up
* fixes to strftime/strptime
* fixes to arm support
* new NO_INCLUDE_LIST configuration support
* rl78 platform support contributed
* sparc-leon platform support contributed
* cvs-to-git mirroring of newlib
* various bug fixes

*** Major changes in newlib version 1.19.0:

* complex math functions
* locale support extended to maintain wide char values of native strings
* eXtensible Data Record (XDR) support for Cygwin
* wide char functions updated to Unicode 5.2
* additional locale charsets
* POSIX standard adherence improvements
* tic6x platform support contributed
* cr16 platform support contributed
* various bug fixes

*** Major changes in newlib version 1.18.0:

* wide-char enhancements
* long double math routines added for platforms where LDBL == DBL
* long long math routines added
* math cleanup
* UTF-16 modifications for Cygwin
* major locale charset overhaul including added charsets
* added moxie platform
* added rx platform
* added xc16x platform
* various cleanups
* various bug fixes

*** Major changes in newlib version 1.17.0:

* new C99 wide-char function additions
* lm32 platform support contributed
* movement of regex functions from sys/linux directory into
  shared libc/posix directory
* string function optimizations
* redesign of formatted I/O to reduce dependencies when using
  sprintf/sscanf family of functions
* numerous warning cleanups
* documentation fixes to support pdf, info, ps formats and
  eclipse libhover hover docs
* various bug fixes

*** Major changes in newlib version 1.16.0:

* mep-elf support contributed
* x86_64 support added
* reentrant I/O clean-up
* various new C functions added from C99, POSIX, SUSV, etc..
* switch to use top-level libtool
* spu floating-point environment and stdio enhancement
* fastmath support
* various bug fixes

*** Major changes in newlib version 1.15.0:

* new platforms added (bfin, spu, fido)
* merge of csl branch changes (e.g. m68k)
* additional C99 support (printf modifiers, strtod, isnan/isinf)
* new configuration option to turn off dynamic allocation for atexit
* reentrancy added for read / write functions
* Cygwin fixes (e.g. POSIX read file flush behavior)
* switch to autoconf 2.5.9
* use of aclocal/automake 1.9.6
* various bug fixes and doc cleanups

*** Major changes in newlib version 1.14.0:

* new platforms added (cris, mt, m32c)
* more locking protection macros added
* various C99/POSIX/SUSV3 compliance issue improvements
* reentrancy cleanup
* header file improvements (e.g. adding RTEMS stdint.h/inttypes.h)
* various math fixes
* changes made to allow use of gcc4 to build newlib
* general bug fixes and cleanups

*** Major changes in newlib version 1.13.0:

* optimized iconv support
* new configuration option to disable syscalls in newlib (e.g. sys/arm)
* new configuration options controlling long long, long double support
* ability of configuration options to override platform defaults
* improved locking protection for file I/O functions
* new reentrant functions
* various fixes to allow building under FC3 and Debian Linux
* cxa exit support
* new platforms (e.g. crx)
* new iprintf and iscanf family functions

*** Major changes in newlib version 1.12.0:

* general iconv support added
* major cleanup with linux header files regarding warnings
* thread-safety and reentrancy fixes
* additional wide character C99 functions
* addition of %lc, %ls, %S, and %C printf format specifiers
* doc cleanup

*** Major changes in newlib version 1.11.0:

* enhanced EL/IX support for i[3456]86-pc-linux 
* new --enable-newlib-elix-level configuration option
* positional arg I/O support for printf family (--enable-newlib-io-pos-args)
* support for the Fujitsu FRV architecture added by Red Hat
* support for Motorola Altivec and SPE added by Red Hat
* new small reentrancy structure support
* dynamic reentrancy structure support

*** Major changes in newlib version 1.10.0:

* libtool support for i[3456]86-pc-linux native builds
* addition of libm/machine/i386 directory, for i386 fast math routines

*** Major changes in newlib version 1.9.0:

* i[3456]86-pc-linux support

* Long Double I/O support via the WANT_IO_LONG_DBL flag

* addition of reentrant environment functions

* addition of xscale and AVR platforms

* severe reduction in the number of warnings issued

* consolidation of many RTEMS features into shared headers

*** Major changes in newlib version 1.8.2:

* RTEMS features and fixes from Joel Sherrill.

* More work on reentrant routines.

* Floating point math library check, --enable-newlib-hw-fp.

*** Major changes in newlib version 1.8.1:

* Added check for --enable-newlib-mb configure option which defines the
  MB_CAPABLE macro.  Multibyte support for JIS, SJIS, and EUC-JP implemented.

* Reduced code size for libm modules.

* Replaced the BSD malloc with Doug Lea's malloc.

*** Major changes in newlib version 1.8.0:

* Added simulated signal handling functions _raise_r, _signal_r, raise, and
  signal except for sparc-sun-sunos*, i[3456]86-*-sco*, and a29k-*-* systems,
  which already provide access to signal.  The signal functionality provided
  does not interact with hardware generated signals.
    
* Added reentrant function rand_r from POSIX.1c.

* Removed _asctime, _next, _scanpoint, and _signgam fields from struct
  _reent.  These are no longer necessary since there are now functions
  that explictly support multiple threads (asctime_r, ctime_r, gamma_r,
  gmtime_r, lgamma_r, localtime_r, rand_r, & strtok_r).


*** Major changes in newlib version 1.7.0:

* Cross compiler target libraries are now built in a subdir of the top level
  build directory.

  Old way: build
                /newlib
                       /m68020
                              /m68881
  New way:
           build
                /m68k-coff
                          /m68020
                                 /m68881

  where m68020 and m68881 are multilib subdirectories

* m68k targets support --disable options to avoid building unwanted versions
  of the libraries.

  --disable-softfloat - don't build libc, libg++, etc. for -msoft-float
  --disable-m68881    - don't build libc, libg++, etc. for -m68881
  --disable-m68000    - don't build libc, libg++, etc. for -m68000
  --disable-m68020    - don't build libc, libg++, etc. for -m68020

  These options have *no* effect on the default libraries, so if the default
  is -m68020, --disable-m68020 is nilpotent.

* Reentrancy support in libm removed.

* strtok, strtol, strtoul, assert, div, ldiv, qsort, vfprintf
  replaced with NetBSD versions.

* Support for systems with 32 bit "doubles" added.

* unctrl added.

* dtoa.c updated from master dtoa.c soruces (netlib.att.com)

* Various bug fixes.

*** Major changes in newlib version 1.6.1:

* Added reentrant functions (asctime_r, ctime_r, gmtime_r, localtime_r,
and strtok_r) from POSIX.1c.

* Removed _asctime_r and _strtok_r functions.
