Re: [PATCH v3 3/5] Introduce _REENT_GLOBAL_STDIO_STREAMS

Sebastian Huber <[email protected]>
Newsgroups gmane.comp.lib.newlib
Message-ID <[email protected]>
On 08/08/18 15:19, Freddie Chopin wrote:
> On Fri, 2017-06-30 at 10:58 +0200, Sebastian Huber wrote:
>> ----- Am 30. Jun 2017 um 10:13 schrieb Corinna Vinschen
>> [email protected]:
>>
>>> On Jun 30 07:43, Sebastian Huber wrote:
>>>> On 29/06/17 20:31, Corinna Vinschen wrote:
>>>>
>>>>> And, JFYI, Cygwin will start to use it too after the next
>>>>> release:)
>>>> There are some new problems with this change. We have no
>>>> reference counting
>>>> in the FILE objects, so a freopen(..., stdin), closes the global
>>>> stdin FILE
>>>> object (__sf[0]), etc. What works is a stdin = fopen(). I guess
>>>> this could
>>>> break existing applications.
>>> Erm... isn't that expected behaviour?  stdin/stdout/stderr are
>>> global
>>> objects, after all.  They were never thread-local per POSIX.
>> The stdin/stdout/stderr pointers are still thread-local with this
>> option. Only the FILE objects itself are now global. If you do a
>> stdin = fopen() you get a completely thread-local stdin. I have
>> absolutely no idea why this stuff is thread-local in Newlib by
>> default.
> Would that be possible, to make stdin/stdout/stderr completely global
> (remove them from _reent, use global objects) when
> _REENT_GLOBAL_STDIO_STREAMS is enabled?

The thread-local IO streams are a Newlib feature that is used by our 
applications.

-- 
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  : [email protected]
PGP     : Public key available on request.

Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.