Commit Graph

30 Commits

Author SHA1 Message Date
Joseph Myers
d614a75396 Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
Gabriel F. T. Gomes
dce4253411 Refactor *cvt functions implementation (2/2)
This patch refactors the *cvt functions implementation in a way that
makes it easier to re-use them for implementing the IEEE long double on
powerpc64le.  By removing the macros that generate the function names
(APPEND combined with FUNC_PREFIX), the new code makes it easier to
define new function names, such as __qecvtieee128.

Tested that installed stripped binaries for all build-many-glibcs
targets remain identical before and after this patch.  Also tested for
powerpc64le and x86_64.

Reviewed-by: Paul E. Murphy <murphyp@linux.ibm.com>
2019-12-23 16:32:07 -03:00
Gabriel F. T. Gomes
e18a305777 Refactor *cvt functions implementation (1/2)
This patch refactors the *cvt functions implementation in a way that
makes it easier to re-use them for implementing the IEEE long double on
powerpc64le.  By splitting the implementation per se in one file
(efgcvt-template.c) and the alias definitions in others (e.g. efgcvt.c),
the new code makes it easier to define new function names, such as
__qecvtieee128.

Tested that installed stripped binaries for all build-many-glibcs
targets remain identical before and after this patch.  Also tested for
powerpc64le and x86_64.

Reviewed-by: Paul E. Murphy <murphyp@linux.ibm.com>
2019-12-23 16:30:24 -03:00
Paul Eggert
5a82c74822 Prefer https to http for gnu.org and fsf.org URLs
Also, change sources.redhat.com to sourceware.org.
This patch was automatically generated by running the following shell
script, which uses GNU sed, and which avoids modifying files imported
from upstream:

sed -ri '
  s,(http|ftp)(://(.*\.)?(gnu|fsf|sourceware)\.org($|[^.]|\.[^a-z])),https\2,g
  s,(http|ftp)(://(.*\.)?)sources\.redhat\.com($|[^.]|\.[^a-z]),https\2sourceware.org\4,g
' \
  $(find $(git ls-files) -prune -type f \
      ! -name '*.po' \
      ! -name 'ChangeLog*' \
      ! -path COPYING ! -path COPYING.LIB \
      ! -path manual/fdl-1.3.texi ! -path manual/lgpl-2.1.texi \
      ! -path manual/texinfo.tex ! -path scripts/config.guess \
      ! -path scripts/config.sub ! -path scripts/install-sh \
      ! -path scripts/mkinstalldirs ! -path scripts/move-if-change \
      ! -path INSTALL ! -path  locale/programs/charmap-kw.h \
      ! -path po/libc.pot ! -path sysdeps/gnu/errlist.c \
      ! '(' -name configure \
            -execdir test -f configure.ac -o -f configure.in ';' ')' \
      ! '(' -name preconfigure \
            -execdir test -f preconfigure.ac ';' ')' \
      -print)

and then by running 'make dist-prepare' to regenerate files built
from the altered files, and then executing the following to cleanup:

  chmod a+x sysdeps/unix/sysv/linux/riscv/configure
  # Omit irrelevant whitespace and comment-only changes,
  # perhaps from a slightly-different Autoconf version.
  git checkout -f \
    sysdeps/csky/configure \
    sysdeps/hppa/configure \
    sysdeps/riscv/configure \
    sysdeps/unix/sysv/linux/csky/configure
  # Omit changes that caused a pre-commit check to fail like this:
  # remote: *** error: sysdeps/powerpc/powerpc64/ppc-mcount.S: trailing lines
  git checkout -f \
    sysdeps/powerpc/powerpc64/ppc-mcount.S \
    sysdeps/unix/sysv/linux/s390/s390-64/syscall.S
  # Omit change that caused a pre-commit check to fail like this:
  # remote: *** error: sysdeps/sparc/sparc64/multiarch/memcpy-ultra3.S: last line does not end in newline
  git checkout -f sysdeps/sparc/sparc64/multiarch/memcpy-ultra3.S
2019-09-07 02:43:31 -07:00
Joseph Myers
04277e02d7 Update copyright dates with scripts/update-copyrights.
* All files with FSF copyright notices: Update copyright dates
	using scripts/update-copyrights.
	* locale/programs/charmap-kw.h: Regenerated.
	* locale/programs/locfile-kw.h: Likewise.
2019-01-01 00:11:28 +00:00
Joseph Myers
688903eb3e Update copyright dates with scripts/update-copyrights.
* All files with FSF copyright notices: Update copyright dates
	using scripts/update-copyrights.
	* locale/programs/charmap-kw.h: Regenerated.
	* locale/programs/locfile-kw.h: Likewise.
2018-01-01 00:32:25 +00:00
Joseph Myers
bfff8b1bec Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
Joseph Myers
f7a9f785e5 Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
Joseph Myers
80d9be8122 Convert miscellaneous function definitions to prototype style.
This patch converts various miscellaneous functions definitions in
glibc, found with grep and not covered by my previous scripted
conversions, from old-style K&R to prototype-style.  These changes
were made manually.  This is not necessarily exhaustive as formatting
variants may have prevented my grep from finding some such
definitions.

Regarding the changes to files from GMP, they may originally have been
omitted when removing __STDC__ conditionals because of the files
coming from another package, but (a) GMP no longer has __STDC__
conditionals there anyway and (b) we don't try to keep these files
verbatim in sync with GMP (and there are licensing differences), so
making the change to them in glibc seems reasonable.

Tested for x86_64 and x86 (testsuite - this patch affects files
containing assertions).

	* debug/fortify_fail.c (__fortify_fail): Convert to
	prototype-style function definition.  Use internal_function.
	* libio/genops.c (save_for_backup): Convert to prototype-style
	function definition.
	* libio/wgenops.c (save_for_wbackup): Likewise.
	* login/grantpt.c (grantpt): Likewise.
	* login/ptsname.c (ptsname): Likewise.
	(__ptsname_r): Likewise.
	* login/unlockpt.c (unlockpt): Likewise.
	* mach/msgserver.c (__mach_msg_server): Likewise.
	* misc/efgcvt.c (__APPEND (FUNC_PREFIX, fcvt)): Likewise.
	(__APPEND (FUNC_PREFIX, ecvt)): Likewise.
	(__APPEND (FUNC_PREFIX, gcvt)): Likewise.
	* misc/efgcvt_r.c (__APPEND (FUNC_PREFIX, fcvt_r)): Likewise.
	(__APPEND (FUNC_PREFIX, ecvt_r)): Likewise.
	* nptl/cleanup_compat.c (_pthread_cleanup_push): Likewise.
	* nptl/cleanup_defer_compat.c (_pthread_cleanup_push_defer):
	Likewise.
	* nptl/libc_pthread_init.c (__libc_pthread_init): Likewise.  Use
	internal_function.
	* nptl/pthread_atfork.c (__pthread_atfork): Convert to
	prototype-style function definition.
	* nptl/pthread_create.c (__pthread_create_2_1): Likewise.
	[SHLIB_COMPAT(libpthread, GLIBC_2_0, GLIBC_2_1)]
	(__pthread_create_2_0): Likewise.
	* nptl/pthread_key_create.c (__pthread_key_create): Likewise.
	* nptl/register-atfork.c (__register_atfork): Likewise.
	* posix/glob.c (glob): Likewise.
	* posix/regcomp.c (re_comp): Likewise.
	* posix/regexec.c (re_exec): Likewise.
	* stdlib/add_n.c [__STDC__]: Make code unconditional.
	[!__STDC__]: Remove conditional code.
	* stdlib/cmp.c [__STDC__]: Make code unconditional.
	[!__STDC__]: Remove conditional code.
	* stdlib/divmod_1.c [__STDC__]: Make code unconditional.
	[!__STDC__]: Remove conditional code.
	* stdlib/divrem.c [__STDC__]: Make code unconditional.
	[!__STDC__]: Remove conditional code.
	* stdlib/lshift.c [__STDC__]: Make code unconditional.
	[!__STDC__]: Remove conditional code.
	* stdlib/mod_1.c [__STDC__]: Make code unconditional.
	[!__STDC__]: Remove conditional code.
	* stdlib/mul.c [__STDC__]: Make code unconditional.
	[!__STDC__]: Remove conditional code.
	* stdlib/mul_n.c [__STDC__]: Make code unconditional.
	[!__STDC__]: Remove conditional code.
	* stdlib/rshift.c [__STDC__]: Make code unconditional.
	[!__STDC__]: Remove conditional code.
	* stdlib/strtod.c (INTERNAL (STRTOF)): Convert to prototype-style
	function definition.
	(STRTOF): Likewise.
	* stdlib/strtod_l.c (__STRTOF): Likewise.
	* stdlib/strtol.c (INTERNAL (strtol)): Likewise.
	* stdlib/strtol_l.c (INTERNAL (__strtol_l)): Likewise.
	(__strtol_l): Likewise.
	* stdlib/sub_n.c [__STDC__]: Make code unconditional.
	[!__STDC__]: Remove conditional code.
	* string/memrchr.c (MEMRCHR): Convert to prototype-style function
	definition.
	* string/strcasecmp.c (LOCALE_PARAM_DECL): Remove macro.
	[USE_IN_EXTENDED_LOCALE_MODEL] (LOCALE_PARAM): Include argument
	type.
	(__strcasecmp): Convert to prototype-style function definition.
	* string/strncase.c (LOCALE_PARAM_DECL): Remove macro.
	[USE_IN_EXTENDED_LOCALE_MODEL] (LOCALE_PARAM): Include argument
	type.
	(__strncasecmp): Convert to prototype-style function definition.
	* sunrpc/pm_getport.c (__libc_rpc_getport): Likewise.
	* sunrpc/xdr.c (xdr_union): Likewise.
	* sunrpc/xdr_array.c (xdr_array): Likewise.
	* sunrpc/xdr_ref.c (xdr_reference): Likewise.
	* sysdeps/m68k/m680x0/fpu/s_atan.c (__CONCATX(__,FUNC)): Likewise.
	* sysdeps/m68k/m680x0/fpu/s_isinf.c (__CONCATX(__,FUNC)):
	Likewise.
	* sysdeps/m68k/m680x0/fpu/s_scalbn.c (__CONCATX(__scalbn,suffix):
	Likewise.
	* sysdeps/m68k/m680x0/fpu/s_sincos.c (CONCATX(__,FUNC)): Likewise.
	* sysdeps/unix/sysv/linux/i386/scandir64.c (__old_scandir64):
	Likewise.
	* time/strftime_l.c (LOCALE_PARAM_DECL): Remove macro.
	(LOCALE_PARAM_PROTO): Likewise.
	[_LIBC && USE_IN_EXTENDED_LOCALE_MODEL] (LOCALE_PARAM): Include
	argument type.
	(ut_argument_spec): Remove macro.
	(ut_argument_spec_iso): Rename to ut_argument_spec.
	(memcpy_lowcase): Use LOCALE_PARAM in declaration.  Convert to
	prototype-style function definition.
	(memcpy_uppcase): Likewise.
	(__strftime_internal): Likewise.
	(my_strftime): Likewise.
	* time/strptime_l.c (LOCALE_PARAM_PROTO): Remove macro.
	(LOCALE_PARAM_DECL): Likewise.
	[_LIBC] (LOCALE_PARAM): Include argument type.
	(__strptime_internal): Convert to prototype-style function
	definition.
	(strptime): Likewise.
	* wcsmbs/wcscasecmp.c (LOCALE_PARAM_DECL): Remove macro.
	[USE_IN_EXTENDED_LOCALE_MODEL] (LOCALE_PARAM): Include argument
	type.
	(__wcscasecmp): Convert to prototype-style function definition.
	* wcsmbs/wcsncase.c (LOCALE_PARAM_DECL): Remove macro.
	[USE_IN_EXTENDED_LOCALE_MODEL] (LOCALE_PARAM): Include argument
	type.
	(__wcsncasecmp): Convert to prototype-style function definition.
2015-10-20 21:27:22 +00:00
Joseph Myers
ec999b8e5e Move bits/libc-lock.h and bits/libc-lockP.h out of bits/ (bug 14912).
It was noted in
<https://sourceware.org/ml/libc-alpha/2012-09/msg00305.html> that the
bits/*.h naming scheme should only be used for installed headers.
This patch renames bits/libc-lock.h to plain libc-lock.h and
bits/libc-lockP.h to plain libc-lockP.h to follow that convention.

Note that I don't know where libc-lockP.h comes from for Hurd (the
Hurd libc-lock.h includes libc-lockP.h, but the only libc-lockP.h in
the glibc source tree is for NPTL) - some unmerged patch? - but I
updated the #include in the Hurd libc-lock.h anyway.

Tested for x86_64 (testsuite, and that installed stripped shared
libraries are unchanged by the patch).

	[BZ #14912]
	* bits/libc-lock.h: Move to ...
	* sysdeps/generic/libc-lock.h: ...here.
	(_BITS_LIBC_LOCK_H): Rename macro to _LIBC_LOCK_H.
	* sysdeps/mach/hurd/bits/libc-lock.h: Move to ...
	* sysdeps/mach/hurd/libc-lock.h: ...here.
	(_BITS_LIBC_LOCK_H): Rename macro to _LIBC_LOCK_H.
	[_LIBC]: Include <libc-lockP.h> instead of <bits/libc-lockP.h>.
	* sysdeps/mach/bits/libc-lock.h: Move to ...
	* sysdeps/mach/libc-lock.h: ...here.
	(_BITS_LIBC_LOCK_H): Rename macro to _LIBC_LOCK_H.
	* sysdeps/nptl/bits/libc-lock.h: Move to ...
	* sysdeps/nptl/libc-lock.h: ...here.
	(_BITS_LIBC_LOCK_H): Rename macro to _LIBC_LOCK_H.
	* sysdeps/nptl/bits/libc-lockP.h: Move to ...
	* sysdeps/nptl/libc-lockP.h: ...here.
	(_BITS_LIBC_LOCKP_H): Rename macro to _LIBC_LOCKP_H.
	* crypt/crypt_util.c: Include <libc-lock.h> instead of
	<bits/libc-lock.h>.
	* dirent/scandir-tail.c: Likewise.
	* dlfcn/dlerror.c: Likewise.
	* elf/dl-close.c: Likewise.
	* elf/dl-iteratephdr.c: Likewise.
	* elf/dl-lookup.c: Likewise.
	* elf/dl-open.c: Likewise.
	* elf/dl-support.c: Likewise.
	* elf/dl-writev.h: Likewise.
	* elf/rtld.c: Likewise.
	* grp/fgetgrent.c: Likewise.
	* gshadow/fgetsgent.c: Likewise.
	* gshadow/sgetsgent.c: Likewise.
	* iconv/gconv_conf.c: Likewise.
	* iconv/gconv_db.c: Likewise.
	* iconv/gconv_dl.c: Likewise.
	* iconv/gconv_int.h: Likewise.
	* iconv/gconv_trans.c: Likewise.
	* include/link.h: Likewise.
	* inet/getnameinfo.c: Likewise.
	* inet/getnetgrent.c: Likewise.
	* inet/getnetgrent_r.c: Likewise.
	* intl/bindtextdom.c: Likewise.
	* intl/dcigettext.c: Likewise.
	* intl/finddomain.c: Likewise.
	* intl/gettextP.h: Likewise.
	* intl/loadmsgcat.c: Likewise.
	* intl/localealias.c: Likewise.
	* intl/textdomain.c: Likewise.
	* libidn/idn-stub.c: Likewise.
	* libio/libioP.h: Likewise.
	* locale/duplocale.c: Likewise.
	* locale/freelocale.c: Likewise.
	* locale/newlocale.c: Likewise.
	* locale/setlocale.c: Likewise.
	* login/getutent_r.c: Likewise.
	* login/getutid_r.c: Likewise.
	* login/getutline_r.c: Likewise.
	* login/utmp-private.h: Likewise.
	* login/utmpname.c: Likewise.
	* malloc/mtrace.c: Likewise.
	* misc/efgcvt.c: Likewise.
	* misc/error.c: Likewise.
	* misc/fstab.c: Likewise.
	* misc/getpass.c: Likewise.
	* misc/mntent.c: Likewise.
	* misc/syslog.c: Likewise.
	* nis/nis_call.c: Likewise.
	* nis/nis_callback.c: Likewise.
	* nis/nss-default.c: Likewise.
	* nis/nss_compat/compat-grp.c: Likewise.
	* nis/nss_compat/compat-initgroups.c: Likewise.
	* nis/nss_compat/compat-pwd.c: Likewise.
	* nis/nss_compat/compat-spwd.c: Likewise.
	* nis/nss_nis/nis-alias.c: Likewise.
	* nis/nss_nis/nis-ethers.c: Likewise.
	* nis/nss_nis/nis-grp.c: Likewise.
	* nis/nss_nis/nis-hosts.c: Likewise.
	* nis/nss_nis/nis-network.c: Likewise.
	* nis/nss_nis/nis-proto.c: Likewise.
	* nis/nss_nis/nis-pwd.c: Likewise.
	* nis/nss_nis/nis-rpc.c: Likewise.
	* nis/nss_nis/nis-service.c: Likewise.
	* nis/nss_nis/nis-spwd.c: Likewise.
	* nis/nss_nisplus/nisplus-alias.c: Likewise.
	* nis/nss_nisplus/nisplus-ethers.c: Likewise.
	* nis/nss_nisplus/nisplus-grp.c: Likewise.
	* nis/nss_nisplus/nisplus-hosts.c: Likewise.
	* nis/nss_nisplus/nisplus-initgroups.c: Likewise.
	* nis/nss_nisplus/nisplus-network.c: Likewise.
	* nis/nss_nisplus/nisplus-proto.c: Likewise.
	* nis/nss_nisplus/nisplus-pwd.c: Likewise.
	* nis/nss_nisplus/nisplus-rpc.c: Likewise.
	* nis/nss_nisplus/nisplus-service.c: Likewise.
	* nis/nss_nisplus/nisplus-spwd.c: Likewise.
	* nis/ypclnt.c: Likewise.
	* nptl/libc_pthread_init.c: Likewise.
	* nss/getXXbyYY.c: Likewise.
	* nss/getXXent.c: Likewise.
	* nss/getXXent_r.c: Likewise.
	* nss/nss_db/db-XXX.c: Likewise.
	* nss/nss_db/db-netgrp.c: Likewise.
	* nss/nss_db/nss_db.h: Likewise.
	* nss/nss_files/files-XXX.c: Likewise.
	* nss/nss_files/files-alias.c: Likewise.
	* nss/nsswitch.c: Likewise.
	* posix/regex_internal.h: Likewise.
	* posix/wordexp.c: Likewise.
	* pwd/fgetpwent.c: Likewise.
	* resolv/res_hconf.c: Likewise.
	* resolv/res_libc.c: Likewise.
	* shadow/fgetspent.c: Likewise.
	* shadow/lckpwdf.c: Likewise.
	* shadow/sgetspent.c: Likewise.
	* socket/opensock.c: Likewise.
	* stdio-common/reg-modifier.c: Likewise.
	* stdio-common/reg-printf.c: Likewise.
	* stdio-common/reg-type.c: Likewise.
	* stdio-common/vfprintf.c: Likewise.
	* stdio-common/vfscanf.c: Likewise.
	* stdlib/abort.c: Likewise.
	* stdlib/cxa_atexit.c: Likewise.
	* stdlib/fmtmsg.c: Likewise.
	* stdlib/random.c: Likewise.
	* stdlib/setenv.c: Likewise.
	* string/strsignal.c: Likewise.
	* sunrpc/auth_none.c: Likewise.
	* sunrpc/bindrsvprt.c: Likewise.
	* sunrpc/create_xid.c: Likewise.
	* sunrpc/key_call.c: Likewise.
	* sunrpc/rpc_thread.c: Likewise.
	* sysdeps/arm/backtrace.c: Likewise.
	* sysdeps/generic/ldsodefs.h: Likewise.
	* sysdeps/generic/stdio-lock.h: Likewise.
	* sysdeps/generic/unwind-dw2-fde.c: Likewise.
	* sysdeps/i386/backtrace.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/nldbl-compat.c: Likewise.
	* sysdeps/m68k/backtrace.c: Likewise.
	* sysdeps/mach/hurd/cthreads.c: Likewise.
	* sysdeps/mach/hurd/dirstream.h: Likewise.
	* sysdeps/mach/hurd/malloc-machine.h: Likewise.
	* sysdeps/nptl/malloc-machine.h: Likewise.
	* sysdeps/nptl/stdio-lock.h: Likewise.
	* sysdeps/posix/dirstream.h: Likewise.
	* sysdeps/posix/getaddrinfo.c: Likewise.
	* sysdeps/posix/system.c: Likewise.
	* sysdeps/pthread/aio_suspend.c: Likewise.
	* sysdeps/s390/s390-32/backtrace.c: Likewise.
	* sysdeps/s390/s390-64/backtrace.c: Likewise.
	* sysdeps/unix/sysv/linux/check_pf.c: Likewise.
	* sysdeps/unix/sysv/linux/if_index.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/getutent_r.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/getutid_r.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/getutline_r.c: Likewise.
	* sysdeps/unix/sysv/linux/shm-directory.c: Likewise.
	* sysdeps/unix/sysv/linux/system.c: Likewise.
	* sysdeps/x86_64/backtrace.c: Likewise.
	* time/alt_digit.c: Likewise.
	* time/era.c: Likewise.
	* time/tzset.c: Likewise.
	* wcsmbs/wcsmbsload.c: Likewise.
	* nptl/tst-initializers1.c (do_test): Refer to <libc-lock.h>
	instead of <bits/libc-lock.h> in comment.
2015-09-08 21:11:03 +00:00
Joseph Myers
b168057aaa Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
Allan McRae
d4697bc93d Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
Joseph Myers
568035b787 Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
Paul Eggert
59ba27a63a Replace FSF snail mail address with URLs. 2012-02-09 23:18:22 +00:00
Roland McGrath
1d446ec644 * misc/efgcvt.c: Include <math_ldbl_opt.h> instead of <shlib-compat.h>.
* misc/efgcvt_r.c: Likewise.
2006-01-14 12:54:45 +00:00
Roland McGrath
c6251f036c * math/math.h [__NO_LONG_DOUBLE_MATH] (__nldbl_nexttowardf): New
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.
2006-01-14 12:10:44 +00:00
Ulrich Drepper
a334319f65 (CFLAGS-tst-align.c): Add -mpreferred-stack-boundary=4. 2004-12-22 20:10:10 +00:00
Jakub Jelinek
0ecb606cb6 2.5-18.1 2007-07-12 18:26:36 +00:00
Roland McGrath
c877418f2e * include/libc-symbols.h (__libc_freeres_fn_section, libc_freeres_fn):
New macros.
	* elf/dl-close.c (free_mem): Use libc_freeres_fn macro, remove
	text_set_element.
	* elf/dl-libc.c (free_mem): Likewise.
	* iconv/gconv_conf.c (free_mem): Likewise.
	* iconv/gconv_db.c (free_mem): Likewise.
	* iconv/gconv_dl.c (free_mem): Likewise.
	* iconv/gconv_cache.c (free_mem): Likewise.
	* intl/finddomain.c (free_mem): Likewise.
	* intl/dcigettext.c (free_mem): Likewise.
	* locale/setlocale.c (free_mem): Likewise.
	* misc/fstab.c (fstab_free): Likewise.
	* nss/nsswitch.c (free_mem): Likewise.
	* posix/regcomp.c (free_mem): Likewise.
	* resolv/gai_misc.c (free_res): Likewise.
	* stdlib/fmtmsg.c (free_mem): Likewise.
	* sunrpc/clnt_perr.c (free_mem): Likewise.
	* sysdeps/generic/setenv.c (free_mem): Likewise.
	* sysdeps/unix/sysv/linux/shm_open.c (freeit): Likewise.
	* sysdeps/pthread/aio_misc.c (free_res): Likewise.
	* time/tzset.c (free_mem): Likewise.
	* malloc/mtrace.c (release_libc_mem): Add __libc_freeres_fn_section.
	* locale/loadarchive.c (_nl_archive_subfreeres): Likewise.
	* malloc/set-freeres.c (__libc_freeres): Likewise.

	* login/getutent.c: Include stdlib.h instead of stddef.h.
	(buffer): Change into pointer to utmp, add libc_freeres_ptr.
	(__getutent): Allocate buffer the first time it is run.
	* login/getutid.c: Include stdlib.h instead of stddef.h.
	(buffer): Change into pointer to utmp, add libc_freeres_ptr.
	(__getutid): Allocate buffer the first time it is run.
	* login/getutline.c: Include stdlib.h instead of stddef.h.
	(buffer): Change into pointer to utmp, add libc_freeres_ptr.
	(__getutline): Allocate buffer the first time it is run.
	* malloc/mtrace.c (malloc_trace_buffer): Change into char *.
	(mtrace): Allocate malloc_trace_buffer.
	* resolv/nsap_addr.c (inet_nsap_ntoa): Decrease size of tmpbuf.
	* resolv/ns_print.c (ns_sprintrrf): Decrease size of t.
	* string/strerror.c: Include libintl.h and errno.h.
	(buf): New variable.
	(strerror): Only allocate buffer if actually needed (unknown error).
	* time/tzfile.c (transitions): Add libc_freeres_ptr.
	(freeres): Remove.

2002-10-25  Jakub Jelinek  <jakub@redhat.com>

	* include/libc-symbols.h (libc_freeres_ptr): New macro.
	* malloc/set-freeres.c (__libc_freeres_ptrs): Define using
	symbol_set_define.
	(__libc_freeres): Free all pointers in that section.
	* Makerules (build-shlib): Add $(LDSEDCMD-$(@F:lib%.so=%).so) to sed
	commands when creating .lds script.
	(LDSEDCMD-c.so): New variable.
	* inet/rcmd.c (ahostbuf): Change into char *.  Add libc_freeres_ptr.
	(rcmd_af): Use strdup to allocate ahostbuf.
	* inet/rexec.c (ahostbuf): Change into char *.  Add libc_freeres_ptr.
	(rexec_af): Use strdup to allocate ahostbuf.
	* stdio-common/reg-printf.c (printf_funcs): Remove.
	(__printf_arginfo_table): Change into printf_arginfo_function **.
	Add libc_freeres_ptr.
	(__register_printf_function): Allocate __printf_arginfo_table
	and __printf_function_table the first time it is called.
	* stdio-common/printf-parse.h (__printf_arginfo_table): Change into
	printf_arginfo_function **.
	(parse_one_spec): Add __builtin_expect.
	* grp/fgetgrent.c (buffer): Add libc_freeres_ptr.
	(free_mem): Remove.
	* inet/getnetgrent.c (buffer): Add libc_freeres_ptr.
	(free_mem): Remove.
	* intl/localealias.c (libc_freeres_ptr): Define if !_LIBC.
	(string_space, map): Add libc_freeres_ptr.
	(free_mem): Remove.
	* misc/efgcvt.c (FCVT_BUFPTR): Add libc_freeres_ptr.
	(free_mem): Remove.
	* misc/mntent.c (getmntent_buffer): Add libc_freeres_ptr.
	(free_mem): Remove.
	* crypt/md5-crypt.c (libc_freeres_ptr): Define if !_LIBC.
	(buffer): Add libc_freeres_ptr.
	(free_mem): Remove for _LIBC.
	* nss/getXXbyYY.c (buffer): Add libc_freeres_ptr.
	(free_mem): Remove.
	* nss/getXXent.c (buffer): Add libc_freeres_ptr.
	(free_mem): Remove.
	* pwd/fgetpwent.c (buffer): Add libc_freeres_ptr.
	(free_mem): Remove.
	* resolv/res_hconf.c (ifaddrs): Add libc_freeres_ptr.
	(free_mem): Remove.
	* shadow/fgetspent.c (buffer): Add libc_freeres_ptr.
	(free_mem): Remove.
	* sysdeps/posix/ttyname.c (getttyname_name): Add libc_freeres_ptr.
	(free_mem): Remove.
	* sysdeps/unix/sysv/linux/getsysstats.c (mount_proc): Add
	libc_freeres_ptr.
	(free_mem): Remove.
	* sysdeps/unix/sysv/linux/ttyname.c (getttyname_name, ttyname_buf): Add
	libc_freeres_ptr.
	(free_mem): Remove.

2002-10-30  Jakub Jelinek  <jakub@redhat.com>

	* malloc/obstack.c [_LIBC] (obstack_free): Change into strong_alias
	instead of duplicating the whole function in libc.
2002-11-01 20:44:15 +00:00
Andreas Jaeger
41bdb6e20c Update to LGPL v2.1.
2001-07-06  Paul Eggert  <eggert@twinsun.com>

	* manual/argp.texi: Remove ignored LGPL copyright notice; it's
	not appropriate for documentation anyway.
	* manual/libc-texinfo.sh: "Library General Public License" ->
	"Lesser General Public License".

2001-07-06  Andreas Jaeger  <aj@suse.de>

	* All files under GPL/LGPL version 2: Place under LGPL version
	2.1.
2001-07-06 04:58:11 +00:00
Ulrich Drepper
887e7ab6c5 Update.
2000-12-13  Jakub Jelinek  <jakub@redhat.com>

	* misc/efgcvt.c (FCVT_MAXDIG): Define.
	(FCVT_BUFPTR): New variable.
	(fcvt): If fcvt_r returns -1 on the static short buffer,
	try to malloc a sufficiently large one and retry.
	(free_mem): New function.
	* misc/qefgcvt.c (FCVT_MAXDIG): Define.
	* misc/tst-efgcvt.c (fcvt_tests): Add new test.

2000-12-15  Ulrich Drepper  <drepper@redhat.com>

	* misc/dirname.c (dirname): Fix search for second to last slash.

2000-12-13  Andreas Jaeger  <aj@suse.de>

	* misc/tst-dirname.c (main): Fix typo in test to really use
	the examples from Unix98.
	Reported by Michael Kerrisk <mtk16@ext.canterbury.ac.nz>.
2000-12-16 07:54:18 +00:00
Ulrich Drepper
f9a2a6369d Update.
1999-07-29  Andreas Schwab  <schwab@suse.de>

	* misc/efgcvt.c (NDIGIT_MAX): Provide precomputed constants for
	all floating point formats supported by gcc.  Error out for
	unhandled precisions.
	* misc/efgcvt_r.c (NDIGIT_MAX): Likewise.
	* misc/qefgcvt.c (NDIGIT_MAX): Likewise.
	* misc/qefgcvt_r.c (NDIGIT_MAX): Likewise.
1999-07-29 22:34:58 +00:00
Ulrich Drepper
b113c12c35 Update.
1999-07-28  Ulrich Drepper  <drepper@cygnus.com>

	* misc/efgcvt.c: Use IEEE 854 formula to compute the number of digits
	to print.
	* misc/efgcvt_r.c: Likewise.
	* misc/qefgcvt.c: Likewise.
	* misc/qefgcvt_r.c: Likewise.
	* misc/tst-efgcvt.c: Remove one test which cannot reliably be run
	anymore.
1999-07-28 22:39:04 +00:00
Ulrich Drepper
67994d6f60 Update.
1999-06-23  Ulrich Drepper  <drepper@cygnus.com>

	* manual/arith.texi: Document restriction of ndigit parameter of
	ecvt and friends.
	* misc/efgcvt.c: Define NDIGIT_MAX.
	(gcvt): Limit precision in sprintf call to NDIGIT_MAX.
	Do not dynamically allocate the static buffers.  They are small enough.
	* misc/efgcvt_r.c: Define NDIGIT_MAX.
	(fcvt_r): Limit precision in snprintf call to NDIGIT_MAX.
	* misc/qefgcvt.c: Define NDIGIT_MAX.
	* misc/qefgcvt_r.c: Likewise.
	* misc/tst-efgcvt.c (special): Add test for large ndigit parameter.
1999-06-23 12:38:51 +00:00
Ulrich Drepper
1cab544423 Update.
1997-10-31 23:16  Ulrich Drepper  <drepper@cygnus.com>

	* posix/glob.c (glob): If calling glob_in_dir for a list which was
	generated by a glob call disable GLOB_ERR since there might be
	non-directories in the list (PR203).

	* posix/glob.h (GLOB_ONLYDIR): New flag.
	(__GLOB_FLAGS): Add GLOB_ONLYDIR.
	* posix/glob.c: Define HAVE_D_TYPE if _DIRENT_HAVE_D_TYPE is defined.
	(glob): Add GLOB_ONLYDIR to recursive call to match dirname.
	(glob_in_dir) [HAVE_D_TYPE]: While reading directory entries test
	whether they are directories if GLOB_ONLYDIR flag is given.
	* manual/pattern.texi: Document GLOB_ONLYDIR.

	* misc/Makefile (tests): Add tst-fdset.

	* sysdeps/i386/bits/select.h: Rewrite asm macros to be cleaner.

	* sysdeps/unix/sysv/linux/Dist: Add xstatconv.c.
	* sysdeps/unix/sysv/linux/alpha/Dist: Likewise.

	* time/strptime.c (strptime_internal): In %y format, regard years
	>= 69 as of twentieth century, all other as of twenty-first.

	* time/tzset.c: Correct typo and little optimization.

1997-10-31 16:01  Ulrich Drepper  <drepper@cygnus.com>

	* inet/getnetgrent.c: Allocate buffer dynamically if needed.
	Suggested by Joe Keane <jgk@jgk.org>.

1997-10-31  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* io/ftw.h: Declare __ftw64_func_t and __nftw64_func_t only when
	__USE_FILE_OFFSET64 || __USE_LARGEFILE64 is true.

1997-10-30 05:47  Ulrich Drepper  <drepper@cygnus.com>

	* misc/mntent.c: Don't use statically allocated buffer.  Allocate
	it dynamically if necessary.
	* misc/efgcvt.c: Likewise.
	Patch by Joe Keane <jgk@jgk.org>.

	* misc/mntent.c: Allow freeing of allocated buffer in
	__libc_subfreeres.
	* misc/efgcvt.c: Likewise.

	* misc/efgcvt.c: Call correct reentrant functions.
	Use better values for MAXDIG.
	* misc/qefgcvt.c: Use better values for MAXDIG.

1997-10-29 18:48   Richard Henderson  <rth@cygnus.com>

	* sysdeps/unix/sysv/linux/Makefile [io]: Add xstatconv.
	* sysdeps/unix/sysv/linux/alpha/xstatconv.c: New file.  Convert
	between kernel_stat and the userland version indicated.
	* sysdeps/unix/sysv/linux/xstatconv.c: Likewise.
	* sysdeps/unix/sysv/linux/bits/stat.h: Define _STAT_VER_KERNEL.

	* sysdeps/unix/sysv/linux/fxstat.c: Defer to __xstat_conv.  Alias
	to __*xstat64 if requested.
	* sysdeps/unix/sysv/linux/lxstat.c: Likewise.
	* sysdeps/unix/sysv/linux/xstat.c: Likewise.

	* sysdeps/unix/sysv/linux/alpha/bits/stat.h: Add struct stat64.
	Increment _STAT_VER, and make struct stat the same.
	* sysdeps/unix/sysv/linux/alpha/bits/types.h: Add __ino64_t, and
	__off64_t.  Reorganize.
	* sysdeps/unix/sysv/linux/alpha/kernel_stat.h: Add struct glibc2_stat
	for backward compatibility.  Define XSTAT_IS_XSTAT64.

	* sysdeps/unix/sysv/linux/alpha/fxstat64.c: Empty file.
	* sysdeps/unix/sysv/linux/alpha/lxstat64.c: Likewise.
	* sysdeps/unix/sysv/linux/alpha/xstat64.c: Likewise.

	* sysdeps/unix/sysv/linux/alpha/bits/dirent.h (struct dirent): For
	consistency, force d_ino to use ino_t and supply padding.

1997-10-29 18:47  Richard Henderson  <rth@cygnus.com>

	* libio/iofopen.c: Correct weak_alias.
1997-10-31 22:55:02 +00:00
Ulrich Drepper
19361cb768 update from main archive 970129
1997-01-30 03:24  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/i386/elf/start.S (_start): Align stack pointer to
	double word boundary before pushing args for main.  This way we
	don't get penalties for misaligned memory accesses.  Reported by
	Edward Seidl <seidl@janed.com>.

	* Makefile: Correct *my* changes of Richards patch of 1997-01-28 10:51.
	Patch by HJ Lu.

	* misc/bsd-compat.c: Update copyright.
	* misc/efgcvt.c: Likewise.
	* misc/efgcvt_r.c: Likewise.
	* misc/error.c: Likewise.
	* misc/error.h: Likewise.
	* misc/fstab.c: Likewise.
	* misc/init-misc.c: Likewise.
	* misc/lsearch.c: Likewise.
	* misc/mntent.c: Likewise.
	* misc/qefgcvt.c: Likewise.
	* misc/qefgcvt_r.c: Likewise.
	* nss/databases.def: Likewise.
	* nss/db-Makefile: Likewise.
	* nss/ethers-lookup.c: Likewise.
	* nss/hosts-lookup.c: Likewise.
	* nss/netgrp-lookup.c: Likewise.
	* nss/nsswitch.h: Likewise.
	* nss/proto-lookup.c: Likewise.
	* nss/rpc-lookup.c: Likewise.
	* nss/service-lookup.c: Likewise.
	* nss/nss_db/db-netgrp.c: Likewise.
	* nss/nss_files/files-grp.c: Likewise.
	* nss/nss_files/files-hosts.c: Likewise.
	* nss/nss_files/files-network.c: Likewise.
	* nss/nss_files/files-proto.c: Likewise.
	* nss/nss_files/files-pwd.c: Likewise.
	* nss/nss_files/files-rpc.c: Likewise.
	* nss/nss_files/files-service.c: Likewise.
	* nss/nss_files/files-spwd.c: Likewise.
	* shadow/fgetspent.c: Likewise.
	* shadow/fgetspent_r.c: Likewise.
	* shadow/getspent.c: Likewise.
	* shadow/getspent_r.c: Likewise.
	* shadow/getspnam.c: Likewise.
	* shadow/getspnam_r.c: Likewise.
	* shadow/putspent.c: Likewise.
	* shadow/sgetspent.c: Likewise.
	* shadow/sgetspent_r.c: Likewise.
	* sysdeps/i386/init-first.c: Likewise.
	* sysdeps/unix/i386/sysdep.S: Likewise.

	* shadow/shadow.h: Don't use __USE_REENTRENT.  All code must be
	prepared to be running in a multi-threaded environment.  Change
	to __USE_MISC unless the function is defined in POSIX.1 (in this
	case also test for __USE_POSIX).
	* dirent/dirent.h: Likewise.
	* grp/grp.h: Likewise.
	* inet/aliases.h: Likewise.
	* libio/libio.h: Likewise.
	* libio/stdio.h: Likewise.
	* login/utmp.h: Likewise.
	* math/mathcalls.h: Likewise.
	* misc/mntent.h: Likewise.
	* pwd/pwd.h: Likewise.
	* resolv/netdb.h: Likewise.
	* stdlib/stdlib.h: Likewise.
	* string/string.h: Likewise.
	* sunrpc/rpc/netdb.h: Likewise.
	* sysdeps/generic/crypt.h: Likewise.
	* sysdeps/unix/sysv/linux/errnos.h: Likewise.
	* time/time.h: Likewise.

1997-01-30 00:27  Fila Kolodny  <fila@ibi.com>

	* sunrpc/Makefile (install-others): Add rpcsvc/bootparam_prot.h
	only if not cross compiling.

1997-01-29 16:16  Fila Kolodny  <fila@ibi.com>

	* sysdeps/posix/sigpause.c: Include <stddef.h> to get definition of
	NULL.
	* sysdeps/posix/sigwait.c: Likewise.

1997-01-28 23:42  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* Makeconfig ($(common-objpfx)config.make): Depend on
	$(..)config.make.in.
1997-01-30 04:09:36 +00:00
Roland McGrath
2064087b5f Sun Jul 14 01:51:39 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* manual/Makefile (glibc-targets): Variable and targets removed.

Sat Jul 13 23:50:17 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* manual/Makefile (lib): New phony target.  Depend on stamp files.
	($(objpfx)stamp%-$(subdir)): New rule to create them when necessary.

1996-07-13  Paul Eggert  <eggert@twinsun.com>

	* time/strftime.c (strftime): Use space padding for %e, %k, %l,
	to match Emacs format-time-string specification.
	(DO_NUMBER_SPACEPAD): Renamed from DO_NUMBER_NOPAD.

Sat Jul 13 20:17:38 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* elf/dl-deps.c (_dl_map_object_deps): Take new args PRELOADS and
	NPRELOADS, vector of `struct link_map *'s; add them to the searchlist
	between MAP and its deps.
	* elf/link.h: Fix decl.
	* elf/rtld.c (dl_main): If not secure, parse LD_PRELOAD for
	colon-separated list of names, map those and pass vector of ptrs as
	PRELOADS list to _dl_map_object_deps.
	* elf/dl-runtime.c (_dl_object_relocation_scope): Pass new args to
	_dl_map_object_deps with empty preload list.
	* elf/dl-open.c (_dl_open): Likewise.

	* sysdeps/mach/hurd/dl-sysdep.c (_dl_sysdep_open_zero_fill): Function
	removed.
	(__mmap): Pass MACH_PORT_NULL for memobj port when (flags & MAP_ANON).
	* sysdeps/generic/dl-sysdep.c (_dl_sysdep_open_zero_fill):
	Conditionalize defn on [! MAP_ANON].
	* elf/dl-minimal.c (malloc): Conditionalize use of _dl_zerofd
	on [! MAP_ANON].
	* elf/rtld.c (dl_main): Likewise.
	* elf/dl-load.c (_dl_zerofd): Conditionalize defn on [! MAP_ANON].
	(_dl_map_object_from_fd): Conditionalize initialization of _dl_zerofd.

	* elf/dl-fini.c (_dl_fini): Skip finalizer for executable itself.

Sat Jul 13 02:47:53 1996  David Mosberger-Tang  <davidm@azstarnet.com>

	* stdlib/random.c (__random): Declare as int32_t to be in sync
	with declaration.

	* socket/Makefile (headers): Add socketbits.h.

	* misc/mntent.c (endmntent): Allow for NULL stream.  SunOS does
	it that way.

	* grp/initgroups.c (initgroups): Add groups that user is a member
 	of, not the ones he is _not_ a member of.

	* nss/nsswitch.c (known_compare): Make known_compare() a static
 	instead of a local function.  The latter are difficult to debug
 	and slow to execute on certain platforms.

	* sysdeps/posix/ttyname_r.c (ttyname_r): Use sizeof (dev) - 1 in
 	place of sizeof (dev).  The size of a literal string includes the
 	NUL byte.

	* sysdeps/unix/getlogin.c (getlogin): Initialize ut_fd with -1.

Thu Jul 11 16:59:10 1996  David Mosberger-Tang  <davidm@azstarnet.com>

	* misc/mntent.c (addmntent): Seek to end of file before writing
 	entry.  Return 1 on error, not -1.

Tue Jul  9 19:08:05 1996  David Mosberger-Tang  <davidm@azstarnet.com>

	* sysdeps/unix/sysv/linux/syscalls.list: Mark bdflush as EXTRA
	syscall.

Fri Jul  5 18:44:55 1996  David Mosberger-Tang  <davidm@azstarnet.com>

	* sysdeps/unix/sysv/linux/alpha/ioperm.c (port_to_cpu_addr): Size
 	shift amount for Jensen must be 5 not 4.

Sat Jul 13 20:04:28 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* socket/sys/socket.h (struct osockaddr): New type.

Sat Jul 13 03:50:53 1996  Ulrich Drepper  <drepper@cygnus.com>

	* misc/Makefile (routines): Add qefgcvt and qefgcvt_r.
	* misc/efgcvt.c, misc/efgcvt_r.c: Change code so that the `double'
	and `long double' versions can be generated.
	* misc/qefgcvt.c, misc/qefgcvt_r.c: New files.  Define macros
	so that included efgcvt{,_r}.c file generate `long double'
	versions.
	* stdlib/stdlib.h: Add prototypes for q[efg]cvt() and q[ef]cvt_r()
	functions.

	* manual/startup.texi: Document new getsubopt function.
	* manual/examples/subopt.c: New example program for documenting
	getsubopt function.

Fri Jul 12 23:58:37 1996  Ulrich Drepper  <drepper@cygnus.com>

	* stdlib/Makefile (routines): Add getsubopt.
	* stdlib/stdlib.h: Add prototype for getsubopt.
	* stdlib/getsubopt.c: New file.  Implement getsubopt function
	to handle suboption parsing.
1996-07-14 06:04:09 +00:00
Roland McGrath
52e9a9d118 Thu Mar 14 06:01:07 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu>
* string/strnlen.c: New file.
	* string/Makefile (routines): Add strnlen.
	* string/string.h [__USE_GNU] (strnlen): Declare new function.
	[__OPTIMIZE__]: Define extern inline implementation of it.

	* stdlib/erand48_r.c: Use __mpn_construct_double instead of ldexp and
	addition, to avoid using anything from -lm.

Mon Mar  4 21:57:14 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/unix/sysv/linux/m68k/Makefile: New file.

	* sysdeps/unix/sysv/linux/m68k/sysdep.h (SYS_ify): Redefine.
	(CALL_MCOUNT): New macro, empty unless [PROF].
	(ENTRY): Do CALL_MCOUNT just after the label.
	(JUMPTARGET): New macro.
	(SYSCALL_ERROR_HANDLER): Fix syntax.

Thu Mar 14 04:20:48 1996  Roland McGrath  <roland@charlie-brown.gnu.ai.mit.edu>

	* sysdeps/unix/sysv/linux/init-first.c (init): Call `__personality'
	function instead of using inline asm i386 syscall.
	* sysdeps/unix/sysv/linux/syscalls.list: Add personality syscall.

	* posix/unistd.h [__USE_BSD]: Declare usleep.

	* misc/efgcvt.c (MAXDIG): New macro computed from <floats.h> constants.
	(fcvt, ecvt): Use it for buffer size.

	* stdlib/drand48-iter.c (__drand48_iterate): Use u_int64_t instead of
	conditionalizing long vs long long.

	* stdlib/drand48-iter.c (__drand48_iterate): Don't check for null
	pointers; never return EFAULT.
	* stdlib/drand48_r.c (drand48_r): Likewise.
	* stdlib/erand48_r.c (erand48_r): Likewise.
1996-03-14 11:20:03 +00:00
Roland McGrath
60478656fa Sat Sep 16 17:47:19 1995 Ulrich Drepper <drepper@ipd.info.uni-karlsruhe.de>
* elf/elf.h (AT_GID): Fix typo: Read -> Real.

	* misc/efgvt_r.c: New file.  Reentrant version of [efg]cvt functions.
	* misc/efgcvt.c: Rewrite to use reentrant functions.
	* misc/hsearch_r.c: New file.  Reentrant version of functions from
	hsearch family.
	* misc/hsearch.c, misc/tsearch.c: New files.
	* misc/Makefile (routines): Add efgcvt_r, hsearch_r, hsearch, tsearch.

	* posix/unistd.h (ttyname_r): Add prototype for new function.

	* stdlib/drand48_r.c, stdlib/erand48_r.c, stdlib/jrand48_r.c,
	stdlib/lrand48_r.c, stdlib/mrand48_r.c, stdlib/nrand48_r.c,
	stdlib/seed48_r.c, stdlib/srand48_r.c, stdlib/lcong48_r.c,
	stdlib/drand48-iter.c: New files implementing reentrant versions
	of functions from drand48 family.
	* stdlib/seed48.c, stdlib/drand48.c, stdlib/erand48.c,
	stdlib/jrand48.c, stdlib/lrand48.c, stdlib/mrand48.c,
	stdlib/nrand48.c, stdlib/srand48.c, stdlib/lcong48.c:
	Rewrite to use reentrant versions.
	* stdlib/a64l.c, stdlib/l64a.c: New files.  Implement a64l()
	and l64a() functions from SysV library.
	* stdlib/Makefile (routines): Add drand48_r, erand48_r, lrand48_r,
	nrand48_r, mrand48_r, jrand48_r, srand48_r, seed48_r, lcong48_r,
	drand48-iter, a64l, l64a.
	* stdlib/stdlib.h: Declare them.

	* stdlib/random_r.c: New file.  Reentrant version of functions
	from random family.
	* stdlib/stdlib.h: Declare them.
	* stdlib/random.c: Rewrite to use reentrant functions.

	* string/strerror_r.c: New file.  Reentrant version.
	* string/strerror.c: Change for new _strerror_internal form.
	* string/Makefile (routines): Add strerror_r.

	* sysdeps/generic/dl-sysdep.c (_dl_sysdep_start): Set default
	value of user_entry to `_start'.
	Close AT_ENTRY case with `break'.

	* sysdeps/generic/strstr.c: New and much faster implementation
	by Stephen R. van den Berg.

	* sysdeps/generic/_strerror.c: _strerror_internal now takes
	three argument and has and explicit buffer length.
	* sysdeps/mach/_strerror.c: Change for new interface with three
	arguments.
	* stdio/perror.c, stdio/vfprintf.c: Callers changed.
	
	* sysdeps/mach/hurd/ttyname_r.c: New file.  Reentrant version.
	* sysdeps/posix/ttyname_r.c: New file.  Reentrant version.
	* sysdeps/stub/ttyname_r: New file.  Define as dummy function.

	* sysdeps/posix/utimes.c: Include <utime.h> for prototype.
	(utimes): First parameter to utime must be file, not path.

	* sysdeps/posix/sysconf.c (__sysconf): Test for CLK_TCK in case
	_SC_CLK_TCK and return it when available.
	Test for STREAM_MAX in case _SC_STREAM_MAX and return it when
	available.
	Add case for _SC_2_LOCALEDEF which is now available.

	* posix/sys/types.h [__USE_SVID] (key_t): New type.
	* sysvipc/Makefile, sysvipc/ftok.c, sysvipc/sys/ipc.h,
	sysvipc/sys/msg.h, sysvipc/sys/sem.h, sysvipc/sys/shm.h,
	sysdeps/stub/sys/msq_buf.h, sysdeps/stub/sys/sem_buf.h,
	sysdeps/stub/sys/shm_buf.h, sysdeps/stub/sys/ipc_buf.h,
	sysdeps/stub/semctl.c, sysdeps/stub/semget.c, sysdeps/stub/semop.c,
	sysdeps/stub/shmat.c, sysdeps/stub/shmctl.c, sysdeps/stub/shmdt.c,
	sysdeps/stub/shmget.c, sysdeps/stub/msgctl.c, sysdeps/stub/msgget.c,
	sysdeps/stub/msgrcv.c, sysdeps/stub/msgsnd.c: New files.
	Add implementation of System V IPC.
1995-09-17 20:23:15 +00:00
Roland McGrath
0923c7a543 Mon Feb 20 04:04:57 1995 Roland McGrath <roland@duality.gnu.ai.mit.edu>
* config.h.in [HAVE_ELF || HAVE_GNU_LD]: Define HAVE_WEAK_SYMBOLS.

	* stdlib/strtod.c (PASTE, PASTE1): New helper macros; use these in
 	access to float.h macros.

	* misc/efgcvt.c: New file.
	* misc/Makefile (routines): Add efgcvt.
1995-02-20 09:50:50 +00:00