diff --git a/ap/build/uClibc/libc/stdlib/l64a.c b/ap/build/uClibc/libc/stdlib/l64a.c
new file mode 100644
index 0000000..1f0dfb7
--- /dev/null
+++ b/ap/build/uClibc/libc/stdlib/l64a.c
@@ -0,0 +1,56 @@
+/* Copyright (C) 1995, 1996, 2000 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, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#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];
+  char *p;
+
+  /* The standard says that only 32 bits are used.  */
+  if (sizeof(m) != 4)
+    m &= 0xffffffff;
+
+  /* The value for N == 0 is defined to be the empty string,
+   * this code provides that as well. */
+  p = result;
+  while (m)
+    {
+      *p++ = conv_table[m & 0x3f];
+      m >>= 6;
+    }
+  *p = '\0';
+
+  return result;
+}
