Patches for Newlib and RTEMS

Sebastian Huber sebastian.huber at
Wed Jul 10 09:16:04 UTC 2013

On 07/08/2013 03:33 PM, Sebastian Huber wrote:
> the patches sent today for Newlib and RTEMS require a re-build of the tool
> chain.  The changes are
> 1. Removal of the thread-specific atexit() support to reduce the size of struct
> _reent.  See discussion on the Newlib list.

This saves roughly 400 bytes in struct _reent which were unused.  This is a lot 
on smaller targets.  This is an ABI change, but not an API change.

> 2. Usage of __DYNAMIC_REENT__ for SMP support and simpler context switching.

This change is now in Newlib.  It was absolutely necessary to support SMP.  I 
simplifies also the critical path in _Thread_Dispatch() which is a good thing 
for non-SMP configurations.  This is an ABI change, but not an API change.

> 3. POSIX cleanup push/pop implementation change.

To store the cleanup context on the stack instead of the workspace is a clear 
implementation improvement and it avoids a silent error.  This workspace 
allocation was not part of the workspace size estimate.  All other Pthread 
implementations that I am aware of use this stack based context storage.  This 
is an ABI change, but not an API change provided the application code meets the 
POSIX requirements.

We should discuss which Newlib version we want to use for RTEMS 4.11 and then 
do a release candidate tool chain build.  I use currently the Newlib HEAD 
without patches.

Are there any patches left for upstream Newlib submission?

Sebastian Huber, embedded brains GmbH

Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone   : +49 89 189 47 41-16
Fax     : +49 89 189 47 41-09
E-Mail  : sebastian.huber at
PGP     : Public key available on request.

Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.

More information about the devel mailing list