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,