Selaa lähdekoodia

- Add strtouq alias (to strtoul) for 64bit

The strtouq alias was only available on 32bit, breaking compilation of stuff
using strtouq on 64bit machines. At the same time use the correct return
type (u_quad_t).

Signed-of-by: Peter Korsgaard <jacmet@sunsite.dk>
Bernhard Reutner-Fischer 15 vuotta sitten
vanhempi
commit
6886887bc8
2 muutettua tiedostoa jossa 6 lisäystä ja 1 poistoa
  1. 3 1
      include/stdlib.h
  2. 3 0
      libc/stdlib/stdlib.c

+ 3 - 1
include/stdlib.h

@@ -209,6 +209,8 @@ libc_hidden_proto(strtoul)
 __END_NAMESPACE_STD
 __END_NAMESPACE_STD
 
 
 #ifdef __USE_BSD
 #ifdef __USE_BSD
+#include <sys/types.h> /* for u_quad_t */
+
 /* Convert a string to a quadword integer.  */
 /* Convert a string to a quadword integer.  */
 __extension__
 __extension__
 extern long long int strtoq (__const char *__restrict __nptr,
 extern long long int strtoq (__const char *__restrict __nptr,
@@ -216,7 +218,7 @@ extern long long int strtoq (__const char *__restrict __nptr,
      __THROW __nonnull ((1)) __wur;
      __THROW __nonnull ((1)) __wur;
 /* Convert a string to an unsigned quadword integer.  */
 /* Convert a string to an unsigned quadword integer.  */
 __extension__
 __extension__
-extern unsigned long long int strtouq (__const char *__restrict __nptr,
+extern u_quad_t strtouq (__const char *__restrict __nptr,
 				       char **__restrict __endptr, int __base)
 				       char **__restrict __endptr, int __base)
      __THROW __nonnull ((1)) __wur;
      __THROW __nonnull ((1)) __wur;
 #endif /* GCC and use BSD.  */
 #endif /* GCC and use BSD.  */

+ 3 - 0
libc/stdlib/stdlib.c

@@ -401,6 +401,9 @@ extern __typeof(__XL_NPP(strtoul)) __XL_NPP(strtoull);
 libc_hidden_proto(__XL_NPP(strtoull))
 libc_hidden_proto(__XL_NPP(strtoull))
 strong_alias(__XL_NPP(strtoul),__XL_NPP(strtoull))
 strong_alias(__XL_NPP(strtoul),__XL_NPP(strtoull))
 libc_hidden_def(__XL_NPP(strtoull))
 libc_hidden_def(__XL_NPP(strtoull))
+#if !defined(L_strtoul_l)
+strong_alias(strtoul,strtouq)
+#endif
 #endif
 #endif