[4.11 PATCH] libcsupport/newlib: Call newlib's __sinit to force reent initialisation

Sebastian Huber sebastian.huber at embedded-brains.de
Tue Feb 18 08:33:37 UTC 2020


On 18/02/2020 01:25, chrisj at rtems.org wrote:
> From: Chris Johns <chrisj at rtems.org>
> 
> - Newlib overtites any FILE pointers set in stdin, stdout or stderr.
> 
> Closes #3870
> ---
>   cpukit/libcsupport/src/newlibc_reent.c | 5 ++++-
>   1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/cpukit/libcsupport/src/newlibc_reent.c b/cpukit/libcsupport/src/newlibc_reent.c
> index 430157cf0f..6dc0b1eeaa 100644
> --- a/cpukit/libcsupport/src/newlibc_reent.c
> +++ b/cpukit/libcsupport/src/newlibc_reent.c
> @@ -44,7 +44,10 @@ bool newlib_create_hook(
>     }
>   #endif
>   
> -  _REENT_INIT_PTR((creating_task->libc_reent)); /* GCC extension: structure constants */
> +  extern void __sinit (struct _reent *s);
> +  struct _reent *reent = (struct _reent *) creating_task->libc_reent;
> +  _REENT_INIT_PTR((reent)); /* GCC extension: structure constants */
> +  __sinit( reent );
>   
>     return true;
>   }

It would be good to test if this has the side-effect that now every 
thread delete closes the file descriptors 0, 1, and 2.

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

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


More information about the devel mailing list