diff --git a/ap/libc/glibc/glibc-2.23/stdlib/tst-limits.c b/ap/libc/glibc/glibc-2.23/stdlib/tst-limits.c
new file mode 100644
index 0000000..9aabc36
--- /dev/null
+++ b/ap/libc/glibc/glibc-2.23/stdlib/tst-limits.c
@@ -0,0 +1,72 @@
+/* It is important that this comes first to not hide effects introduced
+   by other headers.  */
+#include <limits.h>
+
+#include <inttypes.h>
+#include <stdio.h>
+
+
+static long long int
+bitval (int bits)
+{
+  long long int val = 0;
+  while (bits-- > 0)
+    val |= 1ll << bits;
+  return val;
+}
+
+
+static int
+do_test (void)
+{
+  int result = 0;
+
+#define TEST(name, format, expected) \
+  printf ("%-12s expected = %-20" format "  actual = %" format "\n",	      \
+	  #name ":", expected, name);					      \
+  result |= name != expected
+
+  /* The limits from ISO C99.  */
+
+  /* We cannot support anything but 8-bit chars.  */
+  TEST (CHAR_BIT, "d", 8);
+  TEST (SCHAR_MIN, "d", -128);
+  TEST (SCHAR_MAX, "d", 127);
+  TEST (UCHAR_MAX, "d", 255);
+
+  TEST (SHRT_MIN, "d", -(1 << (sizeof (short int) * CHAR_BIT - 1)));
+  TEST (SHRT_MAX, "d", (1 << (sizeof (short int) * CHAR_BIT - 1)) - 1);
+  TEST (USHRT_MAX, "d", (1 << sizeof (short int) * CHAR_BIT) - 1);
+
+  TEST (INT_MIN, "d", (int) -bitval (sizeof (int) * CHAR_BIT - 1) - 1);
+  TEST (INT_MAX, "d", (int) bitval (sizeof (int) * CHAR_BIT - 1));
+  TEST (UINT_MAX, "u",
+	(unsigned int) bitval (sizeof (unsigned int) * CHAR_BIT));
+
+  TEST (LONG_MIN, "ld",
+	(long int) -bitval (sizeof (long int) * CHAR_BIT - 1) - 1);
+  TEST (LONG_MAX, "ld", (long int) bitval (sizeof (long int) * CHAR_BIT - 1));
+  TEST (ULONG_MAX, "lu",
+	(unsigned long int) bitval (sizeof (unsigned long int) * CHAR_BIT));
+
+  TEST (LLONG_MIN, "lld", -bitval (sizeof (long long int) * CHAR_BIT - 1) - 1);
+  TEST (LLONG_MAX, "lld", bitval (sizeof (long long int) * CHAR_BIT - 1));
+  TEST (ULLONG_MAX, "llu",
+	(unsigned long long int) bitval (sizeof (unsigned long long int)
+					 * CHAR_BIT));
+
+  /* Values from POSIX and Unix.  */
+#ifdef PAGESIZE
+  TEST (PAGESIZE, "d", getpagesize ());
+#elif defined (PAGE_SIZE)
+  TEST (PAGE_SIZE, "d", getpagesize ());
+#endif
+
+  TEST (WORD_BIT, "d", (int) sizeof (int) * CHAR_BIT);
+  TEST (LONG_BIT, "d", (int) sizeof (long int) * CHAR_BIT);
+
+  return result;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
