Index: sys/mips/include/_limits.h
===================================================================
--- sys/mips/include/_limits.h (revision 322914)
+++ sys/mips/include/_limits.h (working copy)
@@ -75,18 +75,24 @@
#define __LLONG_MAX 0x7fffffffffffffffLL /* max value for a long long */
#define __LLONG_MIN (-0x7fffffffffffffffLL - 1) /* min for a long long */
+#ifdef __mips_n64
#define __SSIZE_MAX __LONG_MAX /* max value for a ssize_t */
-
#define __SIZE_T_MAX __ULONG_MAX /* max value for a size_t */
+#define __OFF_MAX __LONG_MAX /* max value for an off_t */
+#define __OFF_MIN __LONG_MIN /* min value for an off_t */
+#define __UQUAD_MAX __ULONG_MAX /* max value for a uquad_t */
+#define __QUAD_MAX __LONG_MAX /* max value for a quad_t */
+#define __QUAD_MIN __LONG_MIN /* min value for a quad_t */
+#else
+#define __SSIZE_MAX __INT_MAX
+#define __SIZE_T_MAX __UINT_MAX
+#define __OFF_MAX __LLONG_MAX
+#define __OFF_MIN __LLONG_MIN
+#define __UQUAD_MAX __ULLONG_MAX
+#define __QUAD_MAX __LLONG_MAX
+#define __QUAD_MIN __LLONG_MIN
+#endif
-#define __OFF_MAX __LLONG_MAX /* max value for an off_t */
-#define __OFF_MIN __LLONG_MIN /* min value for an off_t */
-
-/* Quads and long longs are the same size. Ensure they stay in sync. */
-#define __UQUAD_MAX __ULLONG_MAX /* max value for a uquad_t */
-#define __QUAD_MAX __LLONG_MAX /* max value for a quad_t */
-#define __QUAD_MIN __LLONG_MIN /* min value for a quad_t */
-
#define __WORD_BIT 32
#define __MINSIGSTKSZ (512 * 4)