aboutsummaryrefslogtreecommitdiff
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>