On Jun 30 10:58, Sebastian Huber wrote: > > > ----- Am 30. Jun 2017 um 10:13 schrieb Corinna Vinschen vinschen@redhat.com: > > > 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. Me neither. This predates my involvement in newlib. I guess it sounded like a good idea at the time, to allow multiple, independent applets on bare metal systems. Corinna -- Corinna Vinschen Cygwin Maintainer Red Hat