about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog23
-rw-r--r--iconv/gconv_conf.c2
-rw-r--r--locale/localeinfo.h2
-rw-r--r--locale/setlocale.c4
-rw-r--r--stdlib/fmtmsg.c2
-rw-r--r--string/bits/string2.h20
6 files changed, 42 insertions, 11 deletions
diff --git a/ChangeLog b/ChangeLog
index cd73f2d026..fe79a6c82e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,26 @@
+1999-04-30  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
+
+	* string/bits/string2.h (memset): Revert to previous version if
+	unaligned writes are not available.
+
+1999-04-30  Ulrich Drepper  <drepper@cygnus.com>
+
+	* sysdeps/i386/i486/bits/string.h (__memset_gc): Help generating
+	better code in presence of the asm.
+
+1999-04-30  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
+
+	* stdlib/fmtmsg.c (keywords): Increase array size for faster
+	indexing.
+
+	* locale/localeinfo.h (_nl_category_names): Increase array element
+	size for faster indexing.
+	* locale/setlocale.c (_nl_category_names): Adjusted.
+
+1999-04-30  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
+
+	* iconv/gconv_conf.c (add_alias): Remove wrong cast.
+
 1999-05-01  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
 
 	* sysdeps/m68k/stackinfo.h: New file.
diff --git a/iconv/gconv_conf.c b/iconv/gconv_conf.c
index dce913da74..0d25c22416 100644
--- a/iconv/gconv_conf.c
+++ b/iconv/gconv_conf.c
@@ -209,7 +209,7 @@ add_alias (char *rp, void *modules)
 
       inserted = (void **) __tsearch (new_alias, &__gconv_alias_db,
 				      __gconv_alias_compare);
-      if (inserted == NULL || *inserted != (void **) new_alias)
+      if (inserted == NULL || *inserted != new_alias)
 	/* Something went wrong, free this entry.  */
 	free (new_alias);
     }
diff --git a/locale/localeinfo.h b/locale/localeinfo.h
index 9f58a743c8..dddacfe28d 100644
--- a/locale/localeinfo.h
+++ b/locale/localeinfo.h
@@ -104,7 +104,7 @@ extern struct locale_data *_nl_current_##category;
 #include "categories.def"
 #undef	DEFINE_CATEGORY
 
-extern const char _nl_category_names[LC_ALL + 1][12];
+extern const char _nl_category_names[LC_ALL + 1][16];
 extern const size_t _nl_category_name_sizes[LC_ALL + 1];
 extern struct locale_data * *const _nl_current[LC_ALL + 1];
 
diff --git a/locale/setlocale.c b/locale/setlocale.c
index 1bcc4d5375..5f152e3bba 100644
--- a/locale/setlocale.c
+++ b/locale/setlocale.c
@@ -66,10 +66,10 @@ struct locale_data *const _nl_C[] =
 /* Define an array of category names (also the environment variable names),
    indexed by integral category.
 
-   We have entries of fixed width (12 for now) do avoid an array of
+   We have entries of fixed width (16 for now) do avoid an array of
    pointers.  Update the size of the outer array if new, longer locale
    names are introduced.  */
-const char _nl_category_names[][12] =
+const char _nl_category_names[][16] =
   {
 #define DEFINE_CATEGORY(category, category_name, items, a, b, c, d) \
     [category] = category_name,
diff --git a/stdlib/fmtmsg.c b/stdlib/fmtmsg.c
index 082839a956..038c2aee37 100644
--- a/stdlib/fmtmsg.c
+++ b/stdlib/fmtmsg.c
@@ -43,7 +43,7 @@ static const struct
 {
   size_t len;
   /* Adjust the size if new elements are added.  */
-  const char name[9];
+  const char name[12];
 } keywords[] =
   {
     { 5, "label" },
diff --git a/string/bits/string2.h b/string/bits/string2.h
index 3f7784ed38..aedadf439c 100644
--- a/string/bits/string2.h
+++ b/string/bits/string2.h
@@ -93,7 +93,8 @@ __STRING2_COPY_TYPE (8);
 
 /* Set N bytes of S to C.  */
 #ifndef _HAVE_STRING_ARCH_memset
-# define memset(s, c, n) \
+# if _STRING_ARCH_unaligned
+#  define memset(s, c, n) \
   (__extension__ (__builtin_constant_p (n) && (n) <= 16			      \
 		  ? ((n) == 1						      \
 		     ? __memset_1 (s, c)				      \
@@ -102,10 +103,10 @@ __STRING2_COPY_TYPE (8);
 		     ? ({ void *__s = (s); __bzero (__s, n); __s; })	      \
 		     : memset (s, c, n))))
 
-#define __memset_1(s, c) ({ void *__s = (s);				      \
+#  define __memset_1(s, c) ({ void *__s = (s);				      \
 			    *((__uint8_t *) __s) = (__uint8_t) c; __s; })
 
-#define __memset_gc(s, c, n) \
+#  define __memset_gc(s, c, n) \
   ({ void *__s = (s);							      \
      __uint32_t *__ts = (__uint32_t *) __s;				      \
      __uint8_t __c = (__uint8_t) (c);					      \
@@ -157,10 +158,17 @@ __STRING2_COPY_TYPE (8);
        }								      \
 									      \
      __s; })
+# else
+#  define memset(s, c, n) \
+  (__extension__ (__builtin_constant_p (c) && (c) == '\0'		      \
+		  ? ({ void *__s = (s); __bzero (__s, n); __s; })	      \
+		  : memset (s, c, n)))
+# endif
+
 /* GCC optimizes memset(s, 0, n) but not bzero(s, n).  */
-#if defined __GNUC__ && __GNUC__ >= 2
-# define __bzero(s, n) __builtin_memset(s, '\0', n)
-#endif
+# if defined __GNUC__ && __GNUC__ >= 2
+#  define __bzero(s, n) __builtin_memset(s, '\0', n)
+# endif
 
 #endif