+#if defined (__GNUC__) && defined (__USE_BSD)
+/* Convert a string to a quadword integer. */
+extern long long int strtoq __P ((__const char *__nptr, char **__endptr,
+ int __base));
+/* Convert a string to an unsigned quadword integer. */
+extern unsigned long long int strtouq __P ((__const char *__nptr,
+ char **__endptr, int __base));
+#endif /* GCC and use BSD. */
+
+
+/* The internal entry points for `strtoX' take an extra flag argument
+ saying whether or not to parse locale-dependent number grouping. */
+
+extern double __strtod_internal (__const char *__nptr,
+ char **__endptr, int __group);
+extern float __strtof_internal (__const char *__nptr, char **__endptr,
+ int __group);
+extern __long_double_t __strtold_internal (__const char *__nptr,
+ char **__endptr, int __group);
+extern long int __strtol_internal (__const char *__nptr, char **__endptr,
+ int __base, int __group);
+extern unsigned long int __strtoul_internal (__const char *__nptr,
+ char **__endptr, int __base,
+ int __group);
+extern long long int __strtoq_internal (__const char *__nptr, char **__endptr,
+ int __base, int __group);
+extern unsigned long long int __strtouq_internal (__const char *__nptr,
+ char **__endptr, int __base,
+ int __group);
+
+#if defined (__OPTIMIZE__) && __GNUC__ >= 2
+/* Define inline functions which call the internal entry points. */
+
+extern __inline double strtod (__const char *__nptr, char **__endptr)
+{ return __strtod_internal (__nptr, __endptr, 0); }
+extern __inline long int strtol (__const char *__nptr,
+ char **__endptr, int __base)
+{ return __strtol_internal (__nptr, __endptr, __base, 0); }
+extern __inline unsigned long int strtoul (__const char *__nptr,
+ char **__endptr, int __base)
+{ return __strtoul_internal (__nptr, __endptr, __base, 0); }
+
+#ifdef __USE_GNU
+extern __inline float strtof (__const char *__nptr, char **__endptr)
+{ return __strtof_internal (__nptr, __endptr, 0); }
+extern __inline __long_double_t strtold (__const char *__nptr, char **__endptr)
+{ return __strtold_internal (__nptr, __endptr, 0); }
+#endif
+
+#ifdef __USE_BSD
+extern __inline long long int strtoq (__const char *__nptr, char **__endptr,
+ int __base)
+{ return __strtoq_internal (__nptr, __endptr, __base, 0); }
+extern __inline unsigned long long int strtouq (__const char *__nptr,
+ char **__endptr, int __base)
+{ return __strtouq_internal (__nptr, __endptr, __base, 0); }
+#endif
+
+extern __inline double atof (__const char *__nptr)
+{ return strtod (__nptr, (char **) NULL); }
+extern __inline int atoi (__const char *__nptr)
+{ return (int) strtol (__nptr, (char **) NULL, 10); }
+extern __inline long int atol (__const char *__nptr)
+{ return strtol (__nptr, (char **) NULL, 10); }
+#endif /* Optimizing GCC >=2. */
+
+
+#ifdef __USE_SVID
+/* Convert N to base 64 using the digits "./0-9A-Za-z", least-significant
+ digit first. Returns a pointer to static storage overwritten by the
+ next call. */
+extern char *l64a __P ((long int __n));
+
+/* Read a number from a string in base 64 as above. */
+extern long int a64l __P ((const char *));
+#endif