uClibc requires the threading library to enable locking for
stdio, or the locking is not done at all.

Signed-off-by: Timo Teräs <timo.te...@iki.fi>
--
Not compile tested either. Natanael, maybe you could test this too
since you are using linuxthreads.new too.

diff --git a/libpthread/linuxthreads/pthread.c 
b/libpthread/linuxthreads/pthread.c
index 6ae9a10..614cad1 100644
--- a/libpthread/linuxthreads/pthread.c
+++ b/libpthread/linuxthreads/pthread.c
@@ -613,6 +613,17 @@ static void pthread_initialize(void)
#ifdef USE_TLS
  GL(dl_init_static_tls) = &__pthread_init_static_tls;
#endif
+
+  /* uClibc-specific stdio initialization for threads. */
+  {
+    FILE *fp;
+    _stdio_user_locking = 0;       /* 2 if threading not initialized */
+    for (fp = _stdio_openlist; fp != NULL; fp = fp->__nextopen) {
+      if (fp->__user_locking != 1) {
+        fp->__user_locking = 0;
+      }
+    }
+  }
}

void __pthread_initialize(void)
_______________________________________________
uClibc mailing list
uClibc@uclibc.org
http://lists.busybox.net/mailman/listinfo/uclibc

Reply via email to