mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-21 12:30:06 +00:00
* 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.
This commit is contained in:
parent
443db17889
commit
72f1012788
@ -1,5 +1,9 @@
|
|||||||
2008-03-07 Ulrich Drepper <drepper@redhat.com>
|
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]
|
[BZ #5778]
|
||||||
* sysdeps/unix/sysv/linux/pathconf.h: Declare
|
* sysdeps/unix/sysv/linux/pathconf.h: Declare
|
||||||
__statfs_chown_restricted.
|
__statfs_chown_restricted.
|
||||||
|
@ -52,7 +52,7 @@ routines := \
|
|||||||
rpmatch strfmon strfmon_l getsubopt xpg_basename fmtmsg \
|
rpmatch strfmon strfmon_l getsubopt xpg_basename fmtmsg \
|
||||||
strtoimax strtoumax wcstoimax wcstoumax \
|
strtoimax strtoumax wcstoimax wcstoumax \
|
||||||
getcontext setcontext makecontext swapcontext
|
getcontext setcontext makecontext swapcontext
|
||||||
aux = grouping groupingwc
|
aux = grouping groupingwc tens_in_limb
|
||||||
|
|
||||||
# These routines will be omitted from the libc shared object.
|
# These routines will be omitted from the libc shared object.
|
||||||
# Instead the static object files will be included in a special archive
|
# Instead the static object files will be included in a special archive
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Convert string representing a number to float value, using given locale.
|
/* 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.
|
Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
||||||
@ -148,23 +148,7 @@ extern FLOAT MPN2FLOAT (mp_srcptr mpn, int exponent, int negative);
|
|||||||
# error "mp_limb_t size " BITS_PER_MP_LIMB "not accounted for"
|
# error "mp_limb_t size " BITS_PER_MP_LIMB "not accounted for"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
extern const mp_limb_t _tens_in_limb[MAX_DIG_PER_LIMB + 1];
|
||||||
/* 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
|
|
||||||
};
|
|
||||||
|
|
||||||
#ifndef howmany
|
#ifndef howmany
|
||||||
#define howmany(x,y) (((x)+((y)-1))/(y))
|
#define howmany(x,y) (((x)+((y)-1))/(y))
|
||||||
|
31
stdlib/tens_in_limb.c
Normal file
31
stdlib/tens_in_limb.c
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
#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
|
||||||
|
};
|
Loading…
Reference in New Issue
Block a user