Reserve space in mbstate to allow for proper wchar support

Bug: 14382788
Change-Id: If023ac9bb65f95135cae7ebe89147e3985a69a96
diff --git a/libc/include/limits.h b/libc/include/limits.h
index a70021a..dc45902 100644
--- a/libc/include/limits.h
+++ b/libc/include/limits.h
@@ -112,7 +112,7 @@
 
 #define SSIZE_MAX LONG_MAX
 
-#define MB_LEN_MAX 1 /* No multibyte characters. */
+#define MB_LEN_MAX 6
 
 /* New code should use sysconf(_SC_PAGE_SIZE) instead. */
 #ifndef PAGE_SIZE
diff --git a/libc/include/wchar.h b/libc/include/wchar.h
index 0029a65..6251868 100644
--- a/libc/include/wchar.h
+++ b/libc/include/wchar.h
@@ -39,8 +39,15 @@
 
 __BEGIN_DECLS
 
-typedef __WINT_TYPE__           wint_t;
-typedef struct { int  dummy; }  mbstate_t;
+typedef __WINT_TYPE__  wint_t;
+typedef struct {
+#ifdef __LP32__
+  int dummy;
+#else
+  // 8 bytes should be enough to support at least UTF-8
+  char __reserved[8];
+#endif
+} mbstate_t;
 
 typedef enum {
     WC_TYPE_INVALID = 0,