diff --git a/ap/libc/glibc/glibc-2.23/stdlib/l64a.c b/ap/libc/glibc/glibc-2.23/stdlib/l64a.c
new file mode 100644
index 0000000..383950a
--- /dev/null
+++ b/ap/libc/glibc/glibc-2.23/stdlib/l64a.c
@@ -0,0 +1,56 @@
+/* Copyright (C) 1995-2016 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 1995.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <stdlib.h>
+
+/* Conversion table.  */
+static const char conv_table[64] =
+{
+  '.', '/', '0', '1', '2', '3', '4', '5',
+  '6', '7', '8', '9', 'A', 'B', 'C', 'D',
+  'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L',
+  'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T',
+  'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b',
+  'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',
+  'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r',
+  's', 't', 'u', 'v', 'w', 'x', 'y', 'z'
+};
+
+char *
+l64a (long int n)
+{
+  unsigned long int m = (unsigned long int) n;
+  static char result[7];
+  int cnt;
+
+  /* The standard says that only 32 bits are used.  */
+  m &= 0xffffffff;
+
+  if (m == 0ul)
+    /* The value for N == 0 is defined to be the empty string. */
+    return (char *) "";
+
+  for (cnt = 0; m > 0ul; ++cnt)
+    {
+      result[cnt] = conv_table[m & 0x3f];
+      m >>= 6;
+    }
+  result[cnt] = '\0';
+
+  return result;
+}
