diff options
Diffstat (limited to 'main/uclibc/uclibc-linuxthreads-init-stdio.patch')
-rw-r--r-- | main/uclibc/uclibc-linuxthreads-init-stdio.patch | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/main/uclibc/uclibc-linuxthreads-init-stdio.patch b/main/uclibc/uclibc-linuxthreads-init-stdio.patch new file mode 100644 index 0000000000..aa5ef64600 --- /dev/null +++ b/main/uclibc/uclibc-linuxthreads-init-stdio.patch @@ -0,0 +1,21 @@ +diff --git a/libpthread/linuxthreads/pthread.c b/libpthread/linuxthreads/pthread.c +index 6ae9a10..151e039 100644 +--- a/libpthread/linuxthreads/pthread.c ++++ b/libpthread/linuxthreads/pthread.c +@@ -409,6 +409,16 @@ cannot allocate TLS data structures for initial thread\n"; + #endif + + __libc_multiple_threads_ptr = __libc_pthread_init (ptr_pthread_functions); ++ /* 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; ++ } ++ } ++ } + } + + |