buffers are initialized to avoid thread initialization races.
+2003-10-02 Christopher Faylor <cgf@redhat.com>
+
+ * dcrt0.cc (dll_crt0_1): Call newlib __sinit routine to ensure that
+ stdio buffers are initialized to avoid thread initialization races.
+
2003-10-01 Christopher Faylor <cgf@redhat.com>
* path.cc (win32_device_name): Only fill out destination buffer when
id = GetCurrentThreadId ();
}
+extern "C" void __sinit (_reent *);
+
/* Take over from libc's crt0.o and start the application. Note the
various special cases when Cygwin DLL is being runtime loaded (as
opposed to being link-time loaded by Cygwin apps) from a non
/* Initialize pthread mainthread when not forked and it is save to call new,
otherwise it is reinitalized in fixup_after_fork */
if (!user_data->forkee)
- pthread::init_mainthread ();
+ {
+ __sinit (_impure_ptr);
+ pthread::init_mainthread ();
+ }
#ifdef DEBUGGING
strace.microseconds ();