* stdlib/strtod_l.c: Move _tens_in_limb definition to...
* stdlib/tens_in_limb.c: ...here. New file.
2008-03-07 Ulrich Drepper <drepper@redhat.com>
+ * stdlib/Makefile (aux): Add tens_in_limb.
+ * stdlib/strtod_l.c: Move _tens_in_limb definition to...
+ * stdlib/tens_in_limb.c: ...here. New file.
+
[BZ #5778]
* sysdeps/unix/sysv/linux/pathconf.h: Declare
__statfs_chown_restricted.
rpmatch strfmon strfmon_l getsubopt xpg_basename fmtmsg \
strtoimax strtoumax wcstoimax wcstoumax \
getcontext setcontext makecontext swapcontext
-aux = grouping groupingwc
+aux = grouping groupingwc tens_in_limb
# These routines will be omitted from the libc shared object.
# Instead the static object files will be included in a special archive
/* Convert string representing a number to float value, using given locale.
- Copyright (C) 1997,1998,2002,2004,2005,2006,2007
+ Copyright (C) 1997,1998,2002,2004,2005,2006,2007,2008
Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
# error "mp_limb_t size " BITS_PER_MP_LIMB "not accounted for"
#endif
-
-/* Local data structure. */
-static const mp_limb_t _tens_in_limb[MAX_DIG_PER_LIMB + 1] =
-{ 0, 10, 100,
- 1000, 10000, 100000L,
- 1000000L, 10000000L, 100000000L,
- 1000000000L
-#if BITS_PER_MP_LIMB > 32
- , 10000000000ULL, 100000000000ULL,
- 1000000000000ULL, 10000000000000ULL, 100000000000000ULL,
- 1000000000000000ULL, 10000000000000000ULL, 100000000000000000ULL,
- 1000000000000000000ULL, 10000000000000000000ULL
-#endif
-#if BITS_PER_MP_LIMB > 64
- #error "Need to expand tens_in_limb table to" MAX_DIG_PER_LIMB
-#endif
-};
+extern const mp_limb_t _tens_in_limb[MAX_DIG_PER_LIMB + 1];
\f
#ifndef howmany
#define howmany(x,y) (((x)+((y)-1))/(y))
--- /dev/null
+#include <gmp.h>
+
+
+/* Definitions according to limb size used. */
+#if BITS_PER_MP_LIMB == 32
+# define MAX_DIG_PER_LIMB 9
+# define MAX_FAC_PER_LIMB 1000000000UL
+#elif BITS_PER_MP_LIMB == 64
+# define MAX_DIG_PER_LIMB 19
+# define MAX_FAC_PER_LIMB 10000000000000000000ULL
+#else
+# error "mp_limb_t size " BITS_PER_MP_LIMB "not accounted for"
+#endif
+
+
+/* Local data structure. */
+const mp_limb_t _tens_in_limb[MAX_DIG_PER_LIMB + 1] =
+{ 0, 10, 100,
+ 1000, 10000, 100000L,
+ 1000000L, 10000000L, 100000000L,
+ 1000000000L
+#if BITS_PER_MP_LIMB > 32
+ , 10000000000ULL, 100000000000ULL,
+ 1000000000000ULL, 10000000000000ULL, 100000000000000ULL,
+ 1000000000000000ULL, 10000000000000000ULL, 100000000000000000ULL,
+ 1000000000000000000ULL, 10000000000000000000ULL
+#endif
+#if BITS_PER_MP_LIMB > 64
+ #error "Need to expand tens_in_limb table to" MAX_DIG_PER_LIMB
+#endif
+};