[PATCH v3 0/7] Add --enable-newlib-reent-binary-compat configure option

Sebastian Huber sebastian.huber@embedded-brains.de
Mon May 16 15:53:22 GMT 2022


This patch set adds the --enable-newlib-reent-binary-compat configure option
which may be used to define the new Newlib configuration option
_REENT_BACKWARD_BINARY_COMPAT.  This option is used to provide binary backward
compatibility for struct _reent by preserving unused members in struct _reent
to keep the structure layout.  Make _REENT_GLOBAL_ATEXIT the default and remove
this option.

v2:

* Rename --enable-newlib-backward-binary-compat in --enable-newlib-reent-binary-compat.

* Do not enable option for Cygwin.

* Adjust code in libgloss.

v3:

* Enable struct _reent backward binary compatibility for Cygwin.

* Rename unused struct _reent members in _reserved_*.

Sebastian Huber (7):
  Add --enable-newlib-reent-binary-compat
  Cygwin: Enable backward binary compatibility
  Optional struct _reent::__unused_sdidinit
  Optional struct _reent::_unspecified_locale_info
  Optional struct _reent::_new::_reent::_unused_rand
  Optional struct _reent::_new::_unused
  Use global atexit data for all configurations

 libgloss/arc/crt0.S                   | 11 ++--
 libgloss/epiphany/crt0.S              | 26 ++++----
 libgloss/sparc_leon/locore_atexit.c   |  4 +-
 newlib/README                         | 12 ++--
 newlib/configure                      | 30 ++++++---
 newlib/configure.ac                   | 25 +++++--
 newlib/libc/include/sys/config.h      |  7 +-
 newlib/libc/include/sys/reent.h       | 93 ++++++++++++++-------------
 newlib/libc/reent/reent.c             | 19 ------
 newlib/libc/stdlib/__atexit.c         | 15 ++---
 newlib/libc/stdlib/__call_atexit.c    |  8 +--
 newlib/newlib.hin                     |  6 +-
 winsup/cygwin/include/cygwin/config.h |  1 +
 13 files changed, 131 insertions(+), 126 deletions(-)

-- 
2.35.3



More information about the Newlib mailing list