about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog2
-rw-r--r--linuxthreads/ChangeLog10
-rw-r--r--linuxthreads/Makefile4
-rw-r--r--linuxthreads/pthread.c2
-rw-r--r--linuxthreads/tst-static-locale.c13
-rw-r--r--locale/duplocale.c1
6 files changed, 29 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 8d9cf20a36..b27a3cd066 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,7 @@
 2002-08-30  Roland McGrath  <roland@redhat.com>
 
+	* locale/duplocale.c: Include <string.h>.
+
 	* intl/dcigettext.c (DCIGETTEXT) [_LIBC]: Check for bogus CATEGORY.
 	[_LIBC] (category_to_name): Don't define the function.  Instead
 	define a macro using _nl_category_names.
diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog
index 93193ae754..ec9befe04b 100644
--- a/linuxthreads/ChangeLog
+++ b/linuxthreads/ChangeLog
@@ -1,3 +1,13 @@
+2002-08-30  Jakub Jelinek  <jakub@redhat.com>
+
+        * pthread.c (__pthread_initialize_minimal): Call __uselocale even
+        if [! SHARED].
+
+2002-08-30  Roland McGrath  <roland@redhat.com>
+
+	* tst-static-locale.c: New file.
+	* Makefile (tests, tests-static): Add it.
+
 2002-04-24  Steven Munroe  <sjmunroe@us.ibm.com>
 
 	* spinlock.c (__pthread_lock): Fix spurious wakeup
diff --git a/linuxthreads/Makefile b/linuxthreads/Makefile
index ba4327921a..4f94de373e 100644
--- a/linuxthreads/Makefile
+++ b/linuxthreads/Makefile
@@ -65,8 +65,8 @@ tests = ex1 ex2 ex3 ex4 ex5 ex6 ex7 ex8 ex9 $(librt-tests) ex12 ex13 joinrace \
 test-srcs = tst-signal
 
 ifeq ($(build-static),yes)
-tests += tststatic
-tests-static += tststatic
+tests += tststatic tst-static-locale
+tests-static += tststatic tst-static-locale
 endif
 
 ifeq (yes,$(build-shared))
diff --git a/linuxthreads/pthread.c b/linuxthreads/pthread.c
index ae40254982..f08bfd4652 100644
--- a/linuxthreads/pthread.c
+++ b/linuxthreads/pthread.c
@@ -479,7 +479,7 @@ __pthread_initialize_minimal(void)
 # endif
 #endif
 
-#if !(USE_TLS && HAVE___THREAD) && defined SHARED
+#if !(USE_TLS && HAVE___THREAD)
   /* Initialize thread-locale current locale to point to the global one.
      With __thread support, the variable's initializer takes care of this.  */
   __uselocale (LC_GLOBAL_LOCALE);
diff --git a/linuxthreads/tst-static-locale.c b/linuxthreads/tst-static-locale.c
new file mode 100644
index 0000000000..3c88e729ba
--- /dev/null
+++ b/linuxthreads/tst-static-locale.c
@@ -0,0 +1,13 @@
+/* Test that the thread-local locale works right in the main thread
+   when statically linked.  */
+
+#include "../locale/tst-C-locale.c"
+
+#include <pthread.h>
+
+/* This is never called, just here to get pthreads linked in.  */
+void
+useless (void)
+{
+  pthread_create (0, 0, 0, 0);
+}
diff --git a/locale/duplocale.c b/locale/duplocale.c
index df856a2a83..0e1e673598 100644
--- a/locale/duplocale.c
+++ b/locale/duplocale.c
@@ -21,6 +21,7 @@
 #include <locale.h>
 #include <bits/libc-lock.h>
 #include <stdlib.h>
+#include <string.h>
 
 #include <localeinfo.h>