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.hu...@embedded-brains.de
PGP     : Public key available on request.

Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
_______________________________________________
rtems-devel mailing list
rtems-devel@rtems.org
http://www.rtems.org/mailman/listinfo/rtems-devel

Reply via email to