Mark __ptsname_internal, __mktime_internal and __fopen_internal with
attribute_hidden to allow direct access to them within libc.so and
libc.a without using GOT nor PLT.
[BZ #18822]
* include/stdlib.h (__ptsname_internal): Add attribute_hidden.
* include/time.h (__mktime_internal): Likewise.
* libio/iolibio.h (__fopen_internal): Likewise.
<locale.h> is specified to define locale_t in POSIX.1-2008, and so are
all of the headers that define functions that take locale_t arguments.
Under _GNU_SOURCE, the additional headers that define such functions
have also always defined locale_t. Therefore, there is no need to use
__locale_t in public function prototypes, nor in any internal code.
* ctype/ctype-c99_l.c, ctype/ctype.h, ctype/ctype_l.c
* include/monetary.h, include/stdlib.h, include/time.h
* include/wchar.h, locale/duplocale.c, locale/freelocale.c
* locale/global-locale.c, locale/langinfo.h, locale/locale.h
* locale/localeinfo.h, locale/newlocale.c
* locale/nl_langinfo_l.c, locale/uselocale.c
* localedata/bug-usesetlocale.c, localedata/tst-xlocale2.c
* stdio-common/vfscanf.c, stdlib/monetary.h, stdlib/stdlib.h
* stdlib/strfmon_l.c, stdlib/strtod_l.c, stdlib/strtof_l.c
* stdlib/strtol.c, stdlib/strtol_l.c, stdlib/strtold_l.c
* stdlib/strtoll_l.c, stdlib/strtoul_l.c, stdlib/strtoull_l.c
* string/strcasecmp.c, string/strcoll_l.c, string/string.h
* string/strings.h, string/strncase.c, string/strxfrm_l.c
* sysdeps/ieee754/float128/strtof128_l.c
* sysdeps/ieee754/float128/wcstof128.c
* sysdeps/ieee754/float128/wcstof128_l.c
* sysdeps/ieee754/ldbl-128ibm/strtold_l.c
* sysdeps/ieee754/ldbl-64-128/strtold_l.c
* sysdeps/ieee754/ldbl-opt/nldbl-compat.c
* sysdeps/ieee754/ldbl-opt/nldbl-strfmon_l.c
* sysdeps/ieee754/ldbl-opt/nldbl-strtold_l.c
* sysdeps/ieee754/ldbl-opt/nldbl-wcstold_l.c
* sysdeps/powerpc/powerpc32/power7/strcasecmp.S
* sysdeps/powerpc/powerpc64/power7/strcasecmp.S
* sysdeps/x86_64/strcasecmp_l-nonascii.c
* sysdeps/x86_64/strncase_l-nonascii.c, time/strftime_l.c
* time/strptime_l.c, time/time.h, wcsmbs/mbsrtowcs_l.c
* wcsmbs/wchar.h, wcsmbs/wcscasecmp.c, wcsmbs/wcsncase.c
* wcsmbs/wcstod.c, wcsmbs/wcstod_l.c, wcsmbs/wcstof.c
* wcsmbs/wcstof_l.c, wcsmbs/wcstol_l.c, wcsmbs/wcstold.c
* wcsmbs/wcstold_l.c, wcsmbs/wcstoll_l.c, wcsmbs/wcstoul_l.c
* wcsmbs/wcstoull_l.c, wctype/iswctype_l.c
* wctype/towctrans_l.c, wctype/wcfuncs_l.c
* wctype/wctrans_l.c, wctype/wctype.h, wctype/wctype_l.c:
Change all uses of __locale_t to locale_t.
The implementations are contained with sysdeps/ieee754/float128 as
they are only built when _Float128 is enabled within libc/m.
* include/gmp.h (__mpn_construct_float128): New declaration.
* include/stdlib.h: Include bits/floatn.h for _Float128 tests.
(__strtof128_l): New declaration.
(__strtof128_nan): Likewise.
(__wcstof128_nan): Likewise.
(__strtof128_internal): Likewise.
(____strtof128_l_internal): Likewise.
* include/wchar.h: Include bits/floatn.h for _Float128 tests.
(__wcstof128_l): New declaration.
(__wcstof128_internal): Likewise.
* stdlib/Makefile (bug-strtod2): Link libm too.
* stdlib/stdlib.h (strtof128): New declaration.
(strtof128_l): Likewise.
* stdlib/tst-strtod-nan-locale-main.c: Updated to use
tst-strtod.h macros to ensure float128 gets tested too.
* stdlib/tst-strtod-round-skeleton.c (CHOOSE_f128): New macro.
* stdlib/tst-strtod.h: Include bits/floatn.h for _Float128
tests.
(IF_FLOAT128): New macro.
(GEN_TEST_STRTOD): Update to optionally include _Float128 in
the tests.
(STRTOD_TEST_FOREACH): Likewise.
* sysdeps/ieee754/float128/Makefile: Insert new strtof128 and
wcstof128 functions into libc.
* sysdeps/ieee754/float128/Versions: Add exports for the above
new functions.
* sysdeps/ieee754/float128/mpn2float128.c: New file.
* sysdeps/ieee754/float128/strtod_nan_float128.h: New file.
* sysdeps/ieee754/float128/strtof128.c: New file.
* sysdeps/ieee754/float128/strtof128_l.c: New file.
* sysdeps/ieee754/float128/strtof128_nan.c: New file.
* sysdeps/ieee754/float128/wcstof128.c: New file.
* sysdeps/ieee754/float128/wcstof128_l.c: New file.
* sysdeps/ieee754/float128/wcstof128_nan.c: New fike.
* wcsmbs/Makefile: (CFLAGS-wcstof128.c): Append strtox-CFLAGS.
(CFLAGS-wcstof128_l): Likewise.
* wcsmbs/wchar.h: Include bits/floatn.h for _Float128 tests.
(wcstof128): New declaration.
(wcstof128_l): Likewise.
This patch adds a new build module called 'testsuite'.
IS_IN (testsuite) implies _ISOMAC, as do IS_IN_build and __cplusplus
(which means several ad-hoc tests for __cplusplus can go away).
libc-symbols.h now suppresses almost all of *itself* when _ISOMAC is
defined; in particular, _ISOMAC mode does not get config.h
automatically anymore.
There are still quite a few tests that need to see internal gunk of
one variety or another. For them, we now have 'tests-internal' and
'test-internal-extras'; files in this category will still be compiled
with MODULE_NAME=nonlib, and everything proceeds as it always has.
The bulk of this patch is moving tests from 'tests' to
'tests-internal'. There is also 'tests-static-internal', which has
the same effect on files in 'tests-static', and 'modules-names-tests',
which has the *inverse* effect on files in 'modules-names' (it's
inverted because most of the things in modules-names are *not* tests).
For both of these, the file must appear in *both* the new variable and
the old one.
There is also now a special case for when libc-symbols.h is included
without MODULE_NAME being defined at all. (This happens during the
creation of libc-modules.h, and also when preprocessing Versions
files.) When this happens, IS_IN is set to be always false and
_ISOMAC is *not* defined, which was the status quo, but now it's
explicit.
The remaining changes to C source files in this patch seemed likely to
cause problems in the absence of the main change. They should be
relatively self-explanatory. In a few cases I duplicated a definition
from an internal header rather than move the test to tests-internal;
this was a judgement call each time and I'm happy to change those
however reviewers feel is more appropriate.
* Makerules: New subdir configuration variables 'tests-internal'
and 'test-internal-extras'. Test files in these categories will
still be compiled with MODULE_NAME=nonlib. Test files in the
existing categories (tests, xtests, test-srcs, test-extras) are
now compiled with MODULE_NAME=testsuite.
New subdir configuration variable 'modules-names-tests'. Files
which are in both 'modules-names' and 'modules-names-tests' will
be compiled with MODULE_NAME=testsuite instead of
MODULE_NAME=extramodules.
(gen-as-const-headers): Move to tests-internal.
(do-tests-clean, common-mostlyclean): Support tests-internal.
* Makeconfig (built-modules): Add testsuite.
* Makefile: Change libof-check-installed-headers-c and
libof-check-installed-headers-cxx to 'testsuite'.
* Rules: Likewise. Support tests-internal.
* benchtests/strcoll-inputs/filelist#en_US.UTF-8:
Remove extra-modules.mk.
* config.h.in: Don't check for __OPTIMIZE__ or __FAST_MATH__ here.
* include/libc-symbols.h: Move definitions of _GNU_SOURCE,
PASTE_NAME, PASTE_NAME1, IN_MODULE, IS_IN, and IS_IN_LIB to the
very top of the file and rationalize their order.
If MODULE_NAME is not defined at all, define IS_IN to always be
false, and don't define _ISOMAC.
If any of IS_IN (testsuite), IS_IN_build, or __cplusplus are
true, define _ISOMAC and suppress everything else in this file,
starting with the inclusion of config.h.
Do check for inappropriate definitions of __OPTIMIZE__ and
__FAST_MATH__ here, but only if _ISOMAC is not defined.
Correct some out-of-date commentary.
* include/math.h: If _ISOMAC is defined, undefine NO_LONG_DOUBLE
and _Mlong_double_ before including math.h.
* include/string.h: If _ISOMAC is defined, don't expose
_STRING_ARCH_unaligned. Move a comment to a more appropriate
location.
* include/errno.h, include/stdio.h, include/stdlib.h, include/string.h
* include/time.h, include/unistd.h, include/wchar.h: No need to
check __cplusplus nor use __BEGIN_DECLS/__END_DECLS.
* misc/sys/cdefs.h (__NTHNL): New macro.
* sysdeps/m68k/m680x0/fpu/bits/mathinline.h
(__m81_defun): Use __NTHNL to avoid errors with GCC 6.
* elf/tst-env-setuid-tunables.c: Include config.h with _LIBC
defined, for HAVE_TUNABLES.
* inet/tst-checks-posix.c: No need to define _ISOMAC.
* intl/tst-gettext2.c: Provide own definition of N_.
* math/test-signgam-finite-c99.c: No need to define _ISOMAC.
* math/test-signgam-main.c: No need to define _ISOMAC.
* stdlib/tst-strtod.c: Convert to test-driver. Split locale_test to...
* stdlib/tst-strtod1i.c: ...this new file.
* stdlib/tst-strtod5.c: Convert to test-driver and add copyright notice.
Split tests of __strtod_internal to...
* stdlib/tst-strtod5i.c: ...this new file.
* string/test-string.h: Include stdint.h. Duplicate definition of
inhibit_loop_to_libcall here (from libc-symbols.h).
* string/test-strstr.c: Provide dummy definition of
libc_hidden_builtin_def when including strstr.c.
* sysdeps/ia64/fpu/libm-symbols.h: Suppress entire file in _ISOMAC
mode; no need to test __STRICT_ANSI__ nor __cplusplus as well.
* sysdeps/x86_64/fpu/math-tests-arch.h: Include cpu-features.h.
Don't include init-arch.h.
* sysdeps/x86_64/multiarch/test-multiarch.h: Include cpu-features.h.
Don't include init-arch.h.
* elf/Makefile: Move tst-ptrguard1-static, tst-stackguard1-static,
tst-tls1-static, tst-tls2-static, tst-tls3-static, loadtest,
unload, unload2, circleload1, neededtest, neededtest2,
neededtest3, neededtest4, tst-tls1, tst-tls2, tst-tls3,
tst-tls6, tst-tls7, tst-tls8, tst-dlmopen2, tst-ptrguard1,
tst-stackguard1, tst-_dl_addr_inside_object, and all of the
ifunc tests to tests-internal.
Don't add $(modules-names) to test-extras.
* inet/Makefile: Move tst-inet6_scopeid_pton to tests-internal.
Add tst-deadline to tests-static-internal.
* malloc/Makefile: Move tst-mallocstate and tst-scratch_buffer to
tests-internal.
* misc/Makefile: Move tst-atomic and tst-atomic-long to tests-internal.
* nptl/Makefile: Move tst-typesizes, tst-rwlock19, tst-sem11,
tst-sem12, tst-sem13, tst-barrier5, tst-signal7, tst-tls3,
tst-tls3-malloc, tst-tls5, tst-stackguard1, tst-sem11-static,
tst-sem12-static, and tst-stackguard1-static to tests-internal.
Link tests-internal with libpthread also.
Don't add $(modules-names) to test-extras.
* nss/Makefile: Move tst-field to tests-internal.
* posix/Makefile: Move bug-regex5, bug-regex20, bug-regex33,
tst-rfc3484, tst-rfc3484-2, and tst-rfc3484-3 to tests-internal.
* stdlib/Makefile: Move tst-strtod1i, tst-strtod3, tst-strtod4,
tst-strtod5i, tst-tls-atexit, and tst-tls-atexit-nodelete to
tests-internal.
* sunrpc/Makefile: Move tst-svc_register to tests-internal.
* sysdeps/powerpc/Makefile: Move test-get_hwcap and
test-get_hwcap-static to tests-internal.
* sysdeps/unix/sysv/linux/Makefile: Move tst-setgetname to
tests-internal.
* sysdeps/x86_64/fpu/Makefile: Add all libmvec test modules to
modules-names-tests.
calls with constant strings shows a small (~10%) performance gain, strdup is
typically used in error reporting code, so not performance critical.
Remove the now unused __need_malloc_and_calloc related defines from stdlib.h.
Rename existing uses of str(n)dup to __str(n)dup so it no longer needs to be
redirected to a builtin. Also building GLIBC with -Os now no longer shows
localplt or linkname space failures (partial fix for BZ #15105 and BZ #19463).
[BZ #15105]
[BZ #19463]
* elf/dl-cache.c (_dl_load_cache_lookup): Use __strdup.
* inet/rcmd.c (rcmd_af): Likewise.
* inet/rexec.c (rexec_af): Likewise.
* intl/dcigettext.c (_LIBC): Likewise.
* intl/finddomain.c (_nl_find_domain): Use strdup expansion.
* locale/loadarchive.c (_nl_load_locale_from_archive): Use __strdup.
* locale/setlocale.c (setlocale): Likewise.
* posix/spawn_faction_addopen.c
(posix_spawn_file_actions_addopen): Likewise.
* stdlib/putenv.c (putenv): Use __strndup.
* sunrpc/svc_simple.c (__registerrpc): Use __strdup.
* sysdeps/posix/getaddrinfo.c (gaih_inet): Use __strdup/__strndup.
* include/stdlib.h (__need_malloc_and_calloc): Remove uses.
(__Need_M_And_C) Remove define/undef.
* stdlib/stdlib.h (__need_malloc_and_calloc): Remove uses.
(__malloc_and_calloc_defined): Remove define.
* string/bits/string2.h (__strdup): Remove define.
(strdup): Likewise.
(__strndup): Likewise.
(strndup): Likewise.
The nan* functions handle their string argument by constructing a
NAN(...) string on the stack as a VLA and passing it to strtod
functions.
This approach has problems discussed in bug 16961 and bug 16962: the
stack usage is unbounded, and it gives incorrect results in certain
cases where the argument is not a valid n-char-sequence.
The natural fix for both issues is to refactor the NaN payload parsing
out of strtod into a separate function that the nan* functions can
call directly, so that no temporary string needs constructing on the
stack at all. This patch does that refactoring in preparation for
fixing those bugs (but without actually using the new functions from
nan* - which will also require exporting them from libc at version
GLIBC_PRIVATE). This patch is not intended to change any user-visible
behavior, so no tests are added (fixes for the above bugs will of
course add tests for them).
This patch builds on my recent fixes for strtol and strtod issues in
Turkish locales. Given those fixes, the parsing of NaN payloads is
locale-independent; thus, the new functions do not need to take a
locale_t argument.
Tested for x86_64, x86, mips64 and powerpc.
* stdlib/strtod_nan.c: New file.
* stdlib/strtod_nan_double.h: Likewise.
* stdlib/strtod_nan_float.h: Likewise.
* stdlib/strtod_nan_main.c: Likewise.
* stdlib/strtod_nan_narrow.h: Likewise.
* stdlib/strtod_nan_wide.h: Likewise.
* stdlib/strtof_nan.c: Likewise.
* stdlib/strtold_nan.c: Likewise.
* sysdeps/ieee754/ldbl-128/strtod_nan_ldouble.h: Likewise.
* sysdeps/ieee754/ldbl-128ibm/strtod_nan_ldouble.h: Likewise.
* sysdeps/ieee754/ldbl-96/strtod_nan_ldouble.h: Likewise.
* wcsmbs/wcstod_nan.c: Likewise.
* wcsmbs/wcstof_nan.c: Likewise.
* wcsmbs/wcstold_nan.c: Likewise.
* stdlib/Makefile (routines): Add strtof_nan, strtod_nan and
strtold_nan.
* wcsmbs/Makefile (routines): Add wcstod_nan, wcstold_nan and
wcstof_nan.
* include/stdlib.h (__strtof_nan): Declare and use
libc_hidden_proto.
(__strtod_nan): Likewise.
(__strtold_nan): Likewise.
(__wcstof_nan): Likewise.
(__wcstod_nan): Likewise.
(__wcstold_nan): Likewise.
* include/wchar.h (____wcstoull_l_internal): Declare.
* stdlib/strtod_l.c: Do not include <ieee754.h>.
(____strtoull_l_internal): Remove declaration.
(STRTOF_NAN): Define macro.
(SET_MANTISSA): Remove macro.
(STRTOULL): Likewise.
(____STRTOF_INTERNAL): Use STRTOF_NAN to parse NaN payload.
* stdlib/strtof_l.c (____strtoull_l_internal): Remove declaration.
(STRTOF_NAN): Define macro.
(SET_MANTISSA): Remove macro.
* sysdeps/ieee754/ldbl-128/strtold_l.c (STRTOF_NAN): Define macro.
(SET_MANTISSA): Remove macro.
* sysdeps/ieee754/ldbl-128ibm/strtold_l.c (STRTOF_NAN): Define
macro.
(SET_MANTISSA): Remove macro.
* sysdeps/ieee754/ldbl-64-128/strtold_l.c (STRTOF_NAN): Define
macro.
(SET_MANTISSA): Remove macro.
* sysdeps/ieee754/ldbl-96/strtold_l.c (STRTOF_NAN): Define macro.
(SET_MANTISSA): Remove macro.
* wcsmbs/wcstod_l.c (____wcstoull_l_internal): Remove declaration.
* wcsmbs/wcstof_l.c (____wcstoull_l_internal): Likewise.
* wcsmbs/wcstold_l.c (____wcstoull_l_internal): Likewise.
Since ld.so internel stdlib functions are only used internally in
ld.so, they can be made hidden.
[BZ #19122]
* include/stdlib.h [IS_IN (rtld)] (unsetenv): Add
attribute_hidden.
[IS_IN (rtld)] (__strtoul_internal): Likewise.
qsort_r is defined in the same file as qsort, but is not an ISO C
function, so should be a weak alias for __qsort_r. The uses in
getaddrinfo should also call __qsort_r, since getaddrinfo is a POSIX
function and qsort_r isn't. This patch implements this. Because nscd
uses the getaddrinfo sources outside libc, as do the tst-rfc3484
tests, a #define of __qsort_r to qsort_r is added there alongside the
similar defines for other libc-internal symbols used in getaddrinfo.
Tested for x86_64 (testsuite, and that disassembly of installed shared
libraries is unchanged by the patch).
[BZ #17571]
* stdlib/msort.c (qsort_r): Rename to __qsort_r and define as weak
alias of __qsort_r.
(qsort): Call __qsort_r instead of qsort_r.
* include/stdlib.h (qsort_r): Do not call libc_hidden_proto.
(__qsort_r): Declare. Call libc_hidden_proto.
* sysdeps/posix/getaddrinfo.c (getaddrinfo): Call __qsort_r
instead of qsort_r.
* nscd/gai.c (__qsort_r): Define to qsort_r.
* posix/tst-rfc3484.c (__qsort_r): Likewise.
* posix/tst-rfc3484-2.c (__qsort_r): Likewise.
* posix/tst-rfc3484-3.c (__qsort_r): Likewise.
This patch removes use of the obsolete INTDEF/INTUSE mechanism for
__cxa_atexit, replacing it with libc_hidden_def/libc_hidden_proto.
Tested for x86_64 that installed stripped shared libraries are
unchanged by the patch.
[BZ #14132]
* stdlib/cxa_atexit.c (__cxa_atexit): Use libc_hidden_def instead
of INTDEF.
* include/stdlib.h (__cxa_atexit_internal): Remove declaration.
(__cxa_atexit): Use libc_hidden_proto.
[!NOT_IN_libc] (__cxa_atexit): Remove macro definition.
This feature is specifically for the C++ compiler to offload calling
thread_local object destructors on thread program exit, to glibc.
This is to overcome the possible complication of destructors of
thread_local objects getting called after the DSO in which they're
defined is unloaded by the dynamic linker. The DSO is marked as
'unloadable' if it has a constructed thread_local object and marked as
'unloadable' again when all the constructed thread_local objects
defined in it are destroyed.
grantpt was performing two consecutive calls to stat with the same
file name. Avoid this by creating a special version of the ptsname
function which allows to pass the stat result back to the caller.
The terminal output etc is not visible in a core file. The new
libc-internal variable __abort_msg will point to a string with the
message which has been printed before the abort in case abort is
called from inside libc. BZ #10217
* include/stdlib.h: Add hidden_proto for qsort_t and adjust protoype
for _quicksort.
* stdlib/msort.c (qsort): Now a wrapper around qsort_r.
(qsort_r): Renamed from qsort. Take additional parameter and pass it
on as third parameter to compare function and _quicksort.
* stdlib/qsort.c (_quicksort): Take additional parameter and pass on
to the compare function.
* stdlib/Versions [libc] (GLIBC_2.8): Add qsort_r.
* Versions.def: Add GLIBC_2.8 for libc.
to fill a hole on 64-bit platforms.
* stdlib/stdlib.h: Remove __strto*_internal prototypes and strto*
inline functions.
* include/stdlib.h: Add __strto*_internal prototypes here.
* wcsmbs/wchar.h: Remove __wcsto*_internal prototypes and wcsto*
inline functions.
* include/wchar.h: Add __wcsto*_internal prototypes.
* sysdeps/generic/inttypes.h: No need to protect the declaration
of the __strto*_internal and __wcsto*_internal members here.
prototype.
(nexttowardf): Redirect to __nldbl_nexttowardf.
(nexttoward): Redirect to nextafter.
(__MATHDECL_2, __MATHDECL_1): Redirect *l functions to
non-*l versions if __LONG_DOUBLE_MATH_OPTIONAL and
__NO_LONG_DOUBLE_MATH.
* math/complex.h (__MATHDECL_1): Likewise.
* math/bits/mathcalls.h (nexttoward): Don't prototype if
__LDBL_COMPAT.
* misc/sys/cdefs.h: Include <bits/wordsize.h>.
(__LDBL_COMPAT, __LDBL_REDIR1, __LDBL_REDIR, __LDBL_REDIR1_NTH,
__LDBL_REDIR_NTH, __LDBL_REDIR_DECL): New macros.
* libio/bits/stdio-ldbl.h: New file.
* libio/Makefile (headers): Add it.
* libio/stdio.h [__LDBL_COMPAT]: #include it.
* libio/bits/libio-ldbl.h: New file.
* libio/Makefile (headers): Add it.
* libio/libio.h [__LDBL_COMPAT]: #include it.
* libio/libioP.h: Include <math_ldbl_opt.h>.
* include/wchar.h (__fwprintf, __vfwprintf): Fix commented out
attribute.
(__vfwprintf_chk): New prototype. Add libc_hidden_proto.
* wcsmbs/bits/wchar-ldbl.h: New file.
* wcsmbs/Makefile (headers): Add it.
* wcsmbs/wchar.h [__LDBL_COMPAT]: #include it.
* wcsmbs/bits/wchar2.h (__vswprintf_alias): Removed.
(vswprintf): Define as a macro rather than inline function.
* stdio-common/bits/printf-ldbl.h: New file.
* stdio-common/Makefile (headers): Add it.
* stdio-common/printf.h [__LDBL_COMPAT]: #include it.
* libio/fwprintf.c: Include libioP.h.
(fwprintf): Use ldbl_weak_alias instead of weak_alias.
* libio/fwscanf.c: Include libioP.h.
(fwscanf): Rename to __fwscanf and add ldbl_strong_alias.
* libio/iovdprintf.c (vdprintf): Use ldbl_weak_alias instead of
weak_alias.
* libio/iovsprintf.c (_IO_vsprintf): Rename to __IO_vsprintf,
add ldbl_strong_alias and use INTDEF2 instead of INTDEF.
(vsprintf): Use ldbl_weak_alias instead of weak_alias.
* libio/iovsscanf.c (__vsscanf, vsscanf): Use ldbl_weak_alias
instead of weak_alias.
* libio/iovswscanf.c (vswscanf): Rename to __vswscanf,
add ldbl_strong_alias and use ldbl_hidden_def instead of
libc_hidden_def.
* libio/obprintf.c (obstack_printf, obstack_vprintf): Use
ldbl_weak_alias instead of weak_alias.
* libio/swprintf.c: Include libioP.h.
(swprintf): Rename to __swprintf and add ldbl_strong_alias.
* libio/swscanf.c: Include libioP.h.
(swscanf): Rename to __swscanf and add ldbl_strong_alias.
* libio/vasprintf.c (vasprintf): Use ldbl_weak_alias instead of
weak_alias.
* libio/vscanf.c (vscanf): Use ldbl_weak_alias instead of
weak_alias.
* libio/vsnprintf.c (__vsnprintf, vsnprintf): Use ldbl_weak_alias
instead of weak_alias.
* libio/vswprintf.c (__vswprintf): Remove alias.
(vswprintf): Use ldbl_weak_alias instead of weak_alias.
* libio/vwprintf.c: Include libioP.h.
(vwprintf): Rename to __vwprintf and add ldbl_strong_alias.
* libio/vwscanf.c (vwscanf): Rename to __vwscanf and add
ldbl_strong_alias.
* libio/wprintf.c: Include libioP.h.
(wprintf): Rename to __wprintf and add ldbl_strong_alias.
* libio/wscanf.c: Include libioP.h.
(wscanf): Rename to __wscanf and add ldbl_strong_alias.
* stdio-common/asprintf.c (__asprintf): Rename to ___asprintf, add
ldbl_strong_alias and use INTDEF2 instead of INTDEF.
(asprintf): Use ldbl_weak_alias instead of weak_alias.
* stdio-common/dprintf.c (dprintf): Rename to __dprintf, add
ldbl_strong_alias and use ldbl_hidden_def instead of
libc_hidden_def.
* stdio-common/fprintf.c: Include libioP.h.
(fprintf): Rename to __fprintf, add ldbl_strong_alias and
use ldbl_hidden_def instead of libc_hidden_def.
(_IO_fprintf): Use ldbl_weak_alias instead of weak_alias.
* stdio-common/fscanf.c: Include libioP.h.
(fscanf): Rename to __fscanf and add ldbl_strong_alias.
* stdio-common/printf.c: Include libioP.h.
(printf): Rename to __printf and add ldbl_strong_alias.
(_IO_printf): Use ldbl_strong_alias instead of strong_alias.
* stdio-common/printf_fp.c (__printf_fp): Rename to __printf_fp, add
ldbl_strong_alias and use ldbl_hidden_def instead of
libc_hidden_def.
* stdio-common/printf_size.c (printf_size): Rename to __printf_size
and add ldbl_strong_alias.
* stdio-common/scanf.c (scanf): Rename to __scanf and add
ldbl_strong_alias.
* stdio-common/snprintf.c (snprintf): Use ldbl_weak_alias instead of
weak_alias.
* stdio-common/sprintf.c (sprintf): Rename to __sprintf, add
ldbl_strong_alias and use ldbl_hidden_def instead of
libc_hidden_def.
(_IO_sprintf): Use ldbl_strong_alias instead of strong_alias.
* stdio-common/sscanf.c: Include libioP.h instead of iolibio.h.
(sscanf): Rename to __sscanf and add ldbl_strong_alias.
* stdio-common/vfprintf.c (vfprintf): Define to
_IO_vfprintf_internal. Use ldbl_strong_alias instead. Use
ldbl_hidden_def instead of libc_hidden_def.
(_IO_vfprintf_internal): Clear is_long_double if __ldbl_is_dbl,
handle the argument as double if it is non-zero.
(vfwprintf): Use ldbl_weak_alias instead of weak_alias.
(_IO_vfprintf): Add ldbl_strong_alias.
* stdio-common/vfscanf.c (_IO_vfscanf): Rename to
_IO_vfscanf_internal, don't use strtold if __ldbl_is_dbl, add
ldbl_strong_alias.
(vfwscanf): Use ldbl_weak_alias instead of weak_alias.
(__vfscanf): Rename to ___vfscanf, add ldbl_strong_alias and
use ldbl_hidden_def instead of libc_hidden_def.
(vfscanf): Use ldbl_weak_alias instead of weak_alias.
* stdio-common/vprintf.c: Include libioP.h.
(vprintf): Rename to __vprintf and add ldbl_strong_alias.
* debug/fprintf_chk.c (__fprintf_chk): Rename to ___fprintf_chk
and add ldbl_strong_alias.
* debug/printf_chk.c (__printf_chk): Rename to ___printf_chk
and add ldbl_strong_alias.
* debug/snprintf_chk.c: Include libioP.h.
(__snprintf_chk): Rename to ___snprintf_chk and add ldbl_strong_alias.
* debug/sprintf_chk.c: Include libioP.h.
(__sprintf_chk): Rename to ___sprintf_chk and add ldbl_strong_alias.
* debug/vfprintf_chk.c (__vfprintf_chk): Rename to ___vfprintf_chk,
add ldbl_strong_alias and use ldbl_hidden_def instead of
libc_hidden_def.
* debug/vfwprintf_chk.c (__vfwprintf_chk): Add libc_hidden_def.
* debug/vprintf_chk.c (__vprintf_chk): Rename to ___vprintf_chk
and add ldbl_strong_alias.
* debug/vsnprintf_chk.c (__vsnprintf_chk): Rename to ___vsnprintf_chk,
add ldbl_strong_alias and use ldbl_hidden_def instead of
libc_hidden_def.
* debug/vsprintf_chk.c (__vsprintf_chk): Rename to ___vsprintf_chk,
add ldbl_strong_alias and use ldbl_hidden_def instead of
libc_hidden_def.
* stdlib/stdlib.h (strtold): Don't define inline if [!__LDBL_COMPAT].
* wcsmbs/wchar.h (wcstold): Likewise.
* stdlib/strtod_l.c: Include math_ldbl_opt.h.
(____STRTOF_INTERNAL): Define.
(INTERNAL (__STRTOF)): Rename to ____STRTOF_INTERNAL.
(__STRTOF): Call ____STRTOF_INTERNAL instead.
[LONG_DOUBLE_COMPAT] (strtold_l, wcstold_l, __strtold_l, __wcstold_l):
Add compatibility symbols.
* stdlib/strtod.c: Include math_ldbl_opt.h.
[LONG_DOUBLE_COMPAT] (strtold, wcstold, __strtold_internal,
__wcstold_internal): Add compatibility symbols.
* stdlib/strtold.c: Include bits/wordsize.h, wchar.h.
(NEW, NEW1): Define.
(__new_strtold, __new_wcstold): New prototypes.
(____new_strtold_internal, ____new_wcstold_internal): Likewise.
Add libc_hidden_proto.
(STRTOF): Define to NEW (*told).
[__LONG_DOUBLE_MATH_OPTIONAL] (wcstold, strtold): Add
long_double_symbol.
[__LONG_DOUBLE_MATH_OPTIONAL] (__wcstold_internal,
__strtold_internal): Likewise. Add libc_hidden_ver.
* stdlib/bits/stdlib-ldbl.h: New file.
* stdlib/Makefile (headers): Add it.
* stdlib/stdlib.h [__LDBL_COMPAT]: #include it.
* include/stdlib.h (ecvt_r, fcvt_r, qecvt_r, qfcvt_r): Remove
libc_hidden_proto.
(__ecvt, __fcvt, __gcvt, __ecvt_r, __fcvt_r, __qecvt, __qfcvt,
__qgcvt, __qecvt_r, __qfcvt_r): New prototypes.
* misc/efgcvt_r.c: Include shlib-compat.h.
(LONG_DOUBLE_CVT): Define.
(__APPEND, __APPEND2): Define.
(*fcvt_r): Use __APPEND instead of APPEND. Remove libc_hidden_def.
(*ecvt_r): Likewise.
(cvt_symbol): Define. Use it on fcvt_r and ecvt_r.
* misc/efgcvt.c: Include shlib-compat.h.
(LONG_DOUBLE_CVT): Define.
(__APPEND, __APPEND2): Define.
(fcvt): Use __APPEND instead of APPEND. Remove libc_hidden_def.
(ecvt, gcvt): Likewise.
(cvt_symbol): Define. Use it on fcvt, ecvt and gcvt.
* stdlib/bits/monetary-ldbl.h: New file.
* stdlib/Makefile (headers): Add it.
* stdlib/monetary.h [__LDBL_COMPAT]: #include it.
* stdlib/strfmon.c: Include math_ldbl_opt.h.
(strfmon): Rename to __strfmon and add ldbl_strong_alias.
* stdlib/strfmon_l.c: Remove all traces of [!USE_IN_LIBIO].
(__vstrfmon_l): Don't set is_long_double if __ldbl_is_dbl.
(__strfmon_l): Rename to ___strfmon_l and add ldbl_strong_alias.
(strfmon_l): Use ldbl_weak_alias instead of weak_alias.
* misc/bits/syslog-ldbl.h: New file.
* misc/Makefile (headers): Add it.
* misc/sys/syslog.h [__LDBL_COMPAT]: #include it.
* misc/syslog.c: Include math_ldbl_opt.h.
(syslog): Rename to __syslog and add ldbl_strong_alias,
use ldbl_hidden_def instead of libc_hidden_def.
(vsyslog): Rename to __vsyslog and add ldbl_strong_alias,
use ldbl_hidden_def instead of libc_hidden_def.
* sysdeps/generic/math_ldbl_opt.h: New file.
* math/w_j1l.c (j1l, y1l): Rename to __ prefixed variants.
Add weak_alias.
* math/w_j0l.c (j0l, y0l): Likewise.
* math/w_jnl.c (jnl, ynl): Likewise.
* sysdeps/ieee754/ldbl-96/s_nexttoward.c
(__nexttowardl): Remove strong_alias.
(nexttowardl): Remove weak_alias.
* sysdeps/ieee754/ldbl-96/s_erfl.c
(__erfl, __erfcl): Remove strong_alias.
(erfl, erfcl): Remove weak_alias.
* sysdeps/ieee754/ldbl-64-128/s_asinhl.c: New file.
* sysdeps/ieee754/ldbl-64-128/s_atanl.c: New file.
* sysdeps/ieee754/ldbl-64-128/s_cbrtl.c: New file.
* sysdeps/ieee754/ldbl-64-128/s_ceill.c: New file.
* sysdeps/ieee754/ldbl-64-128/s_copysignl.c: New file.
* sysdeps/ieee754/ldbl-64-128/s_cosl.c: New file.
* sysdeps/ieee754/ldbl-64-128/s_erfl.c: New file.
* sysdeps/ieee754/ldbl-64-128/s_expm1l.c: New file.
* sysdeps/ieee754/ldbl-64-128/s_fabsl.c: New file.
* sysdeps/ieee754/ldbl-64-128/s_finitel.c: New file.
* sysdeps/ieee754/ldbl-64-128/s_floorl.c: New file.
* sysdeps/ieee754/ldbl-64-128/s_fpclassifyl.c: New file.
* sysdeps/ieee754/ldbl-64-128/s_frexpl.c: New file.
* sysdeps/ieee754/ldbl-64-128/s_ilogbl.c: New file.
* sysdeps/ieee754/ldbl-64-128/s_isinfl.c: New file.
* sysdeps/ieee754/ldbl-64-128/s_isnanl.c: New file.
* sysdeps/ieee754/ldbl-64-128/s_llrintl.c: New file.
* sysdeps/ieee754/ldbl-64-128/s_llroundl.c: New file.
* sysdeps/ieee754/ldbl-64-128/s_log1pl.c: New file.
* sysdeps/ieee754/ldbl-64-128/s_logbl.c: New file.
* sysdeps/ieee754/ldbl-64-128/s_lrintl.c: New file.
* sysdeps/ieee754/ldbl-64-128/s_lroundl.c: New file.
* sysdeps/ieee754/ldbl-64-128/s_modfl.c: New file.
* sysdeps/ieee754/ldbl-64-128/s_nearbyintl.c: New file.
* sysdeps/ieee754/ldbl-64-128/s_nextafterl.c: New file.
* sysdeps/ieee754/ldbl-64-128/s_nexttoward.c: New file.
* sysdeps/ieee754/ldbl-64-128/s_nexttowardf.c: New file.
* sysdeps/ieee754/ldbl-64-128/s_nexttowardfd.c: New file.
* sysdeps/ieee754/ldbl-64-128/s_remquol.c: New file.
* sysdeps/ieee754/ldbl-64-128/s_rintl.c: New file.
* sysdeps/ieee754/ldbl-64-128/s_roundl.c: New file.
* sysdeps/ieee754/ldbl-64-128/s_scalblnl.c: New file.
* sysdeps/ieee754/ldbl-64-128/s_scalbnl.c: New file.
* sysdeps/ieee754/ldbl-64-128/s_signbitl.c: New file.
* sysdeps/ieee754/ldbl-64-128/s_sincosl.c: New file.
* sysdeps/ieee754/ldbl-64-128/s_sinl.c: New file.
* sysdeps/ieee754/ldbl-64-128/s_tanhl.c: New file.
* sysdeps/ieee754/ldbl-64-128/s_tanl.c: New file.
* sysdeps/ieee754/ldbl-64-128/s_truncl.c: New file.
* sysdeps/ieee754/ldbl-64-128/strtold_l.c: New file.
* sysdeps/ieee754/ldbl-64-128/w_expl.c: New file.
* sysdeps/ieee754/ldbl-opt/configure.in: New file.
* sysdeps/ieee754/ldbl-opt/configure: New file.
* sysdeps/ieee754/ldbl-opt/Makefile: New file.
* sysdeps/ieee754/ldbl-opt/Versions: New file.
* sysdeps/ieee754/ldbl-opt/cabs.c: New file.
* sysdeps/ieee754/ldbl-opt/cabsl.c: New file.
* sysdeps/ieee754/ldbl-opt/carg.c: New file.
* sysdeps/ieee754/ldbl-opt/cargl.c: New file.
* sysdeps/ieee754/ldbl-opt/cimag.c: New file.
* sysdeps/ieee754/ldbl-opt/cimagl.c: New file.
* sysdeps/ieee754/ldbl-opt/conj.c: New file.
* sysdeps/ieee754/ldbl-opt/conjl.c: New file.
* sysdeps/ieee754/ldbl-opt/creal.c: New file.
* sysdeps/ieee754/ldbl-opt/creall.c: New file.
* sysdeps/ieee754/ldbl-opt/math_ldbl_opt.c: New file.
* sysdeps/ieee754/ldbl-opt/math_ldbl_opt.h: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-acos.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-acosh.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-asin.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-asinh.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-asprintf.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-atan.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-atan2.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-atanh.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-cabs.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-cacos.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-cacosh.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-carg.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-casin.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-casinh.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-catan.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-catanh.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-cbrt.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-ccos.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-ccosh.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-ceil.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-cexp.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-cimag.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-clog.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-clog10.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-compat.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-compat.h: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-conj.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-copysign.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-cos.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-cosh.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-cpow.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-cproj.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-creal.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-csin.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-csinh.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-csqrt.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-ctan.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-ctanh.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-dprintf.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-drem.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-erf.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-erfc.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-exp.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-exp10.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-exp2.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-expm1.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-fabs.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-fdim.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-finite.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-floor.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-fma.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-fmax.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-fmin.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-fmod.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-fprintf.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-fprintf_chk.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-frexp.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-fscanf.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-fwprintf.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-fwprintf_chk.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-fwscanf.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-gamma.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-hypot.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-ilogb.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-iovfscanf.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-isinf.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-isnan.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-j0.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-j1.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-jn.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-ldexp.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-lgamma.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-lgamma_r.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-llrint.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-llround.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-log.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-log10.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-log1p.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-log2.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-logb.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-lrint.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-lround.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-modf.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-nan.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-nearbyint.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-nextafter.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-nexttoward.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-nexttowardf.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-obstack_printf.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-obstack_vprintf.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-pow.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-pow10.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-printf.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-printf_chk.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-printf_fp.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-printf_size.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-qecvt.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-qecvt_r.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-qfcvt.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-qfcvt_r.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-qgcvt.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-remainder.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-remquo.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-rint.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-round.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-scalb.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-scalbln.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-scalbn.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-scanf.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-signbit.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-significand.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-sin.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-sincos.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-sinh.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-snprintf.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-snprintf_chk.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-sprintf.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-sprintf_chk.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-sqrt.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-sscanf.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-strfmon.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-strfmon_l.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-strtold.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-strtold_l.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-strtoldint.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-swprintf.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-swprintf_chk.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-swscanf.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-syslog.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-syslog_chk.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-tan.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-tanh.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-tgamma.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-trunc.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-vasprintf.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-vdprintf.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-vfprintf.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-vfprintf_chk.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-vfscanf.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-vfwprintf.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-vfwprintf_chk.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-vfwscanf.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-vprintf.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-vprintf_chk.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-vscanf.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-vsnprintf.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-vsnprintf_chk.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-vsprintf.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-vsprintf_chk.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-vsscanf.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-vswprintf.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-vswprintf_chk.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-vswscanf.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-vsyslog.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-vsyslog_chk.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-vwprintf.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-vwprintf_chk.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-vwscanf.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-wcstold.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-wcstold_l.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-wcstoldint.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-wprintf.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-wprintf_chk.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-wscanf.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-y0.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-y1.c: New file.
* sysdeps/ieee754/ldbl-opt/nldbl-yn.c: New file.
* sysdeps/ieee754/ldbl-opt/s_asinh.c: New file.
* sysdeps/ieee754/ldbl-opt/s_atan.c: New file.
* sysdeps/ieee754/ldbl-opt/s_cacos.c: New file.
* sysdeps/ieee754/ldbl-opt/s_cacosh.c: New file.
* sysdeps/ieee754/ldbl-opt/s_cacoshl.c: New file.
* sysdeps/ieee754/ldbl-opt/s_cacosl.c: New file.
* sysdeps/ieee754/ldbl-opt/s_casin.c: New file.
* sysdeps/ieee754/ldbl-opt/s_casinh.c: New file.
* sysdeps/ieee754/ldbl-opt/s_casinhl.c: New file.
* sysdeps/ieee754/ldbl-opt/s_casinl.c: New file.
* sysdeps/ieee754/ldbl-opt/s_catan.c: New file.
* sysdeps/ieee754/ldbl-opt/s_catanh.c: New file.
* sysdeps/ieee754/ldbl-opt/s_catanhl.c: New file.
* sysdeps/ieee754/ldbl-opt/s_catanl.c: New file.
* sysdeps/ieee754/ldbl-opt/s_cbrt.c: New file.
* sysdeps/ieee754/ldbl-opt/s_ccos.c: New file.
* sysdeps/ieee754/ldbl-opt/s_ccosh.c: New file.
* sysdeps/ieee754/ldbl-opt/s_ccoshl.c: New file.
* sysdeps/ieee754/ldbl-opt/s_ccosl.c: New file.
* sysdeps/ieee754/ldbl-opt/s_ceil.c: New file.
* sysdeps/ieee754/ldbl-opt/s_cexp.c: New file.
* sysdeps/ieee754/ldbl-opt/s_cexpl.c: New file.
* sysdeps/ieee754/ldbl-opt/s_clog.c: New file.
* sysdeps/ieee754/ldbl-opt/s_clog10.c: New file.
* sysdeps/ieee754/ldbl-opt/s_clog10l.c: New file.
* sysdeps/ieee754/ldbl-opt/s_clogl.c: New file.
* sysdeps/ieee754/ldbl-opt/s_copysign.c: New file.
* sysdeps/ieee754/ldbl-opt/s_cpow.c: New file.
* sysdeps/ieee754/ldbl-opt/s_cpowl.c: New file.
* sysdeps/ieee754/ldbl-opt/s_cproj.c: New file.
* sysdeps/ieee754/ldbl-opt/s_cprojl.c: New file.
* sysdeps/ieee754/ldbl-opt/s_csin.c: New file.
* sysdeps/ieee754/ldbl-opt/s_csinh.c: New file.
* sysdeps/ieee754/ldbl-opt/s_csinhl.c: New file.
* sysdeps/ieee754/ldbl-opt/s_csinl.c: New file.
* sysdeps/ieee754/ldbl-opt/s_csqrt.c: New file.
* sysdeps/ieee754/ldbl-opt/s_csqrtl.c: New file.
* sysdeps/ieee754/ldbl-opt/s_ctan.c: New file.
* sysdeps/ieee754/ldbl-opt/s_ctanh.c: New file.
* sysdeps/ieee754/ldbl-opt/s_ctanhl.c: New file.
* sysdeps/ieee754/ldbl-opt/s_ctanl.c: New file.
* sysdeps/ieee754/ldbl-opt/s_erf.c: New file.
* sysdeps/ieee754/ldbl-opt/s_expm1.c: New file.
* sysdeps/ieee754/ldbl-opt/s_fabs.c: New file.
* sysdeps/ieee754/ldbl-opt/s_fdim.c: New file.
* sysdeps/ieee754/ldbl-opt/s_fdiml.c: New file.
* sysdeps/ieee754/ldbl-opt/s_finite.c: New file.
* sysdeps/ieee754/ldbl-opt/s_floor.c: New file.
* sysdeps/ieee754/ldbl-opt/s_fma.c: New file.
* sysdeps/ieee754/ldbl-opt/s_fmal.c: New file.
* sysdeps/ieee754/ldbl-opt/s_fmax.c: New file.
* sysdeps/ieee754/ldbl-opt/s_fmaxl.c: New file.
* sysdeps/ieee754/ldbl-opt/s_fmin.c: New file.
* sysdeps/ieee754/ldbl-opt/s_fminl.c: New file.
* sysdeps/ieee754/ldbl-opt/s_frexp.c: New file.
* sysdeps/ieee754/ldbl-opt/s_ilogb.c: New file.
* sysdeps/ieee754/ldbl-opt/s_isinf.c: New file.
* sysdeps/ieee754/ldbl-opt/s_isnan.c: New file.
* sysdeps/ieee754/ldbl-opt/s_ldexp.c: New file.
* sysdeps/ieee754/ldbl-opt/s_ldexpl.c: New file.
* sysdeps/ieee754/ldbl-opt/s_llrint.c: New file.
* sysdeps/ieee754/ldbl-opt/s_llround.c: New file.
* sysdeps/ieee754/ldbl-opt/s_log1p.c: New file.
* sysdeps/ieee754/ldbl-opt/s_logb.c: New file.
* sysdeps/ieee754/ldbl-opt/s_lrint.c: New file.
* sysdeps/ieee754/ldbl-opt/s_lround.c: New file.
* sysdeps/ieee754/ldbl-opt/s_modf.c: New file.
* sysdeps/ieee754/ldbl-opt/s_nan.c: New file.
* sysdeps/ieee754/ldbl-opt/s_nanl.c: New file.
* sysdeps/ieee754/ldbl-opt/s_nearbyint.c: New file.
* sysdeps/ieee754/ldbl-opt/s_nextafter.c: New file.
* sysdeps/ieee754/ldbl-opt/s_remquo.c: New file.
* sysdeps/ieee754/ldbl-opt/s_rint.c: New file.
* sysdeps/ieee754/ldbl-opt/s_round.c: New file.
* sysdeps/ieee754/ldbl-opt/s_scalbln.c: New file.
* sysdeps/ieee754/ldbl-opt/s_scalbn.c: New file.
* sysdeps/ieee754/ldbl-opt/s_significand.c: New file.
* sysdeps/ieee754/ldbl-opt/s_significandl.c: New file.
* sysdeps/ieee754/ldbl-opt/s_sin.c: New file.
* sysdeps/ieee754/ldbl-opt/s_sincos.c: New file.
* sysdeps/ieee754/ldbl-opt/s_tan.c: New file.
* sysdeps/ieee754/ldbl-opt/s_tanh.c: New file.
* sysdeps/ieee754/ldbl-opt/s_trunc.c: New file.
* sysdeps/ieee754/ldbl-opt/w_acos.c: New file.
* sysdeps/ieee754/ldbl-opt/w_acosh.c: New file.
* sysdeps/ieee754/ldbl-opt/w_acoshl.c: New file.
* sysdeps/ieee754/ldbl-opt/w_acosl.c: New file.
* sysdeps/ieee754/ldbl-opt/w_asin.c: New file.
* sysdeps/ieee754/ldbl-opt/w_asinl.c: New file.
* sysdeps/ieee754/ldbl-opt/w_atan2.c: New file.
* sysdeps/ieee754/ldbl-opt/w_atan2l.c: New file.
* sysdeps/ieee754/ldbl-opt/w_atanh.c: New file.
* sysdeps/ieee754/ldbl-opt/w_atanhl.c: New file.
* sysdeps/ieee754/ldbl-opt/w_cosh.c: New file.
* sysdeps/ieee754/ldbl-opt/w_coshl.c: New file.
* sysdeps/ieee754/ldbl-opt/w_drem.c: New file.
* sysdeps/ieee754/ldbl-opt/w_dreml.c: New file.
* sysdeps/ieee754/ldbl-opt/w_exp.c: New file.
* sysdeps/ieee754/ldbl-opt/w_exp10.c: New file.
* sysdeps/ieee754/ldbl-opt/w_exp10l.c: New file.
* sysdeps/ieee754/ldbl-opt/w_fmod.c: New file.
* sysdeps/ieee754/ldbl-opt/w_fmodl.c: New file.
* sysdeps/ieee754/ldbl-opt/w_hypot.c: New file.
* sysdeps/ieee754/ldbl-opt/w_hypotl.c: New file.
* sysdeps/ieee754/ldbl-opt/w_j0.c: New file.
* sysdeps/ieee754/ldbl-opt/w_j0l.c: New file.
* sysdeps/ieee754/ldbl-opt/w_j1.c: New file.
* sysdeps/ieee754/ldbl-opt/w_j1l.c: New file.
* sysdeps/ieee754/ldbl-opt/w_jn.c: New file.
* sysdeps/ieee754/ldbl-opt/w_jnl.c: New file.
* sysdeps/ieee754/ldbl-opt/w_lgamma.c: New file.
* sysdeps/ieee754/ldbl-opt/w_lgamma_r.c: New file.
* sysdeps/ieee754/ldbl-opt/w_lgammal.c: New file.
* sysdeps/ieee754/ldbl-opt/w_lgammal_r.c: New file.
* sysdeps/ieee754/ldbl-opt/w_log.c: New file.
* sysdeps/ieee754/ldbl-opt/w_log10.c: New file.
* sysdeps/ieee754/ldbl-opt/w_log10l.c: New file.
* sysdeps/ieee754/ldbl-opt/w_log2.c: New file.
* sysdeps/ieee754/ldbl-opt/w_log2l.c: New file.
* sysdeps/ieee754/ldbl-opt/w_logl.c: New file.
* sysdeps/ieee754/ldbl-opt/w_pow.c: New file.
* sysdeps/ieee754/ldbl-opt/w_powl.c: New file.
* sysdeps/ieee754/ldbl-opt/w_remainder.c: New file.
* sysdeps/ieee754/ldbl-opt/w_remainderl.c: New file.
* sysdeps/ieee754/ldbl-opt/w_scalb.c: New file.
* sysdeps/ieee754/ldbl-opt/w_scalbl.c: New file.
* sysdeps/ieee754/ldbl-opt/w_sinh.c: New file.
* sysdeps/ieee754/ldbl-opt/w_sinhl.c: New file.
* sysdeps/ieee754/ldbl-opt/w_sqrt.c: New file.
* sysdeps/ieee754/ldbl-opt/w_sqrtl.c: New file.
* sysdeps/ieee754/ldbl-opt/w_tgamma.c: New file.
* sysdeps/ieee754/ldbl-opt/w_tgammal.c: New file.
* sysdeps/unix/sysv/linux/sparc/bits/wordsize.h: New file.
* sysdeps/unix/sysv/linux/sparc/sparc32/Implies: New file.
* sysdeps/sparc/sparc32/Implies: Move ldbl-128 first and flt-32
after dbl-64.
* sysdeps/unix/sysv/linux/sparc/sparc32/Versions (NLDBL_VERSION):
%define this to to GLIBC_2.4.
* sysdeps/sparc/sparc32/fpu/e_sqrtl.c: New file.
* sysdeps/sparc/sparc32/fpu/s_fabs.c: New file.
* sysdeps/sparc/sparc32/fpu/s_fabsf.S: New file.
* sysdeps/sparc/sparc32/fpu/s_fabsl.c: New file.
* sysdeps/sparc/sparc32/soft-fp/q_qtoui.c: Removed.
* sysdeps/sparc/sparc32/soft-fp/q_qtoux.c: Removed.
* sysdeps/sparc/sparc32/soft-fp/q_qtox.c: Removed.
* sysdeps/sparc/sparc32/soft-fp/q_uitoq.c: Removed.
* sysdeps/sparc/sparc32/soft-fp/q_uxtoq.c: Removed.
* sysdeps/sparc/sparc32/soft-fp/q_xtoq.c: Removed.
* sysdeps/sparc/sparc32/soft-fp/q_lltoq.c: New file.
* sysdeps/sparc/sparc32/soft-fp/q_qtoll.c: New file.
* sysdeps/sparc/sparc32/soft-fp/q_qtou.c: New file.
* sysdeps/sparc/sparc32/soft-fp/q_qtoull.c: New file.
* sysdeps/sparc/sparc32/soft-fp/q_ulltoq.c: New file.
* sysdeps/sparc/sparc32/soft-fp/q_utoq.c: New file.
* sysdeps/sparc/sparc32/soft-fp/Versions: New file.
* sysdeps/sparc/fpu/bits/mathinline.h (__unordered_cmp,
__unordered_v9cmp): Define differently depending on
-m32 -mlong-double-{64,128}.
(__signbitl, sqrtl, __ieee754_sqrtl): New inlines.
* sysdeps/sparc/fpu/bits/mathdef.h (__NO_LONG_DOUBLE_MATH): Remove.
* sysdeps/sparc/sparc32/soft-fp/Makefile (sparc32-quad-routines):
Set.
(sysdep-routines): Add sparc32-quad-routines.
* sysdeps/sparc/sparc32/soft-fp/sfp-machine.h: Include stdlib.h.
(FP_HANDLE_EXCEPTIONS): Call ___Q_simulate_exceptions as a normal
function.
* sysdeps/sparc/sparc32/soft-fp/q_sqrt.c (__ieee754_sqrtl): New
alias to _Q_sqrt.
* sysdeps/sparc/sparc32/soft-fp/q_div.c (_Q_div): Fix a typo.
* sysdeps/sparc/sparc64/soft-fp/sfp-machine.h: Include stdlib.h.
* sysdeps/sparc/sparc32/fpu/libm-test-ulps: Update.
* libio/libio.h (_IO_vfscanf, _IO_vfprintf): Remove __THROW.
(_IO_vfwscanf, _IO_vfwprintf): Likewise.
* libio/libioP.h (_IO_vdprintf): Likewise.
are not understood by the C++ compiler.
* Makerules: Add rules to build C++ code for test cases.
* include/stdlib.h: Protect for inclusion in C++ code.
* include/time.h: Likewise.
* test-skeleton.c (timeout_handler): Rewrite ts initialization for
C++ compatibility.
2002-08-04 Ulrich Drepper <drepper@redhat.com>
* stdio-common/psignal.c: Declare _sys_siglist_internal. Use USEINT
to access _sys_siglist.
* string/strsignal.c: Likewise.
* sysdeps/generic/siglist.c: Add _sys_siglist_internal alias.
* sysdeps/gnu/siglist.c: Likewise.
* sysdeps/unix/siglist.c: Likewise.
* sysdeps/unix/sysv/linux/arm/siglist.c: Likewise.
* libio/fileops.c: Add missing INTUSEs for _IO_file_jumps.
* libio/wfileops.c: Add missing INTUSE for _IO_file_close.
* intl/dcigettext.c: Define _nl_default_dirname_internal as hidden
alias and use it.
* intl/bindtextdom.c: Use _nl_default_dirname_internal.
* include/netinet/in.h: Add declaration of in6addr_loopback_internal.
* inet/in6_addr.c: Add INTVARDEF for in6addr_loopback.
* sysdeps/posix/getaddrinfo.c: Use INTUSE for in6addr_loopback access.
* include/time.h: Add libc_hidden_proto for __gmtime_r.
* time/gmtime.c (__gmtime_r): Add libc_hidden_def.
* iconv/Versions: Replace __gconv_alias_db, __gconv_modules_db,
and __gconv_cache with __gconv_get_alias_db, __gconv_get_modules_db,
and __gconv_get_cache respectively.
* iconv/gconv_cache.c (gconv_cache): Renamed for __gconv_cache and
defined static. Change all users.
(__gconv_get_cache): New function.
* iconv/gconv_db.c (__gconv_get_modules_db): New function.
(__gconv_get_alias_db): New function.
* iconv/gconv_int.h (__gconv_alias_db): Declare as hidden.
(__conv_modules_db): Likewise.
Add prototypes for __gconv_get_cache, __gconv_get_modules_db,
and __gconv_get_alias_db.
* iconv/iconv_prog.c: Use the new functions instead of accessing the
variables.
* include/stdlib.h: Add prototype and libc_hidden_proto for
__default_morecore.
* sysdeps/generic/morecore.c: Include <stdlib.h>.
* malloc/obstack.c: Remove fputs macro.
* malloc/mtrace.c: Remove fopen macro.
* sysdeps/mach/hurd/chown.c: Use INTDEF for __chown.
* sysdeps/unix/sysv/aix/chown.c: Likewise.
* sysdeps/unix/grantpt.c: Use INTUSE for __chown calls.
* sysdeps/unix/sysv/linux/m68k/chown.c: Likewise.
* sysdeps/unix/sysv/linux/powerpc/chown.c: Likewise.
* sysdeps/unix/sysv/linux/i386/chown.c: Use INTDEF2 to define
__chown_internal.
* sysdeps/unix/sysv/linux/s390/s390-32//chown.c: Likewise.
* intl/dcngettext.c [_LIBC]: Use INTUSE for __dcngettext.
* intl/dngettext.c [_LIBC] (DCNGETTEXT): Use INTUSE.
* intl/ngettext.c: Likewise.
* include/sys/socket.h: Declare __connect_internal and define
__connect macro if not NOT_IN_libc.
* sysdeps/mach/hurd/connect.c: Use INTDEF for __connect.
* sysdeps/unix/sysv/aix/connect.c: Likewise.
* sysdeps/unix/sysv/linux/connect.S: Add __connect_internal alias.
* include/unistd.h: Declare __close_internal and define __close macro
if not NOT_IN_libc.
* libio/libioP.h (JUMO0, JUMP1, JUMP2, JUMP3, WJUMP0, WJUMP1, WJUMP2,
WJUMP3): Add extra parenthesis to avoid expanding element names with
macors like __close.
* sysdeps/unix/syscalls.list: Add __close_internal alias.
* include/unistd.h: Declare __dup2_internal and define __dup2 macro
if not NOT_IN_libc.
* sysdeps/mach/hurd/dup2.c: Use INTDEF for __dup2.
* sysdeps/posix/dup2.c: Use INTDEF for __dup2.
* sysdeps/unix/syscalls.list: Add __dup2_internal alias.
* include/unistd.h: Declare __fork_internal and define __fork macro
if not NOT_IN_libc.
* sysdeps/mach/hurd/fork.c: Use INTDEF for __fork.
* sysdeps/unix/sysv/aix/fork.c: Likewise.
* sysdeps/unix/sysv/linux/syscalls.list: Add __fork_internal alias.
* include/stdio_ext.h: Declare __fsetlocking_internal and define
__fsetlocking macro to use it if not NOT_IN_libc.
* libio/__fsetlocking.c: Use INTDEF for __fsetlocking.
* libio/__fbufsize.c: Correct copyright.
* libio/__flbf.c: Likewise.
* libio/__fpending.c: Likewise.
* libio/__fpurge.c: Likewise.
* libio/__freadable.c: Likewise.
* libio/__freading.c: Likewise.
* libio/__fsetlocking.c: Likewise.
* libio/__fwritable.c: Likewise.
* libio/__fwriting.c: Likewise.
* include/stdio.h: Declare __asprintf_internal and define __asprintf
macro to use it if not NOT_IN_libc.
* stdio-common/asprintf.c: Use INTDEF for __asprintf.
* include/mntent.h: Declare __setmntent_internal,
__getmntent_r_internal, __endmntent_internal. Define __setmntent,
__getmntent_r, and __endmntent macros to use these functions if not
NOT_IN_libc.
* misc/mntent_r.c: Use INTDEF for __setmntent, __getmntent_r, and
__endmntent.
* include/math.h: Declare __finite_internal, __finitef_internal, and
__finitel_internal. Redefine isfinite macro if in libc or libm using
these functions.
* sysdeps/generic/s_ldexp.c: Use INTUSE for __finite calls.
* sysdeps/generic/s_ldexpf.c: Use INTUSE for __finitef calls.
* sysdeps/generic/s_ldexpl.c: Use INTUSE for __finitel calls.
* sysdeps/i386/fpu/s_finite.S: Define _internal alias.
* sysdeps/i386/fpu/s_finitef.S: Likewise.
* sysdeps/i386/fpu/s_finitel.S: Likewise.
* sysdeps/ieee754/dbl-64/s_finite.c: Likewise.
* sysdeps/ieee754/flt-32/s_finitef.c: Likewise.
* sysdeps/ieee754/ldbl-128/s_finitel.c: Likewise.
* sysdeps/ieee754/ldbl-96/s_finitel.c: Likewise.
* include/fcntl.h: Declare __fcntl_internal. Define __fcntl macro
to use this function if not NOT_IN_libc.
* libio/iofdopen.c (_IO_fcntl): Use INTUSE.
* sysdeps/generic/fcntl.c: Use INTDEF for __fcntl.
* sysdeps/mach/hurd/fcntl.c: Likewise.
* sysdeps/unix/sysv/aix/fcntl.c: Likewise.
* sysdeps/unix/sysv/linux/i386/fcntl.c: Likewise.
* include/argz.h: Declare __argz_count_internal and
__argz_stringify_internal.
* intl/l10nflist.c [_LIBC]: Use INTUSE for __argz_count and
__argz_stringify.
* string/argz-count.c: Use INTDEF for __argz_count.
* string/argz-stringify.c: Use INTDEF for __argz_stringify.
* include/stdlib.h: Declare __cxa_atexit_internal and define
__cxa_atexit macro if not NOT_IN_libc.
* stdlib/cxa_atexit.c: Use INTDEF for __cxa_atexit.
* dlfcn/Makefile: Define NOT_IN_libc when compiling modcxaatexit.c.
* assert/assert.c: Use INTDEF for __assert_fail.
* assert/__assert.c: Use INTUSE for call to __assert_fail.
* include/assert.h: Declare __assert_fail_internal.
2002-04-08 Ulrich Drepper <drepper@redhat.com>
* cppflags-iterator.mk (cpp-srcs-left): Define NOT_IN_libc instead
of NOT_IN_LIBC.
* include/libintl.h: Test for NOT_IN_libc not NOT_IN_LIBC.
* include/stdlib.h: Likewise.
2002-04-08 Jakub Jelinek <jakub@redhat.com>
* elf/Makefile (CFLAGS-.os): Define NOT_IN_libc and IS_IN_rtld
instead of _RTLD_LOCAL.
* elf/dl-dst.h: Use IS_IN_rtld instead of _RTLD_LOCAL.
* include/unistd.h: Likewise.
* sysdeps/generic/ldsodefs.h: Likewise.
* stdio-common/_itoa.h (_itoa_word): Only use internal digit arrays
if in libc or ld.so.
* include/stdlib.h: For libc itself replace MB_CUR_MAX definition
with one accessing the locale data structures directly.
* stdio-common/printf-prs.c: Include localeinfo.h for new
MB_CUR_MAX definition.
2002-02-12 Ulrich Drepper <drepper@redhat.com>
* sysdeps/generic/dl-tls.c (TLS_DTV_UNALLOCATED): Renamed from
TLS_DTV_UNALLOCATE.
(oom): New function.
(_dl_next_tls_modid): Rewrite to handle dl_tls_dtv_slotinfo_list.
(_dl_determine_tlsoffset): Likewise.
(_dl_allocate_tls): Likewise.
(__TLS_GET_ADDR): Define if not already defined.
(_dl_tls_symaddr): New function.
(allocate_and_init): New function.
(__tls_get_addr): Actually implement handling of generation counter
and deferred allocation.
* sysdeps/generic/ldsodefs.h (_rtld_global): Remove _dl_initimage_list,
add _dl_tls_dtv_slotinfo_list, _dl_tls_static_nelem, and
_dl_tls_generation.
Define TLS_SLOTINFO_SURPLUS and DTV_SURPLUS.
Declare _dl_tls_symaddr.
* sysdeps/i386/dl-tls.h: Disable __tls_get_addr handling unless
SHARED.
* include/link.h (struct link_map): Remove l_tls_nextimage and
l_tls_previmage.
* elf/dl-sym.c (_dl_sym): After successful lookup call _dl_tls_symaddr
instead of DL_SYMBOL_ADDRESS for STT_TLS symbols.
(_dl_vsym): Likewise.
* elf/rtld.c (_dl_start_final): Adjust initdtv initialization for new
layout.
(dl_main): Allow PT_TLS be present for empty segment. Remove
nextimage list handling. Instead add all modules using TLS to
dl_tls_dtv_slotinfo_list.
* elf/dl-open.c (dl_open_worker): After successfully loading all
objects add those with TLS to the dl_tls_dtv_slotinfo_list list.
* elf/dl-load.c (_dl_map_object_from_fd): If PT_TLS entry is for an
empty segment don't do anything. Remove handling of initimage list.
* elf/Versions [ld] (GLIBC_2.0): Add __libc_memalign.
(GLIBC_PRIVATE): Add _dl_tls_symaddr.
* elf/dl-minimal.c: Define __libc_memalign.
* elf/dl-support.c: Remove _dl_initimage_list. Add
_dl_tls_dtv_slotinfo_list, _dl_tls_static_nelem, and
_dl_tls_generation.
* include/stdlib.h: Declare __libc_memalign.
* elf/Makefile: Add rules to build and run tst-tls4 and tst-tls5.
* elf/tst-tls4.c: New file.
* elf/tst-tls5.c: New file.
* elf/tst-tlsmod2.c: New file.
* elf/tls-macros.h: asms using ___tls_get_addr destroy %ecx and %edx.
* elf/tst-tlsmod1.c: Don't define variables unles USE_TLS.
* elf/tst-tls1.c: Use test-skeleton.c.
* elf/tst-tls2.c: Likewise.
* elf/tst-tls3.c: Likewise.
* elf/dl-conflict.c (RESOLVE_MAP): Return NULL not 0.
* sysdeps/mips/machine-gmon.h: Update MCOUNT for current GCC behavior.
2001-02-06 Andreas Jaeger <aj@suse.de>
* include/pthread.h: New file.
* wctype/wctype.h: Move internal interfaces from here to...
* include/wctype.h: ...here.
* wcsmbs/wchar.h: Move __wcslen from here to...
* include/wchar.h: ...here.
* posix/sys/wait.h: Move __wait from here to...
* include/sys/wait.h: ...here.
* string/string.h: Move __ffs and __strerror_r from here to...
* include/string.h: ...here.
* stdlib/stdlib.h: Move __on_exit from here to...
* include/stdlib.h: ...here.
* libio/stdio.h: Move __vsnprintf from here to...
* include/stdio.h: ...here.