summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog8
-rw-r--r--intl/Makefile2
-rw-r--r--linuxthreads/ChangeLog5
-rw-r--r--linuxthreads/pthread.c8
-rw-r--r--locale/C-ctype.c3
-rw-r--r--locale/programs/ld-ctype.c11
6 files changed, 34 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index aa7142388c..cbd284dbb0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2000-07-18  Ulrich Drepper  <drepper@redhat.com>
+
+	* intl/Makefile: Make sure tst-translit is run after tst-gettext.
+
+	* locale/C-ctype.c: Add initializers for gap elements.
+	* locale/programs/ld-ctype.c (ctype_output): Write out index entries
+	for gap elements.
+
 2000-07-16  Ulrich Drepper  <drepper@redhat.com>
 
 	* nscd/nscd.c (print_version): Update copyright year.
diff --git a/intl/Makefile b/intl/Makefile
index b4bc7aa0fa..8284f2c46a 100644
--- a/intl/Makefile
+++ b/intl/Makefile
@@ -67,6 +67,8 @@ $(objpfx)msgs.h: po2test.sed ../po/de.po
 CFLAGS-tst-gettext.c = -DTESTSTRS_H=\"$(objpfx)msgs.h\"
 CFLAGS-tst-translit.c = -DOBJPFX=\"$(objpfx)\"
 
+$(objpfx)tst-translit.out: $(objpfx)tst-gettext.out
+
 CPPFLAGS += -D'GNULOCALEDIR="$(msgcatdir)"' \
 	    -D'LOCALE_ALIAS_PATH="$(msgcatdir):$(i18ndir)"'
 YFLAGS = --name-prefix=__gettext --output
diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog
index 10abc40329..5d06c1c572 100644
--- a/linuxthreads/ChangeLog
+++ b/linuxthreads/ChangeLog
@@ -1,3 +1,8 @@
+2000-07-18  Jakub Jelinek  <jakub@redhat.com>
+
+	* pthread.c (__pthread_initialize_manager): Lock
+	__pthread_manager_thread.p_lock before calling clone.
+
 2000-05-05  H.J. Lu  <hjl@gnu.org>
 
 	* sysdeps/ia64/pt-machine.h (__compare_and_swap): Change it to
diff --git a/linuxthreads/pthread.c b/linuxthreads/pthread.c
index d70e3f4b1f..c264da53ab 100644
--- a/linuxthreads/pthread.c
+++ b/linuxthreads/pthread.c
@@ -450,6 +450,8 @@ int __pthread_initialize_manager(void)
 		   | __pthread_initial_thread.p_eventbuf.eventmask.event_bits[idx]))
 	  != 0)
 	{
+	  __pthread_lock(__pthread_manager_thread.p_lock, NULL);
+
 #ifdef NEED_SEPARATE_REGISTER_STACK
 	  pid = __clone2(__pthread_manager_event,
 			 (void **) __pthread_manager_thread_bos,
@@ -478,10 +480,10 @@ int __pthread_initialize_manager(void)
 
 	      /* Now call the function which signals the event.  */
 	      __linuxthreads_create_event ();
-
-	      /* Now restart the thread.  */
-	      __pthread_unlock(__pthread_manager_thread.p_lock);
 	    }
+
+	  /* Now restart the thread.  */
+	  __pthread_unlock(__pthread_manager_thread.p_lock);
 	}
     }
 
diff --git a/locale/C-ctype.c b/locale/C-ctype.c
index 344596d972..e93a585538 100644
--- a/locale/C-ctype.c
+++ b/locale/C-ctype.c
@@ -349,9 +349,12 @@ const struct locale_data _nl_C_LC_CTYPE =
   {
     { string: _nl_C_LC_CTYPE_class },
     { string: (const char *) _nl_C_LC_CTYPE_toupper },
+    { string: NULL },
     { string: (const char *) _nl_C_LC_CTYPE_tolower },
+    { string: NULL },
     { string: _nl_C_LC_CTYPE_class32 },
     { string: (const char *) _nl_C_LC_CTYPE_names },
+    { string: NULL },
     { word: 256 },
     { word: 1 },
     { string: "upper\0" "lower\0" "alpha\0" "digit\0" "xdigit\0" "space\0"
diff --git a/locale/programs/ld-ctype.c b/locale/programs/ld-ctype.c
index ba40f2eb42..e297aeb254 100644
--- a/locale/programs/ld-ctype.c
+++ b/locale/programs/ld-ctype.c
@@ -864,6 +864,17 @@ ctype_output (struct localedef_t *locale, struct charmap_t *charmap,
       if (elem < _NL_ITEM_INDEX (_NL_NUM_LC_CTYPE))
 	switch (elem)
 	  {
+#define CTYPE_EMPTY(name) \
+	  case name:							      \
+	    iov[2 + elem + offset].iov_base = "";			      \
+	    iov[2 + elem + offset].iov_len = 0;				      \
+	    idx[elem + 1] = idx[elem];					      \
+	    break
+
+	  CTYPE_EMPTY(_NL_CTYPE_GAP1);
+	  CTYPE_EMPTY(_NL_CTYPE_GAP2);
+	  CTYPE_EMPTY(_NL_CTYPE_GAP3);
+
 #define CTYPE_DATA(name, base, len)					      \
 	  case _NL_ITEM_INDEX (name):					      \
 	    iov[2 + elem + offset].iov_base = (base);			      \