* include/stdlib.h: Add libc_hidden_proto for strto*, __strto*_l.

Remove __strto*_l inlines.
	* include/wchar.h: Add libc_hidden_proto for wcsto*, __wcsto*_l.
	* stdlib/strtod.c: Add libc_hidden_def.
	* stdlib/strtod_l.c: Likewise.
	* stdlib/strtold.c [__LONG_DOUBLE_MATH_OPTIONAL]: Add libc_hidden_proto
	for __new_strtold and __new_wcstold.
	* sysdeps/ieee754/ldbl-128ibm/strtold_l.c: Add libc_hidden_proto for
	__STRTOF, STRTOF.
	* stdlib/strtol.c: Add libc_hidden_def.
	* stdlib/strtol_l.c: Likewise.
	* sysdeps/wordsize-64/strtol.c: Add libc_hidden_ver for strtoll and
	strtoq.

	* scripts/data/localplt-powerpc-linux-gnu.data: New file.

	* scripts/data/localplt-x86_64-linux-gnu.data: File renamed to ...
	* scripts/data/localplt-generic.data: ... here.
	* elf/Makefile (check-data): Get generic file if no other.
	($(objpfx)check-localplt.out): Make target unconditional.
This commit is contained in:
Roland McGrath 2007-08-07 05:36:32 +00:00
parent eef38c28d1
commit 773e305efc
13 changed files with 87 additions and 59 deletions

View File

@ -1,5 +1,26 @@
2007-08-06 Roland McGrath <roland@redhat.com> 2007-08-06 Roland McGrath <roland@redhat.com>
* include/stdlib.h: Add libc_hidden_proto for strto*, __strto*_l.
Remove __strto*_l inlines.
* include/wchar.h: Add libc_hidden_proto for wcsto*, __wcsto*_l.
* stdlib/strtod.c: Add libc_hidden_def.
* stdlib/strtod_l.c: Likewise.
* stdlib/strtold.c [__LONG_DOUBLE_MATH_OPTIONAL]: Add libc_hidden_proto
for __new_strtold and __new_wcstold.
* sysdeps/ieee754/ldbl-128ibm/strtold_l.c: Add libc_hidden_proto for
__STRTOF, STRTOF.
* stdlib/strtol.c: Add libc_hidden_def.
* stdlib/strtol_l.c: Likewise.
* sysdeps/wordsize-64/strtol.c: Add libc_hidden_ver for strtoll and
strtoq.
* scripts/data/localplt-powerpc-linux-gnu.data: New file.
* scripts/data/localplt-x86_64-linux-gnu.data: File renamed to ...
* scripts/data/localplt-generic.data: ... here.
* elf/Makefile (check-data): Get generic file if no other.
($(objpfx)check-localplt.out): Make target unconditional.
* sysdeps/unix/sysv/linux/dl-osinfo.h (_dl_discover_osversion): * sysdeps/unix/sysv/linux/dl-osinfo.h (_dl_discover_osversion):
Use ElfW(Nhdr). Use ElfW(Nhdr).

View File

@ -837,28 +837,26 @@ $(objpfx)tst-dlmodcount: $(libdl)
$(objpfx)tst-dlmodcount.out: $(test-modules) $(objpfx)tst-dlmodcount.out: $(test-modules)
check-data := $(firstword $(wildcard \ check-data := $(firstword $(wildcard \
$(foreach M,$(config-machine) $(base-machine),\ $(patsubst %,../scripts/data/localplt-%.data,\
../scripts/data/localplt-$M-$(config-os).data))) $(addsuffix -$(config-os),\
ifneq (,$(check-data)) $(config-machine) $(base-machine))\
generic)))
tests: $(objpfx)check-localplt.out tests: $(objpfx)check-localplt.out
ifeq ($(have-thread-library),yes) ifeq ($(have-thread-library),yes)
thread-dso := $(filter-out %_nonshared.a, $(shared-thread-library)) thread-dso := $(filter-out %_nonshared.a, $(shared-thread-library))
endif endif
$(objpfx)check-localplt.out: $(objpfx)check-localplt $(common-objpfx)libc.so \ $(objpfx)check-localplt.out: $(objpfx)check-localplt \
$(common-objpfx)libc.so \
$(common-objpfx)math/libm.so $(thread-dso) \ $(common-objpfx)math/libm.so $(thread-dso) \
$(common-objpfx)rt/librt.so \ $(common-objpfx)rt/librt.so \
$(common-objpfx)dlfcn/libdl.so \ $(common-objpfx)dlfcn/libdl.so \
$(check-data) $(check-data)
$(objpfx)check-localplt $(common-objpfx)libc.so \ $(dir $<)$(notdir $<) $(filter-out $< $(check-data),$^) | \
$(common-objpfx)math/libm.so $(thread-dso) \
$(common-objpfx)rt/librt.so \
$(common-objpfx)dlfcn/libdl.so | \
LC_ALL=C sort | \ LC_ALL=C sort | \
diff -u $(check-data) - > $@ diff -u $(check-data) - > $@
endif endif
endif
$(objpfx)tst-dlopenrpathmod.so: $(libdl) $(objpfx)tst-dlopenrpathmod.so: $(libdl)
$(objpfx)tst-dlopenrpath: $(objpfx)tst-dlopenrpathmod.so $(libdl) $(objpfx)tst-dlopenrpath: $(objpfx)tst-dlopenrpathmod.so $(libdl)

View File

@ -19,6 +19,13 @@ extern __typeof (strtoull_l) __strtoull_l;
extern __typeof (strtod_l) __strtod_l; extern __typeof (strtod_l) __strtod_l;
extern __typeof (strtof_l) __strtof_l; extern __typeof (strtof_l) __strtof_l;
extern __typeof (strtold_l) __strtold_l; extern __typeof (strtold_l) __strtold_l;
libc_hidden_proto (__strtol_l)
libc_hidden_proto (__strtoul_l)
libc_hidden_proto (__strtoll_l)
libc_hidden_proto (__strtoull_l)
libc_hidden_proto (__strtod_l)
libc_hidden_proto (__strtof_l)
libc_hidden_proto (__strtold_l)
libc_hidden_proto (exit) libc_hidden_proto (exit)
libc_hidden_proto (abort) libc_hidden_proto (abort)
@ -170,48 +177,13 @@ libc_hidden_proto (____strtoll_l_internal)
libc_hidden_proto (____strtoul_l_internal) libc_hidden_proto (____strtoul_l_internal)
libc_hidden_proto (____strtoull_l_internal) libc_hidden_proto (____strtoull_l_internal)
extern __inline double libc_hidden_proto (strtof)
__NTH (__strtod_l (__const char *__restrict __nptr, char **__restrict __endptr, libc_hidden_proto (strtod)
__locale_t __loc)) libc_hidden_proto (strtold)
{ libc_hidden_proto (strtol)
return ____strtod_l_internal (__nptr, __endptr, 0, __loc); libc_hidden_proto (strtoll)
} libc_hidden_proto (strtoul)
extern __inline long int libc_hidden_proto (strtoull)
__NTH (__strtol_l (__const char *__restrict __nptr, char **__restrict __endptr,
int __base, __locale_t __loc))
{
return ____strtol_l_internal (__nptr, __endptr, __base, 0, __loc);
}
extern __inline unsigned long int
__NTH (__strtoul_l (__const char *__restrict __nptr,
char **__restrict __endptr, int __base, __locale_t __loc))
{
return ____strtoul_l_internal (__nptr, __endptr, __base, 0, __loc);
}
extern __inline float
__NTH (__strtof_l (__const char *__restrict __nptr, char **__restrict __endptr,
__locale_t __loc))
{
return ____strtof_l_internal (__nptr, __endptr, 0, __loc);
}
extern __inline long double
__NTH (__strtold_l (__const char *__restrict __nptr,
char **__restrict __endptr, __locale_t __loc))
{
return ____strtold_l_internal (__nptr, __endptr, 0, __loc);
}
__extension__ extern __inline long long int
__NTH (__strtoll_l (__const char *__restrict __nptr,
char **__restrict __endptr, int __base, __locale_t __loc))
{
return ____strtoll_l_internal (__nptr, __endptr, __base, 0, __loc);
}
__extension__ extern __inline unsigned long long int
__NTH (__strtoull_l (__const char * __restrict __nptr,
char **__restrict __endptr, int __base, __locale_t __loc))
{
return ____strtoull_l_internal (__nptr, __endptr, __base, 0, __loc);
}
extern char *__ecvt (double __value, int __ndigit, int *__restrict __decpt, extern char *__ecvt (double __value, int __ndigit, int *__restrict __decpt,
int *__restrict __sign); int *__restrict __sign);

View File

@ -15,6 +15,13 @@ extern __typeof (wcstod_l) __wcstod_l;
extern __typeof (wcstof_l) __wcstof_l; extern __typeof (wcstof_l) __wcstof_l;
extern __typeof (wcstold_l) __wcstold_l; extern __typeof (wcstold_l) __wcstold_l;
extern __typeof (wcsftime_l) __wcsftime_l; extern __typeof (wcsftime_l) __wcsftime_l;
libc_hidden_proto (__wcstol_l)
libc_hidden_proto (__wcstoul_l)
libc_hidden_proto (__wcstoll_l)
libc_hidden_proto (__wcstoull_l)
libc_hidden_proto (__wcstod_l)
libc_hidden_proto (__wcstof_l)
libc_hidden_proto (__wcstold_l)
libc_hidden_proto (__wcsftime_l) libc_hidden_proto (__wcsftime_l)
@ -51,6 +58,13 @@ libc_hidden_proto (__wcstol_internal)
libc_hidden_proto (__wcstoll_internal) libc_hidden_proto (__wcstoll_internal)
libc_hidden_proto (__wcstoul_internal) libc_hidden_proto (__wcstoul_internal)
libc_hidden_proto (__wcstoull_internal) libc_hidden_proto (__wcstoull_internal)
libc_hidden_proto (wcstof)
libc_hidden_proto (wcstod)
libc_hidden_proto (wcstold)
libc_hidden_proto (wcstol)
libc_hidden_proto (wcstoll)
libc_hidden_proto (wcstoul)
libc_hidden_proto (wcstoull)
libc_hidden_proto (__wcscasecmp_l) libc_hidden_proto (__wcscasecmp_l)
libc_hidden_proto (__wcsncasecmp_l) libc_hidden_proto (__wcsncasecmp_l)

View File

@ -0,0 +1,7 @@
libc.so: _Unwind_Find_FDE
libc.so: calloc
libc.so: free
libc.so: malloc
libc.so: memalign
libc.so: realloc
libm.so: matherr

View File

@ -1,6 +1,6 @@
/* Read decimal floating point numbers. /* Read decimal floating point numbers.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Copyright (C) 1995-2002, 2003, 2004, 2006 Free Software Foundation, Inc. Copyright (C) 1995-2002,2003,2004,2006,2007 Free Software Foundation, Inc.
Contributed by Ulrich Drepper <drepper@gnu.org>, 1995. Contributed by Ulrich Drepper <drepper@gnu.org>, 1995.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -69,6 +69,9 @@ STRTOF (nptr, endptr)
{ {
return INTERNAL(STRTOF_L) (nptr, endptr, 0, _NL_CURRENT_LOCALE); return INTERNAL(STRTOF_L) (nptr, endptr, 0, _NL_CURRENT_LOCALE);
} }
#if defined _LIBC
libc_hidden_def (STRTOF)
#endif
#ifdef LONG_DOUBLE_COMPAT #ifdef LONG_DOUBLE_COMPAT
# if LONG_DOUBLE_COMPAT(libc, GLIBC_2_0) # if LONG_DOUBLE_COMPAT(libc, GLIBC_2_0)

View File

@ -1599,6 +1599,10 @@ __STRTOF (nptr, endptr, loc)
{ {
return ____STRTOF_INTERNAL (nptr, endptr, 0, loc); return ____STRTOF_INTERNAL (nptr, endptr, 0, loc);
} }
#if defined _LIBC
libc_hidden_def (__STRTOF)
libc_hidden_ver (__STRTOF, STRTOF)
#endif
weak_alias (__STRTOF, STRTOF) weak_alias (__STRTOF, STRTOF)
#ifdef LONG_DOUBLE_COMPAT #ifdef LONG_DOUBLE_COMPAT

View File

@ -1,5 +1,5 @@
/* Convert string representation of a number into an integer value. /* Convert string representation of a number into an integer value.
Copyright (C) 1991,92,94,95,96,97,98,99,2000,2001,2002,2003,2004 Copyright (C) 1991,92,94,95,96,97,98,99,2000,2001,2002,2003,2004,2007
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.
@ -109,3 +109,4 @@ strtol (nptr, endptr, base)
{ {
return INTERNAL (__strtol_l) (nptr, endptr, base, 0, _NL_CURRENT_LOCALE); return INTERNAL (__strtol_l) (nptr, endptr, base, 0, _NL_CURRENT_LOCALE);
} }
libc_hidden_def (strtol)

View File

@ -1,5 +1,5 @@
/* Convert string representing a number to integer value, using given locale. /* Convert string representing a number to integer value, using given locale.
Copyright (C) 1997, 2002, 2004, 2006 Free Software Foundation, Inc. Copyright (C) 1997, 2002, 2004, 2006, 2007 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.
@ -561,4 +561,5 @@ __strtol_l (nptr, endptr, base, loc)
{ {
return INTERNAL (__strtol_l) (nptr, endptr, base, 0, loc); return INTERNAL (__strtol_l) (nptr, endptr, base, 0, loc);
} }
libc_hidden_def (__strtol_l)
weak_alias (__strtol_l, strtol_l) weak_alias (__strtol_l, strtol_l)

View File

@ -1,6 +1,6 @@
/* Read decimal floating point numbers. /* Read decimal floating point numbers.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Copyright (C) 1995-2002, 2003, 2004, 2006 Free Software Foundation, Inc. Copyright (C) 1995-2002,2003,2004,2006,2007 Free Software Foundation, Inc.
Contributed by Ulrich Drepper <drepper@gnu.org>, 1995. Contributed by Ulrich Drepper <drepper@gnu.org>, 1995.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -33,6 +33,8 @@ long double ____new_wcstold_internal (const wchar_t *, wchar_t **, int);
long double __new_wcstold (const wchar_t *, wchar_t **); long double __new_wcstold (const wchar_t *, wchar_t **);
libc_hidden_proto (____new_strtold_internal) libc_hidden_proto (____new_strtold_internal)
libc_hidden_proto (____new_wcstold_internal) libc_hidden_proto (____new_wcstold_internal)
libc_hidden_proto (__new_strtold)
libc_hidden_proto (__new_wcstold)
#else #else
# define NEW(x) x # define NEW(x) x
#endif #endif

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1999, 2006 Free Software Foundation, Inc. /* Copyright (C) 1999, 2006, 2007 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -37,6 +37,9 @@ extern long double ____new_strtold_l (const char *, char **, __locale_t);
# define __STRTOF ____new_strtold_l # define __STRTOF ____new_strtold_l
# define ____STRTOF_INTERNAL ____strtold_l_internal # define ____STRTOF_INTERNAL ____strtold_l_internal
#endif #endif
extern __typeof (__STRTOF) STRTOF;
libc_hidden_proto (__STRTOF)
libc_hidden_proto (STRTOF)
#define MPN2FLOAT __mpn_construct_long_double #define MPN2FLOAT __mpn_construct_long_double
#define FLOAT_HUGE_VAL HUGE_VALL #define FLOAT_HUGE_VAL HUGE_VALL
# define SET_MANTISSA(flt, mant) \ # define SET_MANTISSA(flt, mant) \

View File

@ -11,4 +11,6 @@
strong_alias (__strtol_internal, __strtoll_internal) strong_alias (__strtol_internal, __strtoll_internal)
libc_hidden_ver (__strtol_internal, __strtoll_internal) libc_hidden_ver (__strtol_internal, __strtoll_internal)
weak_alias (strtol, strtoll) weak_alias (strtol, strtoll)
libc_hidden_ver (strtol, strtoll)
weak_alias (strtol, strtoq) weak_alias (strtol, strtoq)
libc_hidden_ver (strtol, strtoq)