Commit Graph

12 Commits

Author SHA1 Message Date
Joseph Myers
e02cabecf0 Refactor strtod parsing of NaN payloads.
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.
2015-11-24 22:24:52 +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
Thomas Schwinge
0007fc9bdd [BZ #15522] strtod ("nan(N)") returning a sNaN in some cases 2013-08-29 12:22:10 +02: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
Ulrich Drepper
ccadf7b534 Update.
2004-03-14  Ulrich Drepper  <drepper@redhat.com>

	Make the non-_l functions wrappers around the _l functions.
	* include/monetary.h: Declare __vstrmon_l.
	* include/string.h: Add libc_hidden_proto for __strcoll_l and
	__strxfrm_l.
	* include/time.h: Define ptime_locale_status.  Declare
	__strptime_internal.
	* include/wchar.h: Add libc_hidden_proto for __wcscoll_l and
	__wcsxfrm_l.
	* stdlib/strfmon.c: Move the code to strfmon_l.c.  Add little
	wrapper around __vstrfmon_l.
	* stdlib/strfmon_l.c: Add real implementation.  Split into new
	function __vstrfmon_l to allow calling it from strfmon.
	* stdlib/strtod.c: Move real code to strtod_l.c and add wrapper.
	* stdlib/strtod_l.c: Add real implementation.
	* stdlib/strtof.c: Adjust to changed strtod.c.
	* stdlib/strtof_l.c: Include strtod_l.c now.
	* stdlib/strtold.c: New file.
	* stdlib/strtold_l.c: Removed.
	* string/strcoll.c: Move real code to strcoll_l.c: Add wrapper.
	* string/strcoll_l.c: Add real implementation.
	* string/strxfrm.c: Move real code to strxfrm_l.c: Add wrapper.
	* string/strxfrm_l.c: Add real implementation.
	* sysdeps/generic/strtol.c: Move real implementation to strtol_l.c.
	Add wrappers.
	* sysdeps/generic/strtol_l.c: Add real implementation.
	* sysdeps/generic/strtold.c: Removed.
	* sysdeps/generic/strtold_l.c: New file.
	* sysdeps/generic/strtoll_l.c: Include strtol_l.c now.  Adjust
	#defines.
	* sysdeps/generic/strtoul_l.c: Likewise.
	* sysdeps/generic/strtoull_l.c: Likewise.
	* sysdeps/generic/wcstol_l.c: Likewise.
	* sysdeps/generic/wcstoll_l.c: Likewise.
	* sysdeps/generic/wcstoul_l.c: Likewise.
	* sysdeps/generic/wcstoull_l.c: Likewise.
	* sysdeps/ieee754/ldbl-128/strtold.c: Removed.
	* sysdeps/ieee754/ldbl-128/strtold_l.c: New file.
	* sysdeps/ieee754/ldbl-96/strtold.c: Removed.
	* sysdeps/ieee754/ldbl-96/strtold_l.c: New file.
	* sysdeps/m68k/strtold.c: Removed.
	* sysdeps/m68k/strtold_l.c: New file.
	* time/strftime.c: Move real code to strftime_l.c.  Add wrapper.
	* time/strftime_l.c: Add real implementation.
	* time/strptime.c: Move real code to strptime_l.c.  Add wrapper.
	* time/strptime_l.c: Add real implementation.
	* time/wcsftime.c: Simplify since only wrappers are defined in
	strftime.c.
	* time/wcsftime_l.c: Include strftime_l.c.
	* wcsmbs/wcscoll.c: Simplify since the file is not used by wcscoll_l.c
	anymore.
	* wcsmbs/wcscoll_l.c: Include strcoll_l.c.
	* wcsmbs/wcsxfrm.c: Simplify since the file is not used by wcsxfrm_l.c
	anymore.
	* wcsmbs/wcsxfrm_l.c: Include strxfrm_l.c.
	* wcsmbs/wcstod.c: Prepare to include new strtod.c.
	* wcsmbs/wcstod_l.c: Include strtod_l.c.
	* wcsmbs/wcstof.c: Prepare to include new strtof.c.
	* wcsmbs/wcstof_l.c: Include strtof_l.c.
	* wcsmbs/wcstold.c: Prepare to include new strtold.c.
	* wcsmbs/wcstold_l.c: Include strtold_l.c.

	* locale/uselocale.c: Use _NL_CURRENT_LOCALE instead of __libc_tsd_get.

	* sysdeps/generic/strcasecmp.c: Optimize a bit.  It's better to get
	a reference to the current locale and then use the _l functions.
	* sysdeps/generic/strncase.c: Likewise.
2004-03-14 21:12:06 +00:00
Roland McGrath
1ab62b326e * locale/Versions (libc: GLIBC_2.3): Add all the *_l functions
with no __ prefix.
	* locale/langinfo.h [__USE_GNU]: Declare nl_langinfo_l.
	* ctype/ctype.h [__USE_GNU]: Add declarations and macros for
	all *_l functions with no __ prefix.
	* wctype/wcfuncs_l.c: Define weak aliases without __ for all fns.
	* ctype/ctype_l.c: Likewise.
	* locale/nl_langinfo.c: Likewise.
	* string/string.h [__USE_GNU]: Add decls for all *_l fns with no __.
	* stdlib/stdlib.h [__USE_GNU]: Likewise.
	* wcsmbs/wchar.h [__USE_GNU]: Likewise.
	* wctype/wctype.h [__USE_GNU]: Likewise.
	* string/strcoll_l.c (strcoll_l): Define as weak alias.
	* string/strxfrm_l.c (strxfrm_l): Define as weak alias.
	* sysdeps/generic/strcasecmp_l.c (strcasecmp_l): Define as weak alias.
	* sysdeps/generic/strncase_l.c (strncasecmp_l): Define as weak alias.
	* stdlib/strtod_l.c (strtod_l): Define as weak alias.
	* stdlib/strtof_l.c (strtof_l): Define as weak alias.
	* stdlib/strtold_l.c (strtold_l): Define as weak alias.
	* wcsmbs/wcscasecmp_l.c (wcscasecmp_l): Define as weak alias.
	(__wcscasecmp_l): Add libc_hidden_def.
	* wcsmbs/wcsncase_l.c (wcsncasecmp_l): Define as weak alias.
	(__wcsncasecmp_l): Add libc_hidden_def.
	* wcsmbs/wcstof_l.c (wcstof_l): Define as weak alias.
	* wcsmbs/wcstod_l.c (wcstod_l): Define as weak alias.
	* wcsmbs/wcstold_l.c (wcstold_l): Define as weak alias.
	* wcsmbs/wcscoll_l.c (wcscoll_l): Define as weak alias.
	* wcsmbs/wcsxfrm_l.c (wcsxfrm_l): Define as weak alias.
	* sysdeps/generic/wcstol_l.c (wcstol_l): Define as weak alias.
	* sysdeps/generic/wcstoll_l.c (wcstoll_l): Define as weak alias.
	* sysdeps/generic/wcstoul_l.c (wcstoul_l): Define as weak alias.
	* sysdeps/generic/wcstoull_l.c (wcstoull_l): Define as weak alias.
	* sysdeps/wordsize-64/wcstol_l.c (wcstoll_l): Define as weak alias.
	* sysdeps/wordsize-64/wcstoul_l.c (wcstoull_l): Define as weak alias.
	* wctype/wctrans_l.c (wctrans_l) Define as weak alias.
	* wctype/towctrans_l.c (towctrans_l) Define as weak alias.
	* wctype/wctype_l.c (wctype_l) Define as weak alias.
2002-08-06 08:40:20 +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
c3d6c95199 Update.
* stdlib/strtof_l.c: Declare ____strtoull_l_internal.
	* stdlib/strtod_l.c: Likewise.
	* stdlib/strtold_l.c: Likewise.

	* intl/gettextP.h [_LIBC] (SWAP): Use byteswap.h macros.
1998-04-09 21:07:26 +00:00
Ulrich Drepper
ebbad4cc83 Update.
1997-05-26 22:51  Ulrich Drepper  <drepper@cygnus.com>

	* configure.in: Use AC_PROG_CC_LOCAL instead of AC_PROC_CC.
	* aclocal.m4: Add AC_PROG_CC_LOCAL which does not fail for
	environments in which linking is not possible at configure time
	(since te libc is just build).
	Based on patches by Marcus G. Daniels <marcus@cathcart.sysc.pdx.edu>.

	* time/scheck.c (scheck): Make 2nd parameter const.
	* time/private.h: Likewise.

1997-05-26 18:58  Ulrich Drepper  <drepper@cygnus.com>

	* stdlib/random_r.c (__initstate_r): Initialize randomizer type in
	state array only at right place.
	Reported by Sven Verdoolaege <skimo@breughel.ufsia.ac.be>.

	* stdlib/erand48_r.c (__erand48_r): Don't generate numbers in
	[0.5,1.0) but really in [0.0, 1.0).
	Patch by Oliver Gathmann <gathmann@scar.utoronto.ca>.

1997-05-22 12:50  Eric Delaunay  <delaunay@lix.polytechnique.fr>

	* shlib-versions: Provide Linux/SPARC defaults.

1997-05-26 15:00  Matthias Urlichs  <urlichs@noris.de>

	* stdlib/strtod_l.c: Add missing #include <xlocale.h>.
	* stdlib/strtof_l.c: Likewise.
	* stdlib/strtol_l.c: Likewise.
	* stdlib/strtold_l.c: Likewise.
	* stdlib/strtoll_l.c: Likewise.
	* stdlib/strtoul_l.c: Likewise.
	* stdlib/strtoull_l.c: Likewise.

1997-05-26 02:42  Zack Weinberg  <zack@rabi.phys.columbia.edu>

	* hurd/dtable.c: De-ansidecl-fy.
	* math/test-math.c: Likewise.
	* signal/tst-signal.c: Likewise.
	* stdio/getc.c: Likewise.
	* stdio/obstream.c: Likewise.
	* stdio/putc.c: Likewise.
	* stdio-common/bug1.c: Likewise.
	* stdio-common/bug2.c: Likewise.
	* stdio-common/bug6.c: Likewise.
	* stdio-common/fscanf.c: Likewise.
	* stdlib/testsort.c: Likewise.
	* string/tester.c: Likewise.
	* sysdeps/am29k/ffs.c: Likewise.
	* sysdeps/generic/bb_init_func.c: Likewise.
	* sysdeps/generic/bcopy.c: Likewise.
	* sysdeps/generic/bzero.c: Likewise.
	* sysdeps/generic/div.c: Likewise.
	* sysdeps/generic/ffs.c: Likewise.
	* sysdeps/generic/memccpy.c: Likewise.
	* sysdeps/generic/memcpy.c: Likewise.
	* sysdeps/generic/memmove.c: Likewise.
	* sysdeps/generic/memset.c: Likewise.
	* sysdeps/generic/vfork.c: Likewise.
	* sysdeps/generic/vtimes.c: Likewise.
	* sysdeps/i386/bzero.c: Likewise.
	* sysdeps/i386/ffs.c: Likewise.
	* sysdeps/i960/ffs.c: Likewise.
	* sysdeps/m68k/ffs.c: Likewise.
	* sysdeps/m88k/ffs.c: Likewise.
	* sysdeps/mach/hurd/_exit.c: Likewise.
	* sysdeps/mach/hurd/accept.c: Likewise.
	* sysdeps/mach/hurd/access.c: Likewise.
	* sysdeps/mach/hurd/adjtime.c: Likewise.
	* sysdeps/mach/hurd/bind.c: Likewise.
	* sysdeps/mach/hurd/brk.c: Likewise.
	* sysdeps/mach/hurd/chdir.c: Likewise.
	* sysdeps/mach/hurd/chflags.c: Likewise.
	* sysdeps/mach/hurd/chmod.c: Likewise.
	* sysdeps/mach/hurd/chown.c: Likewise.
	* sysdeps/mach/hurd/chroot.c: Likewise.
	* sysdeps/mach/hurd/close.c: Likewise.
	* sysdeps/mach/hurd/connect.c: Likewise.
	* sysdeps/mach/hurd/defs.c: Likewise.
	* sysdeps/mach/hurd/dup2.c: Likewise.
	* sysdeps/mach/hurd/execve.c: Likewise.
	* sysdeps/mach/hurd/fchdir.c: Likewise.
	* sysdeps/mach/hurd/fchflags.c: Likewise.
	* sysdeps/mach/hurd/fchmod.c: Likewise.
	* sysdeps/mach/hurd/fchown.c: Likewise.
	* sysdeps/mach/hurd/fcntl.c: Likewise.
	* sysdeps/mach/hurd/fdopen.c: Likewise.
	* sysdeps/mach/hurd/flock.c: Likewise.
	* sysdeps/mach/hurd/fsync.c: Likewise.
	* sysdeps/mach/hurd/ftruncate.c: Likewise.
	* sysdeps/mach/hurd/getdtsz.c: Likewise.
	* sysdeps/mach/hurd/getegid.c: Likewise.
	* sysdeps/mach/hurd/geteuid.c: Likewise.
	* sysdeps/mach/hurd/getgid.c: Likewise.
	* sysdeps/mach/hurd/getgroups.c: Likewise.
	* sysdeps/mach/hurd/gethostid.c: Likewise.
	* sysdeps/mach/hurd/gethostname.c: Likewise.
	* sysdeps/mach/hurd/getitimer.c: Likewise.
	* sysdeps/mach/hurd/getlogin.c: Likewise.
	* sysdeps/mach/hurd/getpeername.c: Likewise.
	* sysdeps/mach/hurd/getpgid.c: Likewise.
	* sysdeps/mach/hurd/getpid.c: Likewise.
	* sysdeps/mach/hurd/getppid.c: Likewise.
	* sysdeps/mach/hurd/getsockname.c: Likewise.
	* sysdeps/mach/hurd/getsockopt.c: Likewise.
	* sysdeps/mach/hurd/getuid.c: Likewise.
	* sysdeps/mach/hurd/ioctl.c: Likewise.
	* sysdeps/mach/hurd/isatty.c: Likewise.
	* sysdeps/mach/hurd/link.c: Likewise.
	* sysdeps/mach/hurd/listen.c: Likewise.
	* sysdeps/mach/hurd/lseek.c: Likewise.
	* sysdeps/mach/hurd/mkdir.c: Likewise.
	* sysdeps/mach/hurd/open.c: Likewise.
	* sysdeps/mach/hurd/pipe.c: Likewise.
	* sysdeps/mach/hurd/read.c: Likewise.
	* sysdeps/mach/hurd/readlink.c: Likewise.
	* sysdeps/mach/hurd/reboot.c: Likewise.
	* sysdeps/mach/hurd/recv.c: Likewise.
	* sysdeps/mach/hurd/recvfrom.c: Likewise.
	* sysdeps/mach/hurd/rename.c: Likewise.
	* sysdeps/mach/hurd/rewinddir.c: Likewise.
	* sysdeps/mach/hurd/rmdir.c: Likewise.
	* sysdeps/mach/hurd/sbrk.c: Likewise.
	* sysdeps/mach/hurd/seekdir.c: Likewise.
	* sysdeps/mach/hurd/select.c: Likewise.
	* sysdeps/mach/hurd/setegid.c: Likewise.
	* sysdeps/mach/hurd/seteuid.c: Likewise.
	* sysdeps/mach/hurd/setgid.c: Likewise.
	* sysdeps/mach/hurd/setgroups.c: Likewise.
	* sysdeps/mach/hurd/sethostid.c: Likewise.
	* sysdeps/mach/hurd/sethostname.c: Likewise.
	* sysdeps/mach/hurd/setlogin.c: Likewise.
	* sysdeps/mach/hurd/setpgid.c: Likewise.
	* sysdeps/mach/hurd/setregid.c: Likewise.
	* sysdeps/mach/hurd/setreuid.c: Likewise.
	* sysdeps/mach/hurd/setrlimit.c: Likewise.
	* sysdeps/mach/hurd/setsid.c: Likewise.
	* sysdeps/mach/hurd/setsockopt.c: Likewise.
	* sysdeps/mach/hurd/settimeofday.c: Likewise.
	* sysdeps/mach/hurd/setuid.c: Likewise.
	* sysdeps/mach/hurd/shutdown.c: Likewise.
	* sysdeps/mach/hurd/sigaction.c: Likewise.
	* sysdeps/mach/hurd/sigaltstack.c: Likewise.
	* sysdeps/mach/hurd/sigpending.c: Likewise.
	* sysdeps/mach/hurd/sigprocmask.c: Likewise.
	* sysdeps/mach/hurd/sigstack.c: Likewise.
	* sysdeps/mach/hurd/sigsuspend.c: Likewise.
	* sysdeps/mach/hurd/socket.c: Likewise.
	* sysdeps/mach/hurd/socketpair.c: Likewise.
	* sysdeps/mach/hurd/stdio_init.c: Likewise.
	* sysdeps/mach/hurd/symlink.c: Likewise.
	* sysdeps/mach/hurd/sync.c: Likewise.
	* sysdeps/mach/hurd/sysd-stdio.c: Likewise.
	* sysdeps/mach/hurd/telldir.c: Likewise.
	* sysdeps/mach/hurd/truncate.c: Likewise.
	* sysdeps/mach/hurd/umask.c: Likewise.
	* sysdeps/mach/hurd/unlink.c: Likewise.
	* sysdeps/mach/hurd/wait4.c: Likewise.
	* sysdeps/mach/hurd/utimes.c: Likewise.
	* sysdeps/mach/hurd/write.c: Likewise.
	* sysdeps/mach/adjtime.c: Likewise.
	* sysdeps/mach/gettimeofday.c: Likewise.
	* sysdeps/mach/usleep.c: Likewise.
	* sysdeps/mips/__longjmp.c: Likewise.
	* sysdeps/posix/clock.c: Likewise.
	* sysdeps/posix/ctermid.c: Likewise.
	* sysdeps/posix/defs.c: Likewise.
	* sysdeps/posix/dup.c: Likewise.
	* sysdeps/posix/libc_fatal.c: Likewise.
	* sysdeps/posix/stdio_init.c: Likewise.
	* sysdeps/rs6000/ffs.c: Likewise.
	* sysdeps/sparc/e_sqrt.c: Likewise.
	* sysdeps/standalone/i386/force_cpu386/_exit.c: Likewise.
	* sysdeps/standalone/i386/force_cpu386/brdinit.c: Likewise.
	* sysdeps/standalone/i386/force_cpu386/console.c: Likewise.
	* sysdeps/standalone/i960/nindy960/_exit.c: Likewise.
	* sysdeps/standalone/i960/nindy960/brdinit.c: Likewise.
	* sysdeps/standalone/i960/nindy960/console.c: Likewise.
	* sysdeps/standalone/m68k/m68020/mvme136/_exit.c: Likewise.
	* sysdeps/standalone/m68k/m68020/mvme136/brdinit.c: Likewise.
	* sysdeps/standalone/brk.c: Likewise.
	* sysdeps/stub/_exit.c: Likewise.
	* sysdeps/stub/brdinit.c: Likewise.
	* sysdeps/stub/console.c: Likewise.
	* sysdeps/stub/defs.c: Likewise.
	* sysdeps/stub/errlist.c: Likewise.
	* sysdeps/stub/libc_fatal.c: Likewise.
	* sysdeps/stub/siglist.c: Likewise.
	* sysdeps/stub/stdio_init.c: Likewise.
	* sysdeps/stub/strtsupp.c: Likewise.
	* sysdeps/unix/bsd/bsd4.4/tcgetattr.c: Likewise.
	* sysdeps/unix/bsd/bsd4.4/tcsetattr.c: Likewise.
	* sysdeps/unix/bsd/bsd4.4/wait3.c: Likewise.
	* sysdeps/unix/bsd/sun/sunos4/tcflow.c: Likewise.
	* sysdeps/unix/bsd/sun/sunos4/tcflush.c: Likewise.
	* sysdeps/unix/bsd/sun/sunos4/tcgetattr.c: Likewise.
	* sysdeps/unix/bsd/sun/sunos4/tcsendbrk.c: Likewise.
	* sysdeps/unix/bsd/sun/sunos4/wait4.c: Likewise.
	* sysdeps/unix/bsd/ultrix4/mips/sigvec.c: Likewise.
	* sysdeps/unix/bsd/bsdstat.h: Likewise.
	* sysdeps/unix/bsd/clock.c: Likewise.
	* sysdeps/unix/bsd/gtty.c: Likewise.
	* sysdeps/unix/bsd/init-posix.c: Likewise.
	* sysdeps/unix/bsd/setgid.c: Likewise.
	* sysdeps/unix/bsd/setrgid.c: Likewise.
	* sysdeps/unix/bsd/setruid.c: Likewise.
	* sysdeps/unix/bsd/setuid.c: Likewise.
	* sysdeps/unix/bsd/stty.c: Likewise.
	* sysdeps/unix/bsd/telldir.c: Likewise.
	* sysdeps/unix/bsd/ualarm.c: Likewise.
	* sysdeps/unix/common/glue-ctype.c: Likewise.
	* sysdeps/unix/sparc/start.c: Likewise.
	* sysdeps/unix/sysv/irix4/fpathconf.c: Likewise.
	* sysdeps/unix/sysv/irix4/getgroups.c: Likewise.
	* sysdeps/unix/sysv/irix4/getrusage.c: Likewise.
	* sysdeps/unix/sysv/irix4/pathconf.c: Likewise.
	* sysdeps/unix/sysv/irix4/setgroups.c: Likewise.
	* sysdeps/unix/sysv/irix4/sigtramp.c: Likewise.
	* sysdeps/unix/sysv/irix4/start.c: Likewise.
	* sysdeps/unix/sysv/irix4/sysconf.c: Likewise.
	* sysdeps/unix/sysv/sco3.2.4/__setpgid.c: Likewise.
	* sysdeps/unix/sysv/sco3.2.4/getgroups.c: Likewise.
	* sysdeps/unix/sysv/sysv4/__getpgid.c: Likewise.
	* sysdeps/unix/sysv/sysv4/__setpgid.c: Likewise.
	* sysdeps/unix/sysv/sysv4/ftruncate.c: Likewise.
	* sysdeps/unix/sysv/sysv4/gethostname.c: Likewise.
	* sysdeps/unix/sysv/sysv4/getpgid.c: Likewise.
	* sysdeps/unix/sysv/sysv4/sethostname.c: Likewise.
	* sysdeps/unix/sysv/sysv4/setpgid.c: Likewise.
	* sysdeps/unix/sysv/sysv4/setsid.c: Likewise.
	* sysdeps/unix/sysv/gethostname.c: Likewise.
	* sysdeps/unix/sysv/tcgetpgrp.c: Likewise.
	* sysdeps/unix/sysv/tcsetpgrp.c: Likewise.
	* sysdeps/unix/alarm.c: Likewise.
	* sysdeps/unix/make_errlist.c: Likewise.
	* sysdeps/unix/rewinddir.c: Likewise.
	* sysdeps/unix/seekdir.c: Likewise.
	* sysdeps/unix/time.c: Likewise.
	* sysdeps/unix/utime.c: Likewise.
	* sysdeps/vax/__longjmp.c: Likewise.
	* sysdeps/vax/memccpy.c: Likewise.
	* time/strftime.c: Likewise.

1997-05-25 21:57  Miles Bader  <miles@gnu.ai.mit.edu>

	* argp-parse.c (parser_init): For the special case where no
	parsing function is supplied for an argp, propagate its input to
	its first child, if any.

	* argp.h (struct argp_state): `argp' field renamed to `root_argp'.
	* argp-help.c (__argp_state_help, argp_args_usage, hol_help):
	Replace references to STATE->argp with STATE->root_argp.
	* argp-parse.c (parser_init): Likewise.

1997-05-26 14:17  Ulrich Drepper  <drepper@cygnus.com>

	* manual/main.texi: Clarify situation for other not supported ports.
	Proposed by Andreas Jaeger <aj@arthur.rhein-neckar.de>.
	We recommend binutils 2.8.

1997-05-26 12:17  Ulrich Drepper  <drepper@cygnus.com>

	* netinet/in.h: New file.  Wrapper around inet/netinet/in.h.

1997-05-25 09:51  H.J. Lu  <hjl@gnu.ai.mit.edu>

	* sysdeps/i386/elf/start.S: Change local label "nofini"
	to ".Lnofini".

	* sysdeps/i386/i386-mcount.S: Use GOT, instead of GOTOFF.

1997-05-24 17:45  H.J. Lu  <hjl@gnu.ai.mit.edu>

	* gmon/gmon.c (_mcleanup): Free tostruct array allocated in monstartup.

	(dl_main): Define _dl_verbose based on DL_WARN environment variable.
1997-05-26 23:01:17 +00:00
Ulrich Drepper
0501d60367 Update.
1997-05-24 03:51  Ulrich Drepper  <drepper@cygnus.com>

	* stdlib/Makefile (routines): Add strtol_l, strtoul_l, strtoll_l,
	strtoull_l, strtof_l, strtod_l, and strtold_l.
	* stdlib/stdlib.h: Add prototypes for new functions.
	* stdlib/strtod.c: Change for compiling as strtoX_l.
	* stdlib/strtol.c: Likewise.
	* stdlib/strtof.c: Likewise.
	* stdlib/strtold.c: Likewise.
	* stdlib/strtod_l.c: New file.
	* stdlib/strtof_l.c: New file.
	* stdlib/strtold_l.c: New file.
	* stdlib/strtol_l.c: New file.
	* stdlib/strtoul_l.c: New file.
	* stdlib/strtoll_l.c: New file.
	* stdlib/strtoull_l.c: New file.
	* string/Makefile (routines): Add strcasecmp_l and strncase_l.
	* string/string.h: Add prototypes for new functions.
	* sysdeps/generic/strcasecmp.c: Change for compiling as strcasecmp_l.
	* sysdeps/generic/strncase.c: Change for compiling as strncasecmp_l.
	* sysdeps/generic/strcasecmp_l.c: New file.
	* sysdeps/generic/strncase_l.c: New file.
	* wcsmbs/Makefile (routines): Add wcstol_l, wcstoul_l, wcstoll_l,
	wcstoull_l, wcstod_l, wcstold_l, wcstof_l, wcscasecmp_l, and
	wcsncase_l.
	* wcsmbs/wchar.h: Add prototypes for new functions.
	* wcsmbs/wcscasecmp.c: Change for compiling as wcscasecmp_l.
	* wcsmbs/wcsncase.c: Change for compiling as wcsncasecmp_l.
	* wcsmbs/wcscasecmp_l.c: New file.
	* wcsmbs/wcsncase_l.c: New file.
	* wcsmbs/wcstof.c: Change for compiling as wcstof_l.c
	* wcsmbs/wcstold.c: Change for compiling as wcstold_l.c
	* wcsmcs/wcstod_l.c: New file.
	* wcsmcs/wcstof_l.c: New file.
	* wcsmcs/wcstold_l.c: New file.
	* wcsmcs/wcstol_l.c: New file.
	* wcsmcs/wcstoul_l.c: New file.
	* wcsmcs/wcstoll_l.c: New file.
	* wcsmcs/wcstoull_l.c: New file.

	* Makeconfig (binfmt-subdir): New variable.  Set to `elf' if
	$(elf) is defined.  More to come later when other binary formats
	are supported.
	* Makefile (subdirs): Remove elf.  Add $(binfmt-subdir).
	Suggested by Philip Blundell.

	* stdlib/Makefile (headers): Add fmtmsg.h.
	(routines): Add fmtmsg.
	* stdlib/fmtmsg.c: New file.
	* stdlib/fmtmsg.h: New file.
	* manual/stdio.texi: Add description of fmtmsg and addseverity.
	* manual/examples/fmtmsgexpl.c: Example program for fmtmsg
	documentation.

1997-05-23 15:26  Philip Blundell  <pjb27@cam.ac.uk>

	* resolv/res_query.c (res_querydomain): Avoid potential buffer
	overrun.  Reported by Dan A. Dickey <ddickey@transition.com>.

1997-05-22 18:36  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* elf/dl-support.c (_dl_sysdep_open_zero_fill,
	_dl_sysdep_read_whole_file): Moved functions to ...
	* elf/dl-misc.c: This new file.
	* sysdeps/generic/dl-sysdepio.c: Delete file and move functions...
	* elf/dl-misc.c: ... here.
	* sysdeps/generic/dl-sysdep.c (_dl_sysdep_open_zero_fill,
	_dl_sysdep_read_whole_file): Delete functions; they now come from
	elf/dl-misc.c (dl-support.c had contained identical versions).
	* sysdeps/mach/hurd/dl-sysdepio.c: Delete file; move functions...
	* sysdeps/mach/hurd/dl-sysdep.c: ... here, but mark them weak so
	that the regular ones in dl-misc work once we've initialized.
	* elf/Makefile (dl-routines): Remove dl-sysdepio.c.  Add dl-misc.c.

1997-05-22 21:55  Philip Blundell  <pjb27@cam.ac.uk>

	* inet/Makefile (headers): Add netinet/inbits.h.
	* inet/netinet/in.h: New file.
	* sysdeps/generic/netinet/inbits.h: Likewise.
	* sysdeps/unix/sysv/linux/netinet/inbits.h: Likewise.
	* sysdeps/generic/netinet/ip6.h: Move to...
	* inet/netinet/ip6.h: ... here.
	* sysdeps/generic/netinet/icmp6.h: Move to...
	* inet/netinet/icmp6.h: ... here.
	* sysdeps/unix/sysv/linux/netinet/in.h: Remove.
	* sysdeps/generic/netinet/in.h: Remove.

1997-05-22 05:40  Richard Henderson  <rth@tamu.edu>

	* sysdeps/alpha/dl-machine.h (elf_machine_runtime_setup): If we are
	not looking at the new thread-safe .plt, don't be lazy about relocs.
	(_dl_runtime_resolve): Fix up arithmetic for new .plt layout.
	(elf_alpha_fix_plt): Insert wmb as appropriate to ensure safety.
	* elf/dynamic-link.h (ELF_DYNAMIC_RELOCATE): Let
	elf_machine_runtime_setup() decide if we can actually be lazy.
	* elf/rtld.c (_dl_start): So don't call it.
	* elf/dl-reloc.c (_dl_relocate_object): Likewise.
	* sysdeps/i386/dl-machine.h (elf_machine_runtime_setup): Return lazy.
	* sysdeps/m68k/dl-machine.h (elf_machine_runtime_setup): Likewise.
	* sysdeps/mips/dl-machine.h (elf_machine_runtime_setup): Likewise.
	* sysdeps/powerpc/dl-machine.h (elf_machine_runtime_setup): Likewise.
	* sysdeps/sparc/dl-machine.h (elf_machine_runtime_setup): Likewise.
	* sysdeps/stub/dl-machine.h (elf_machine_runtime_setup): Update
	skeleton definition.

1997-05-22 18:45  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/i386/fpu/__math.h (logb): Remove second value placed on
	stack by fxtract.

1997-05-22 13:07  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* sunrpc/rpcsvc/rusers.x: Provide and correct prototypes,
	add cast to (xdrproc_t) where necessary to prevent warnings.

1997-05-22 12:18  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c: Remove I/O functions.

	* sunrpc/rpcinfo.c (get_inet_address): Use INADDR_NONE and INADDR_ANY
	* sysdeps/libm-ieee754/s_cexp.c: Fix typo: string_alias ->
	* nss/XXX-lookup.c: Add missing explanation.
1997-05-24 02:30:09 +00:00