2007-05-09  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/ia64/fpu/fraiseexcpt.c (feraiseexcept): Don't raise overflow
	exception in addition to inexact when asked to raise only FE_INEXACT.

	[BZ #3427]
	* sysdeps/s390/fpu/feholdexcpt.c (feholdexcept): Don't clear exceptions
	in *envp.

2007-05-07  Ulrich Drepper  <drepper@redhat.com>

	[BZ #4403]
	* string/strfry.c (strfry): Make result more random.

2007-05-07  Richard Henderson  <rth@redhat.com>

	* sysdeps/alpha/fpu/bits/mathinline.h (__isnanl): Don't define
	if __NO_LONG_DOUBLE_MATH.
	* sysdeps/unix/sysv/linux/alpha/ioperm.c: If BWX insns not
	available in the compiler, add .arch directive to the assembly.

2007-05-07  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/alpha/fpu/s_nearbyint.c (nearbyintl): Fix version on
	compat_symbol to GLIBC_2_1.
	* sysdeps/alpha/fpu/s_fmin.S (fminl): Likewise.
	* sysdeps/alpha/fpu/s_trunc.c (truncl): Likewise.
	* sysdeps/alpha/fpu/s_fmax.S (fmaxl): Likewise.
	* sysdeps/alpha/fpu/s_lrint.c (lrintl, llrintl): Likewise.
	* sysdeps/alpha/fpu/s_lround.c (lroundl, llroundl): Likewise.
	* sysdeps/alpha/fpu/s_round.c (roundl): Likewise.
	* sysdeps/alpha/fpu/s_isnan.c (isnanl): Provide compat_symbol in
	libc, not libm.
	(__isnanl): New compat_symbol.

2007-05-07  Ulrich Drepper  <drepper@redhat.com>
	    Jakub Jelinek  <jakub@redhat.com>

	* malloc/arena.c (heap_info): Add mprotect_size field, adjust pad.
	(new_heap): Initialize mprotect_size.
	(grow_heap): When growing, only mprotect from mprotect_size till
	new_size if mprotect_size is smaller.  When shrinking, use PROT_NONE
	MMAP for __libc_enable_secure only, otherwise use MADV_DONTNEED.

2007-04-30  Steven Munroe  <sjmunroe@us.ibm.com>
	    Peter Bergner  <bergner@us.ibm.com>

	* sysdeps/powerpc/bits/fenv.h: Declare __fe_mask_env extern.
	Define FE_NOMASK_ENV as FE_EANBLED_ENV.  Define FE_MASK_ENV.
	* sysdeps/powerpc/fpu/Makefile: Add fe_mask to libm-support.
	* sysdeps/powerpc/fpu/fe_mask.c: New file.
	* sysdeps/powerpc/fpu/fe_nomask.c: Correct comment.
	* sysdeps/powerpc/fpu/fedisblxcpt.c (fedisableexcept):
	Call __fe_mask_env() if all FP exceptions disabled.
	* sysdeps/powerpc/fpu/feholdexcpt.c (feholdexcept): Copy high 32-bits
	from old FPSCR to new fenv to propagate DFP rounding modes.
	Call __fe_mask_env() if FP exceptions previously enabled.
	* sysdeps/powerpc/fpu/fesetenv.c (fesetenv): Change mask to merge
	exceptions from env.  Use __fe_nomask_env() or __fe_mask_env() when
	transitioning from all exceptions disabled to any exception enabled
	or visa versa.
	* sysdeps/powerpc/fpu/feupdateenv.c (__feupdateenv): Change mask to
	merge exceptions from env.  Call __fe_nomask_env or __fe_mask_env
	when transitioning from all exceptions disabled to any exception
	enabled or visa versa.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/fe_nomask.c: Moved to...
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_nomask.c: ...here.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/fe_nomask.c: Moved to...
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_nomask.c: ...here.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_mask.c: New file.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_mask.c: New file.

2007-05-06  Ulrich Drepper  <drepper@redhat.com>

	[BZ #4465]
	* posix/unistd.h: Remove __THROW from fdatasync.

2007-05-06  Mike Frysinger  <vapier@gentoo.org>

	[BZ #4465]
	* sysdeps/unix/sysv/linux/syscalls.list (fdatasync): Add "C" to args.

2007-05-06  Ulrich Drepper  <drepper@redhat.com>

	* stdio-common/vfprintf.c (process_string_arg): Optimize
	ridiculous precision in wide char code printing multi-byte string.
	Reported by Jim Meyering <jim@meyering.net>.

	[BZ #4131]
	* elf/dl-addr.c (_dl_addr): Compare address with actual segment
	boundaries to work around systems with overlapping binary loading.
	Based on a patch by Suzuki <suzuki@in.ibm.com>.

2007-05-04  Ulrich Drepper  <drepper@redhat.com>

	* stdio-common/vfprintf.c (process_string_arg): Adjust call to
	__mbsnrtowcs after last change.

	* locale/programs/linereader.c (get_symname): Fix adding final NUL.
	(get_ident): Likewise.

2007-05-03  Jakub Jelinek  <jakub@redhat.com>

	* soft-fp/op-common.h (FP_TRUNC): Replace raising of FP_EX_INEXACT
	with setting the sticky bit.
	* math/test-misc.c (main): Add more truncation tests.

2007-04-14  Uros Bizjak  <ubizjak@gmail.com>

	* soft-fp/floatunsidf.c (__floatunsidf): Use DFtype instead of
	double in the function declaration.
	* soft-fp/floatundidf.c (__floatundidf): Use DFtype instead of
	double in the function declaration.
	* soft-fp/floatunsisf.c (__floatunsisf): Use SFtype instead of
	float in the function declaration.
	* soft-fp/floatunsisf.c (__floatunsisf): Use SFtype instead of
	float in the function declaration.

	* soft-fp/extended.h (FP_UNPACK_RAW_E): Do not increase X##_e for
	denormal operands.  Do not generate FP_EX_DENORM exception.
	(FP_UNPACK_RAW_EP): Ditto.
	(FP_UNPACK_SEMIRAW_E): Use FP_UNPACK_RAW_E instead of
	undefined _FP_UNPACK_RAW_E.
	(FP_UNPACK_SEMIRAW_EP): Use FP_UNPACK_RAW_EP instead of
	undefined _FP_UNPACK_RAW_EP.
	(FP_PACK_SEMIRAW_E): Use FP_PACK_RAW_E instead of
	undefined _FP_PACK_RAW_E.
	(FP_PACK_SEMIRAW_EP): Use FP_PACK_RAW_EP instead of
	undefined _FP_PACK_RAW_EP.

	* soft-fp/op-2.h (_FP_FRAC_COPY_2_2): Define as alias to
	_FP_FRAC_COPY_2.
	* soft-fp/op-4.h (_FP_FRAC_COPY_2_2): Define as alias to
	_FP_FRAC_COPY_4.

2007-04-16  Uros Bizjak  <ubizjak@gmail.com>
	    Jakub Jelinek  <jakub@redhat.com>

	* soft-fp/op-common.h (FP_EXTEND): Do not abort when
	_FP_EXPBIAS_##dfs == _FP_EXPBIAS_##sfs.  Handle denormals for
	this case.
	* soft-fp/op-common.h (FP_TRUNC): Ditto.

2007-05-03  Jakub Jelinek  <jakub@redhat.com>

	* math/test-misc.c (main): Add tests for rounding long double
	values close to smallest double denormalized value to double.

2007-04-30  Joseph Myers  <joseph@codesourcery.com>

	* soft-fp/op-common.h (FP_TRUNC): Correct off-by-one error in
	condition for truncating to 0.  Set sticky bit for such
	truncation.

2007-05-02  Jakub Jelinek  <jakub@redhat.com>

	* stdio-common/vfprintf.c (process_string_arg): Use a VLA rather than
	fixed length array for ignore.

2007-04-30  Ulrich Drepper  <drepper@redhat.com>

	[BZ #4438]
	* stdio-common/vfprintf.c (process_string_arg): Don't overflow the
	stack for large precisions.
	* stdio-common/test-vfprintf.c (main): Add test for large
	precision.

2007-04-30  Jakub Jelinek  <jakub@redhat.com>

	* stdio-common/printf_fp.c (___printf_fp): Don't print negative sign
	for exponent 0.
	* stdio-common/tfformat.c (sprint_doubles): Add a new test.

	[BZ #4439]
	* resolv/inet_ntop.c (inet_ntop4): Take terminating '\0' into
	account in the size check.
	* resolv/tst-inet_ntop.c: New test.
	* resolv/Makefile (tests): Add tst-inet_ntop.

2007-04-30  Ulrich Drepper  <drepper@redhat.com>
	    Jakub Jelinek  <jakub@redhat.com>

	[BZ #4349]
	* malloc/malloc.c: Keep separate list for first blocks on the bin
	lists with a given size.  This helps skipping over list elements
	we know won't fit in two places.
	Inspired by a patch by Tomash Brechko <tomash.brechko@gmail.com>.

2007-04-28  Ulrich Drepper  <drepper@redhat.com>

	[BZ #4102]
	* sysdeps/posix/getaddrinfo.c (default_labels): Assign separate
	label to Teredo tunnel addresses 2001://32.

2007-04-27  Ulrich Drepper  <drepper@redhat.com>

	* locale/programs/ld-collate.c (collate_read): Allow order_start
	after copy.

	* locale/programs/ld-collate.c (collate_read): Fix printing of
	error message.

	[BZ #3213]
	* locale/C-translit.h.in: Add entry for U2044.

	[BZ #4342]
	* stdio-common/vfscanf.c (_IO_vfscanf_internal): Allow
	hexa-decimal floats without exponent.
	* stdio-common/tstscanf.c (main): Adjust Test 8 test for success.

2007-04-25  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/bits/sched.h: Declare sched_getcpu.
	* sysdeps/unix/sysv/linux/sched_getcpu.c: New file.
	* sysdeps/unix/sysv/linux/x86_64/sched_getcpu.S: New file.
	* sysdeps/unix/sysv/linux/Versions: Export sched_getcpu for
	GLIBC_2.6.
	* sysdeps/unix/sysv/linux/Makefile [subdir=posix] (sysdep_routines):
	Add sched_getcpu.

2007-04-25  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/check_pf.c (make_request): Return -1 instead
	of 0 after the out_fail label.

2007-04-25  Ulrich Drepper  <drepper@redhat.com>

	[BZ #4406]
	* iconv/gconv_charset.h (strip): Allow ':'.
	* iconv/iconv_open.c (iconv_open): Adjust comment.

2007-04-25  Jakub Jelinek  <jakub@redhat.com>

	* libio/bits/stdio.h (fgetc_unlocked): Add extern inline optimized
	version.

2007-04-23  Jakub Jelinek  <jakub@redhat.com>

	[BZ #4381]
	* nss/nss_files/files-hosts.c (HOST_DB_LOOKUP): Ensure sufficient
	alignment of buffer and tmp_buffer.
	* nis/nss_nis/nis-hosts.c (internal_nis_gethostent_r,
	internal_gethostbyname2_r, _nss_nis_gethostbyaddr_r): Ensure sufficient
	alignment of buffer.
	* resolv/nss_dns/dns-hosts.c (getanswer_r): Likewise.  Handle buflen
	bigger than INT_MAX.
	* resolv/nss_dns/dns-network.c (getanswer_r): Likewise.  Add errnop and
	h_errnop arguments.  Fail if buflen is too small.
	(_nss_dns_getnetbyname_r, _nss_dns_getnetbyaddr_r): Adjust callers.

2007-04-23  Jakub Jelinek  <jakub@redhat.com>

	[BZ #4405]
	* iconvdata/gconv-modules (E13B): Add a missing slash to the alias
	name.  Patch by Aurelien Jarno <aurelien@aurel32.net>.

2007-04-22  Roland McGrath  <roland@redhat.com>

	* elf/elf.h (NT_PRXFPREG): New macro.

2007-04-19  Andreas Jaeger  <aj@suse.de>

	[BZ #3905]
	* bits/in.h (IPV6_ROUTER_ALERT, IPV6_MTU_DISCOVER, IPV6_MTU,
	IPV6_RECVERR, IPV6_V6ONLY, IPV6_JOIN_ANYCAST, IPV6_LEAVE_ANYCAST):
	Added.

2007-04-19  Ulrich Drepper  <drepper@redhat.com>

	* include/sys/mman.h: Mark madvise hidden.
	* misc/madvise.c: Add libc_hidden_def.

2007-04-06  Jakub Jelinek  <jakub@redhat.com>

	* nis/nis_domain_of.c (__nis_domain_of): New function.
	* include/rpcsvc/nislib.h (__nis_domain_of): New prototype.
	* nis/nis_lookup.c (nis_lookup): Use __nis_domain_of.
	* nis/nis_call.c (rec_dirsearch): Likewise.
	(first_shoot): Likewise.  Remove search_parent_first argument.
	(struct nis_server_cache): Rename search_parent_first field
	to search_parent.
	(nis_server_cache_search, nis_server_cache_add): Rename
	search_parent_first argument to search_parent.
	(__nisfind_server): Likewise.  If search_parent, call
	__nis_domain_of.

2007-04-18  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/posix/getaddrinfo.c: Remove commented-out code.

2007-04-17  Ulrich Drepper  <drepper@redhat.com>

	[BZ #4368]
	* stdlib/stdlib.h: Remove obsolete part of comment for realpath.

2007-04-16  Ulrich Drepper  <drepper@redhat.com>

	[BZ #4364]
	* posix/unistd.h (_XOPEN_VERSION): Define appropriately for SUSv3.

2007-04-15  Jakub Jelinek  <jakub@redhat.com>

	* locale/programs/locarchive.c (INITIAL_NUM_NAMES,
	INITIAL_SIZE_STRINGS, INITIAL_NUM_LOCREC): Update to accomodate
	current number of locales in SUPPORTED.
	(create_archive): Initialize serial.
	(enlarge_archive): Preserve aliases rather than duplicating
	their locrecs.

2007-04-13  Jakub Jelinek  <jakub@redhat.com>

	* libio/genops.c (_IO_default_finish): Call _IO_lock_fini
	after _IO_un_link, not before it.

	* stdio-common/printf_fp.c (___printf_fp): Fix exponent -4
	special case handling when wcp == wstartp + 1.  Fix a comment typo.
	* stdio-common/tfformat.c (sprint_doubles): Add a new testcase.

2007-03-30  Jakub Jelinek  <jakub@redhat.com>

	* libio/libio.h (__underflow, __uflow, __overflow, __wunderflow,
	__wuflow, __woverflow, _IO_getc, _IO_putc, _IO_peekc_locked, _IO_padn,
	_IO_sgetn, _IO_seekoff, _IO_seekpos, _IO_getwc, _IO_putwc, _IO_wpadn):
	Remove __THROW.
	* libio/fileops.c (new_do_write, _IO_file_xsgetn_mmap,
	_IO_file_xsgetn_maybe_mmap): Likewise.
	* libio/oldfileops.c (old_do_write): Likewise.
	* libio/libioP.h (_IO_switch_to_get_mode, _IO_switch_to_wget_mode,
	_IO_init_marker, _IO_init_wmarker, _IO_default_uflow,
	_IO_wdefault_uflow, _IO_default_setbuf, _IO_default_seekpos,
	_IO_do_write, _IO_new_do_write, _IO_old_do_write, _IO_wdo_write,
	_IO_flush_all_lockp, _IO_flush_all, _IO_cleanup,
	_IO_flush_all_linebuffered, _IO_new_fgetpos, _IO_old_fgetpos,
	_IO_new_fsetpos, _IO_old_fsetpos, _IO_new_fgetpos64,
	_IO_old_fgetpos64, _IO_new_fsetpos64, _IO_old_fsetpos64,
	_IO_file_setbuf, _IO_file_seekoff, _IO_file_xsputn, _IO_file_xsgetn,
	_IO_file_underflow, _IO_file_underflow_mmap,
	_IO_file_underflow_maybe_mmap, _IO_file_overflow, _IO_file_attach,
	_IO_file_open, _IO_file_fopen, _IO_file_write, _IO_file_read,
	_IO_file_sync, _IO_file_close_it, _IO_file_finish,
	_IO_new_file_attach, _IO_new_file_close_it, _IO_new_file_finish,
	_IO_new_file_fopen, _IO_new_file_setbuf, _IO_file_setbuf_mmap,
	_IO_new_file_sync, _IO_new_file_underflow, _IO_new_file_overflow,
	_IO_new_file_seekoff, _IO_new_file_write, _IO_new_file_xsputn,
	_IO_old_file_setbuf, _IO_old_file_seekoff, _IO_old_file_xsputn,
	_IO_old_file_underflow, _IO_old_file_overflow, _IO_old_file_attach,
	_IO_old_file_fopen, _IO_old_file_write, _IO_old_file_sync,
	_IO_old_file_close_it, _IO_old_file_finish, _IO_wfile_xsputn,
	_IO_wfile_setbuf, _IO_wfile_sync, _IO_wfile_underflow,
	_IO_wfile_overflow, _IO_wfile_seekoff, _IO_old_proc_open,
	_IO_old_proc_close, _IO_getdelim, _IO_flush_all_internal,
	_IO_adjust_column_internal, _IO_default_uflow_internal,
	_IO_default_xsgetn_internal, _IO_wdefault_xsputn_internal,
	_IO_wdefault_xsgetn_internal, _IO_wdefault_uflow_internal,
	_IO_file_setbuf_internal, _IO_file_seekoff_internal,
	_IO_file_xsputn_internal, _IO_file_xsgetn_internal,
	_IO_file_close_it_internal, _IO_file_underflow_internal,
	_IO_file_overflow_internal, _IO_file_attach_internal,
	_IO_file_fopen_internal, _IO_file_sync_internal,
	_IO_file_finish_internal, _IO_wfile_xsputn_internal,
	_IO_wfile_seekoff_internal, _IO_wfile_sync_internal,
	_IO_switch_to_wget_mode_internal, _IO_padn_internal,
	_IO_switch_to_get_mode_internal, _IO_seekoff_unlocked,
	_IO_seekpos_unlocked): Likewise.
	(_IO_strtod, _IO_dtoa, _IO_outfloat, _IO_read, _IO_write,
	_IO_lseek, _IO_close, _IO_fstat): Remove unused prototypes.

2007-04-16  Jakub Jelinek  <jakub@redhat.com>

	* locale/programs/locarchive.c (show_archive_content): Fix sizeof
	argument in xmalloc size computation.

2007-04-01  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/ieee754/ldbl-128ibm/s_nextafterl.c (__nextafterl): Use
	math_opt_barrier and math_force_eval macros.

2007-03-27  Jakub Jelinek  <jakub@redhat.com>

	[BZ #3306]
	* math/math_private.h (math_opt_barrier, math_force_eval): Define.
	* sysdeps/i386/fpu/math_private.h: New file.
	* sysdeps/x86_64/fpu/math_private.h: New file.
	* math/s_nexttowardf.c (__nexttowardf): Use math_opt_barrier and
	math_force_eval macros.  Use "+m" constraint on asm rather than
	"=m" and "m".
	* math/s_nextafter.c (__nextafter): Likewise.
	* sysdeps/ieee754/ldbl-128ibm/s_nexttoward.c (__nexttoward):
	Likewise.
	* sysdeps/ieee754/flt-32/s_nextafterf.c (__nextafterf): Likewise.
	* sysdeps/ieee754/ldbl-128/s_nexttoward.c (__nexttoward): Likewise.
	* sysdeps/ieee754/ldbl-96/s_nexttoward.c (__nexttoward): Likewise.
	* sysdeps/i386/fpu/s_nextafterl.c (__nextafterl): Use
	math_opt_barrier and math_force_eval macros.
	* sysdeps/ieee754/ldbl-128/s_nextafterl.c (__nextafterl): Likewise.
	* sysdeps/ieee754/ldbl-96/s_nextafterl.c (__nextafterl): Likewise.
	* sysdeps/i386/fpu/s_nexttoward.c: Include float.h.
	(__nexttoward): Use math_opt_barrier and
	math_force_eval macros.  Use "+m" constraint on asm rather than
	"=m" and "m".  Only use asm to force double result if
	FLT_EVAL_METHOD is 2.
	* sysdeps/i386/fpu/s_nexttowardf.c: Include float.h.
	(__nexttowardf): Use math_opt_barrier and
	math_force_eval macros.  Use "+m" constraint on asm rather than
	"=m" and "m".  Only use asm to force double result if
	FLT_EVAL_METHOD is not 0.
	* sysdeps/ieee754/ldbl-128ibm/s_nexttowardf.c: Include float.h.
	(__nexttowardf): Use math_opt_barrier and
	math_force_eval macros.  If FLT_EVAL_METHOD is not 0, force
	x to float using asm.
	* sysdeps/ieee754/ldbl-opt/s_nexttowardfd.c: Include float.h.
	(__nldbl_nexttowardf): Use math_opt_barrier and
	math_force_eval macros.  If FLT_EVAL_METHOD is not 0, force
	x to float using asm.
	* sysdeps/ieee754/ldbl-96/s_nexttowardf.c: Include float.h.
	(__nexttowardf): Use math_opt_barrier and math_force_eval
	macros.  If FLT_EVAL_METHOD is not 0, force x to float using asm.
	* math/bug-nextafter.c (zero, inf): New variables.
	(main): Add new tests.
	* math/bug-nexttoward.c (zero, inf): New variables.
	(main): Add new tests.

2007-03-22  Jakub Jelinek  <jakub@redhat.com>

	[BZ #3427]
	* sysdeps/x86_64/fpu/feholdexcpt.c (feholdexcept): Clear all
	exceptions both in SW and MXCSR.
	* sysdeps/x86_64/fpu/feupdateenv.c: New file.
	* sysdeps/x86_64/fpu/feenablxcpt.c (feenableexcept): Remove dead code.
	* sysdeps/x86_64/fpu/fedisblxcpt.c (fedisableexcept): Likewise.
	* sysdeps/i386/fpu/feholdexcpt.c (feholdexcept): Clear all exceptions
	in MXCSR if SSE is available.
	* sysdeps/i386/fpu/feupdateenv.c: Include unistd.h, dl-procinfo.h
	and ldsodefs.h.
	(__feupdateenv): Query exceptions also from MXCSR if SSE is available.
	Fix comment typo.
	* sysdeps/ia64/fpu/feholdexcpt.c (feholdexcept): Clear all exceptions.
	Return 0 rather than 1.
	* sysdeps/ia64/fpu/feupdateenv.c (feupdateenv): Fix comment typo.
	Remove incorrect part of a comment.  Fix argument to feraiseexcept.
	* math/test-fenv.c (feholdexcept_tests): New function.
	(main): Call it.

2007-01-05  Richard B. Kreckel  <kreckel@ginac.de>

	[BZ #3427]
	* sysdeps/i386/fpu/feholdexcpt.c (feholdexcept): Clear all exceptions
	in SW.

2007-04-13  Jakub Jelinek  <jakub@redhat.com>

	[BZ #4344]
	* elf/ldconfig.c (search_dir): Fix 2 off-by-2 errors.
	Reported by David Anderson <davea42@earthlink.net>.

2007-04-07  Ulrich Drepper  <drepper@redhat.com>

	* posix/sys/wait.h: Remove unnecessary forward declaration.

2007-04-05  Jakub Jelinek  <jakub@redhat.com>

	* nis/nis_call.c (__nisfind_server): Replace (*dir)->do_servers
	with obj->do_servers after first_shoot.

2007-04-03  Ulrich Drepper  <drepper@redhat.com>

	* posix/Makefile (routines): Add sched_cpucount.
	(tests): Add tst-cpucount.
	* posix/sched_cpucount.c: New file.
	* posix/tst-cpucount.c: New file.
	* posix/Versions: Export __sched_cpucount with version GLIBC_2.6.
	* bits/sched.h: Define __CPU_COUNT.  Declare __sched_cpucount.
	* sysdeps/unix/sysv/linux/bits/sched.h: Likewise.
	* posix/sched.h: Define CPU_COUNT.

2007-03-27  Jakub Jelinek  <jakub@redhat.com>

	* posix/fnmatch.c (STRUCT): Define.
	(fnmatch): Pass NULL as last argument to internal_fn{,w}match.
	* posix/fnmatch_loop.c (struct STRUCT): New type.
	(FCT): Add ends argument.  If ends != NULL and normal * is
	seen in the pattern, store current pattern and string pointers
	and return.  Adjust recursive calls.
	(EXT): Adjust FCT callers.
	(STRUCT): Undef at the end of the file.
	* posix/Makefile (tests): Add tst-fnmatch2.
	* posix/tst-fnmatch2.c: New test.

2007-04-01  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/ia64/fpu/fesetround.c (fesetround): Return 0 on success
	and 1 on failure.

	* sysdeps/unix/sysv/linux/sync_file_range.c (sync_file_range):
	Change last argument to unsigned int.

2007-03-23  Jakub Jelinek  <jakub@redhat.com>

	* scripts/check-local-headers.sh: Filter out sys/capability.h.

2007-03-22  Jakub Jelinek  <jakub@redhat.com>

	* config.h.in (HAVE_LIBCAP): Add.
	* nscd/selinux.h: Include sys/capability.h rather than non-existent
	sys/capabilities.h.
	* nscd/selinux.c (preserve_capabilities): Use cap_free instead of
	free_caps.  Cast away const from 4th cap_set_flag argument.

2007-03-26  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/Versions: Move sync_file_range to
	GLIBC_2.6.
	* sysdeps/unix/sysv/linux/Makefile [subdir=io] (sysdep_routines):
	Add sync_file_range.
	Reported by Atsushi Nemoto <anemo@mba.ocn.ne.jp>.

2007-03-19  Steven Munroe  <sjmunroe@us.ibm.com>

	* sysdeps/powerpc/bits/atomic.h
	[!MUTEX_HINT_ACQ]: Define MUTEX_HINT_ACQ.
	[!MUTEX_HINT_REL]: Define MUTEX_HINT_REL.
	(__arch_compare_and_exchange_val_32_acq): Add MUTEX_HINT_ACQ to lwarx.
	(__arch_compare_and_exchange_val_32_rel): Add MUTEX_HINT_REL to lwarx.
	(__arch_atomic_exchange_val_32_acq): Add MUTEX_HINT_ACQ to lwarx.
	(__arch_atomic_exchange_rel_32_rel): Add MUTEX_HINT_REL to lwarx.
	* sysdeps/powerpc/powerpc32/bits/atomic.h [_ARCH_PWR6 || _ARCH_PWR6X]:
	Define MUTEX_HINT_ACQ as ",1" and MUTEX_HINT_REL as ",0".
	(__arch_compare_and_exchange_bool_32_acq): Add MUTEX_HINT_ACQ to lwarx.
	(__arch_compare_and_exchange_bool_32_rel): Add MUTEX_HINT_REL to lwarx.
	* sysdeps/powerpc/powerpc64/bits/atomic.h [_ARCH_PWR6 || _ARCH_PWR6D]:
	Define MUTEX_HINT_ACQ as ",1" and MUTEX_HINT_REL as ",0".
	(__arch_compare_and_exchange_bool_32_acq): Add MUTEX_HINT_ACQ to lwarx.
	(__arch_compare_and_exchange_bool_32_rel): Add MUTEX_HINT_REL to lwarx.
	(__arch_compare_and_exchange_bool_64_acq): Add MUTEX_HINT_ACQ to lwarx.
	(__arch_compare_and_exchange_bool_64_rel): Add MUTEX_HINT_REL to lwarx.
	(__arch_compare_and_exchange_val_64_acq): Add MUTEX_HINT_ACQ to lwarx.
	(__arch_compare_and_exchange_val_64_rel): Add MUTEX_HINT_REL to lwarx.
	(__arch_atomic_exchange_val_64_acq): Add MUTEX_HINT_ACQ to lwarx.
	(__arch_atomic_exchange_rel_64_rel): Add MUTEX_HINT_REL to lwarx.

2007-03-20  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/powerpc/libc-start.c
	(__cache_line_size): Define the variable here.  Add
	attribute_hidden, remove weak_extern.
	(__libc_start_main): Set __cache_line_size
	unconditionally.
	* sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c
	(__cache_line_size): Define the variable here.  Add
	attribute_hidden, remove weak_extern.
	(DL_PLATFORM_AUXV): Set __cache_line_size
	unconditionally.
	* sysdeps/powerpc/powerpc32/dl-machine.c (__cache_line_size): Remove
	weak_extern, add attribute_hidden.
	(__elf_machine_runtime_setup): Assume __cache_line_size is always
	defined in ld.so.
	* sysdeps/powerpc/powerpc32/memset.S (__cache_line_size): Remove
	definition.
	* sysdeps/powerpc/powerpc64/memset.S (__cache_line_size): Likewise.

2007-03-26  Jakub Jelinek  <jakub@redhat.com>

	[BZ #4276]
	* timezone/africa: Update from tzdata2007d.
	* timezone/asia: Likewise.
	* timezone/australasia: Likewise.
	* timezone/backward: Likewise.
	* timezone/europe: Likewise.
	* timezone/iso3166.tab: Likewise.
	* timezone/leapseconds: Likewise.
	* timezone/northamerica: Likewise.
	* timezone/southamerica: Likewise.
	* timezone/zone.tab: Likewise.

	* timezone/private.h: Update from tzcode2007d.
	* timezone/zdump.c: Likewise.
	* timezone/zic.c: Likewise.

2007-03-21  Jakub Jelinek  <jakub@redhat.com>

	* nis/nis_call.c: Include bits/libc-lock.h, sys/stat.h, unistd.h.
	(nis_server_cache, nis_server_cache_lock, nis_cold_start_mtime): New
	variables.
	(nis_server_cache_search, nis_server_cache_add): New functions.
	(__nisfind_server): Use them.  Add dbp and flags argument, if
	call __nisbind_create.
	(__nisbind_create): Add server_used and current_ep arguments,
	only call __nis_findfastest if server_used is ~0.
	(__do_niscall2, __prepare_niscall): Adjust callers.
	(ckey_cache, ckey_cache_size, ckey_cache_allocated, ckey_cache_pid,
	ckey_cache_euid, ckey_cache_lock): New variables.
	(get_ckey): New function.
	(__nisbind_connect): If not dbp->use_udp, pass IPPROTO_TCP to
	__pmap_getnisport.  Save __pmap_getnisport result in
	dbp->addr.sin_port if non-zero.  Use get_ckey to create conversation
	key.
	* nis/nis_lookup.c (nis_lookup): Likewise.
	* nis/nis_table.c (nis_list): Likewise.
	* nis/rpcsvc/nislib.h (__nisbind_create, __nisfind_server): Adjust
	prototypes.

	* nis/nss_nisplus/nisplus-pwd.c (_nss_nisplus_getpwnam_r,
	_nss_nisplus_getpwuid_r): Pass USE_DGRAM flag to nis_list.
	* nis/nss_nisplus/nisplus-service.c (_nss_nisplus_getservbyname_r,
	_nss_nisplus_getservbyport_r): Likewise.
	* nis/nss_nisplus/nisplus-network.c (_nss_nisplus_getnetbyname_r,
	_nss_nisplus_getnetbyaddr_r): Likewise.
	* nis/nss_nisplus/nisplus-spwd.c (_nss_nisplus_getspnam_r): Likewise.
	* nis/nss_nisplus/nisplus-ethers.c (_nss_nisplus_gethostton_r,
	_nss_nisplus_getntohost_r): Likewise.
	* nis/nss_nisplus/nisplus-rpc.c (_nss_nisplus_getrpcbyname_r,
	_nss_nisplus_getrpcbynumber_r): Likewise.

2007-03-20  Jakub Jelinek  <jakub@redhat.com>

	* configure.in (libc_cv_gnu89_inline): Only do compile test.
	* configure: Rebuilt.

	* soft-fp/double.h (_FP_UNION_D): Use _FP_W_TYPE for frac
	bit-fields.
	* soft-fp/extended.h (_FP_UNION_E): Likewise.

2006-06-07  Joseph Myers  <joseph@codesourcery.com>

	[BZ #2831]
	* soft-fp/quad.h (_FP_UNION_Q): Use _FP_W_TYPE for frac
	bit-fields.

2007-03-18  Jakub Jelinek  <jakub@redhat.com>

	* nscd/gai.c: Include alloca.h.
	(__libc_use_alloca): Define.

2007-03-16  Jakub Jelinek  <jakub@redhat.com>

	* elf/dl-open.c (dl_open_worker): Declare l in 2 different
	smaller scopes.
	* elf/dl-dst.h (DL_DST_REQ_STATIC): Add l as macro argument.
	(DL_DST_REQUIRED): Adjust user.

	* include/dlfcn.h (struct link_map): New forward decl.

	* inet/getnameinfo.c: Include stddef.h.
	(getnameinfo): Use offsetof.

	* time/tst-mktime2.c (do_test): Don't rely on signed wrap.

	* stdio-common/vfprintf.c (_itoa): Undef before redefining.

	* string/strerror_l.c: Include stdlib.h.

	* configure.in (libc_cv_gnu89_inline): Test for -fgnu89-inline.
	* config.make.in (gnu89-inline-CFLAGS): New variable.
	* Makeconfig (CFLAGS): Use $(gnu89-inline-CFLAGS) together with
	-std=gnu99.
	* misc/sys/cdefs.h (__extern_inline, __extern_always_inline): Define.
	* argp/argp.h: Use it.
	* bits/mathinline.h: Likewise.
	* bits/sigset.h: Likewise.
	* bits/string.h: Likewise.
	* ctype/ctype.h: Likewise.
	* hurd/hurd.h: Likewise.
	* hurd/hurd/fd.h: Likewise.
	* hurd/hurd/port.h: Likewise.
	* hurd/hurd/signal.h: Likewise.
	* hurd/hurd/threadvar.h: Likewise.
	* hurd/hurd/userlink.h: Likewise.
	* io/sys/stat.h: Likewise.
	* libio/bits/stdio.h: Likewise.
	* libio/bits/stdio2.h: Likewise.
	* mach/lock-intern.h: Likewise.
	* mach/mach/mig_support.h: Likewise.
	* math/bits/cmathcalls.h: Likewise.
	* posix/bits/unistd.h: Likewise.
	* socket/bits/socket2.h: Likewise.
	* stdlib/bits/stdlib.h: Likewise.
	* stdlib/stdlib.h: Likewise.
	* string/argz.h: Likewise.
	* string/bits/string2.h: Likewise.
	* string/bits/string3.h: Likewise.
	* sysdeps/alpha/fpu/bits/mathinline.h: Likewise.
	* sysdeps/generic/inttypes.h: Likewise.
	* sysdeps/generic/machine-lock.h: Likewise.
	* sysdeps/generic/machine-sp.h: Likewise.
	* sysdeps/i386/fpu/bits/mathinline.h: Likewise.
	* sysdeps/i386/i486/bits/string.h: Likewise.
	* sysdeps/ia64/fpu/bits/mathinline.h: Likewise.
	* sysdeps/mach/alpha/machine-lock.h: Likewise.
	* sysdeps/mach/alpha/machine-sp.h: Likewise.
	* sysdeps/mach/i386/machine-lock.h: Likewise.
	* sysdeps/mach/powerpc/machine-lock.h: Likewise.
	* sysdeps/mach/powerpc/machine-sp.h: Likewise.
	* sysdeps/powerpc/fpu/bits/mathinline.h: Likewise.
	* sysdeps/s390/bits/string.h: Likewise.
	* sysdeps/s390/fpu/bits/mathinline.h: Likewise.
	* sysdeps/sparc/fpu/bits/mathinline.h: Likewise.
	* sysdeps/unix/bsd/bsd4.4/bits/socket.h: Likewise.
	* sysdeps/unix/sysv/linux/bits/sigset.h: Likewise.
	* sysdeps/unix/sysv/linux/bits/socket.h: Likewise.
	* sysdeps/unix/sysv/linux/sys/sysmacros.h: Likewise.
	* sysdeps/x86_64/fpu/bits/mathinline.h: Likewise.
	* wcsmbs/bits/wchar2.h: Likewise.
	* wcsmbs/wchar.h: Likewise.
	* stdlib/gmp.h: Likewise.  Include <features.h> to get
	__extern_inline definition.

2007-03-15  Jakub Jelinek  <jakub@redhat.com>

	* locale/programs/ld-ctype.c (find_translit): Return NULL if ctype is
	NULL.

	[BZ #3919]
	* math/libm-test.inc (log_test): Test -Inf and NaN.
	(log10_test, log1p_test, log2_test): Test -Inf.
	* sysdeps/i386/fpu/e_log.S (__ieee754_log): Don't raise
	FE_INVALID when argument is qNaN.
	* sysdeps/i386/fpu/e_logl.S (__ieee754_logl): Likewise.
	* sysdeps/i386/fpu/e_logf.S (__ieee754_logf): Likewise.
	* sysdeps/x86_64/fpu/e_logl.S (__ieee754_logl): Likewise.
	* sysdeps/x86_64/fpu/e_log10l.S (__ieee754_log10l): Replace
	andb $1, %ah with testb $1, %ah, don't test for parity, instead
	testb $4, %ah and jump if non-zero.
	* sysdeps/x86_64/fpu/e_log2l.S (__ieee754_log2l): Likewise.
	* sysdeps/x86_64/fpu/s_log1pl.S (__log1pl): Likewise.

	[BZ #4101]
	* argp/argp-help.c (hol_cluster_cmp): Fix comparisons used to find
	ancestors with the same depths.
	Patch by Niels Moeller <nisse@lysator.liu.se>.
	(filter_doc): Don't crash if argp is NULL.
	* argp/Makefile (tests): Add tst-argp2.
	* argp/tst-argp2.c: New test.

	[BZ #4130]
	* login/utmp_file.c (setutent_file): Use O_LARGEFILE for
	open_not_cancel_2.
	(updwtmp_file): Likewise.

	[BZ #4181]
	* inet/inet6_opt.c (add_padding): Only insert padding if npad > 0.
	(inet6_opt_append): Don't check extlen is big enough if extbuf
	is NULL.
	(inet6_opt_finish): Likewise.
	* inet/Makefile (tests): Add test-inet6_opt.
	* inet/test-inet6_opt.c: New test.

	* sysdeps/unix/sysv/linux/ifaddrs.c (__netlink_request): Never
	reallocate the buffer, instead fail for MSG_TRUNC or for EBUSY
	NLMSG_ERR.  Instead use a page sized buffer.
	* sysdeps/unix/sysv/linux/check_pf.c (make_request): Use page sized
	buffer.

2007-03-14  Richard Henderson  <rth@redhat.com>

	* sysdeps/alpha/fpu/s_llround.c: New file.
	* sysdeps/alpha/fpu/s_llroundf.c: New file.
	* sysdeps/alpha/fpu/s_lround.c: New file.
	* sysdeps/alpha/fpu/s_lroundf.c: New file.
	* sysdeps/alpha/fpu/s_round.c: New file.
	* sysdeps/alpha/fpu/s_roundf.c: New file.
	* sysdeps/alpha/fpu/s_trunc.c: New file.
	* sysdeps/alpha/fpu/s_truncf.c: New file.

	* sysdeps/alpha/fpu/s_ceil.c: Rewrite without branches.
	* sysdeps/alpha/fpu/s_ceilf.c: Likewise.
	* sysdeps/alpha/fpu/s_floor.c: Likewise.
	* sysdeps/alpha/fpu/s_floorf.c: Likewise.
	* sysdeps/alpha/fpu/s_rint.c: Likewise.
	* sysdeps/alpha/fpu/s_rintf.c: Likewise.

	* sysdeps/alpha/fpu/s_fmax.S: New file.
	* sysdeps/alpha/fpu/s_fmaxf.S: New file.
	* sysdeps/alpha/fpu/s_fmin.S: New file.
	* sysdeps/alpha/fpu/s_fminf.S: New file.
	* sysdeps/alpha/fpu/s_isnan.c: New file.
	* sysdeps/alpha/fpu/s_isnanf.c: New file.
	* sysdeps/alpha/fpu/s_llrint.c: New file.
	* sysdeps/alpha/fpu/s_llrintf.c: New file.
	* sysdeps/alpha/fpu/s_lrint.c: New file.
	* sysdeps/alpha/fpu/s_lrintf.c: New file.
	* sysdeps/alpha/fpu/s_nearbyint.c: New file.
	* sysdeps/alpha/fpu/s_nearbyintf.c: New file.

	* sysdeps/alpha/fpu/bits/mathinline.h (__floorf, __floor): Remove.
	(__fdimf, fdimf, __fdim, fdim): Remove.
	(__signbitf, __signbit, __signbitl): Use gcc builtin if available.
	(__isnanf, __isnan, __isnanl): New.

2007-03-13  Richard Henderson  <rth@redhat.com>

	* sysdeps/ieee754/ldbl-128/Makefile: New file.

2007-03-13  Richard Henderson  <rth@redhat.com>

	* sysdeps/alpha/Makefile (sysdep-CFLAGS): Force dynamic rounding.
	* sysdeps/alpha/fpu/bits/mathinline.h (__signbitl): New.
	* sysdeps/alpha/fpu/libm-test-ulps: Regenerate.
	* sysdeps/unix/sysv/linux/alpha/alphaev6/fpu/Implies: New file.
	* sysdeps/unix/sysv/linux/alpha/alphaev67/fpu/Implies: New file.
	* sysdeps/unix/sysv/linux/alpha/fpu/Implies: New file.

2007-03-13  Richard Henderson  <rth@redhat.com>

	* elf/dl-support.c (_dl_aux_init): Honor DL_PLATFORM_AUXV.
	* sysdeps/unix/sysv/linux/alpha/dl-auxv.h: New file.
	* sysdeps/unix/sysv/linux/alpha/dl-support.c: New file.
	* sysdeps/unix/sysv/linux/alpha/dl-sysdep.c (__libc_alpha_cache_shape):
	Move to dl-auxv.h; initialize instead of extern weak.
	(DL_PLATFORM_AUXV): Move to dl-auxv.h; don't test for undef
	weak symbol.
	* sysdeps/unix/sysv/linux/alpha/sysconf.c (__libc_alpha_cache_shape):
	Extern instead of initialized.

2007-03-13  Richard Henderson  <rth@redhat.com>

	* sysdeps/unix/sysv/linux/alpha/sigsuspend.S: Add support for
	__sigsuspend_nocancel.

2007-03-06  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/posix/getaddrinfo.c (get_scope): Correct test for
	172.16/12 address range.

2007-03-02  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/ifaddrs.c (__netlink_request): Retry with
	a new netlink socket if NLMSG_ERR -EBUSY is seen after some MSG_TRUNC
	message.

2007-03-01  Jakub Jelinek  <jakub@redhat.com>

	[BZ #4069]
	* sysdeps/ieee754/dbl-64/e_pow.c (__ieee754_pow): Check for NaN
	earlier.
	* math/libm-test.inc (pow_test): Add more tests involving NaNs.

	* sysdeps/i386/fpu/e_powf.S (__ieee754_powf): Avoid invalid exception
	for x qNaN and y either +-inf or non-integer value.
	* sysdeps/i386/fpu/e_pow.S (__ieee754_pow): Likewise.
	* sysdeps/i386/fpu/e_powl.S (__ieee754_powl): Likewise.
	* sysdeps/x86_64/fpu/e_powl.S (__ieee754_powl): Likewise.

2007-02-10  Mike Frysinger  <vapier@gentoo.org>

	* sysdeps/unix/sysv/linux/sh/Makefile: Remove sys/io.h
	from sysdep_headers.

2007-02-28  Jakub Jelinek  <jakub@redhat.com>

	* time/tzfile.c (find_transition): Instead of a linear search try to
	guess the transition index, use a linear search if the result is at
	most 10 transitions away from the guess or binary search otherwise.

2007-02-27  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/ifaddrs.c (__netlink_request): Fix
	memory reallocation.

2007-02-21  Ulrich Drepper  <drepper@redhat.com>

	* stdlib/strtod_l.c (____STRTOF_INTERNAL): Add branch predictions
	and fix some typos.
	Optimize use of TOLOWER.

	[BZ #3325]
	* sysdeps/i386/fpu/e_fmodf.S: Revert last changes, keep using fprem.
	* sysdeps/i386/fpu/e_fmodl.c: Likewise.
	* sysdeps/i386/fpu/e_fmod.S: Likewise.

	[BZ #3458]
	* sysdeps/unix/sysv/linux/posix_madvise.c: New file.
	* sysdeps/unix/sysv/linux/syscalls.list: Remove posix_madvise entry.

	[BZ #4076]
	* io/ftw.c (ftw_startup): Handle special case of FTW_CHDIR in /.
	(open_dir_stream): Likewise.
	* io/Makefile (tests): Add bug-ftw5.
	* io/bug-ftw5.c: New file.

	* nscd/hstcache.c (cache_addhst): Remove unnecessary conditional.
	* nscd/servicescache.c (cache_addserv): Likewise.

	* nscd/grpcache.c (cache_addgr): In case a record changed on
	refresh, adjust key_copy.

	[BZ #4074]
	* nscd/pwdcache.c (cache_addpw): In case a record changed on
	refresh, adjust key_copy.

	[BZ #4070]
	* stdio-common/printf_fp.c (___printf_fp): Handle a few more
	special cases.
	* stdio-common/tfformat.c (sprint_doubles): Some more tests.

2007-02-19  Ulrich Drepper  <drepper@redhat.com>

	* stdio-common/printf_fp.c (___printf_fp): Cleanups and minor
	optimization.

	* stdio-common/vfscanf.c: Small cleanups throughout.

2007-02-18  Ulrich Drepper  <drepper@redhat.com>

	[BZ #3325]
	* sysdeps/i386/fpu/e_fmodf.S: Use fprem1 instead of fprem.
	* sysdeps/i386/fpu/e_fmodl.c: Likewise.
	* sysdeps/i386/fpu/e_fmod.S: Likewise.
	Patch by Jared Casper <jaredcasper@gmail.com>.

	* sysdeps/unix/closedir.c: Outside libc don't use locking.
	* sysdeps/unix/opendir.c: Likewise.
	* sysdeps/unix/readdir.c: Likewise.

	[BZ #2211]
	* stdio-common/vfscanf.c: Handle localized digits etc for floating
	point numbers.
	Patch mostly by Hamed Malek <hamed@farsiweb.info>.

	* stdio-common/vfscanf.c: Fix problems in width accounting.
	* stdio-common/tst-sscanf.c (double_tests): New tests.
	(main): Hook them up.

	* stdio-common/vfscanf.c: Remove unused WIDTH handling.
	More simplifications of floating-point reader.

	* stdio-common/Makefile (tests): Add tst-swscanf.
	* stdio-common/tst-sscanf.c: Make tests usable for swscanf
	testing.
	* stdio-common/tst-swscanf.c: New file.

2007-02-17  Ulrich Drepper  <drepper@redhat.com>

	[BZ #2633]
	* libio/stdio.h: Define struct _IO_FILE in global namespace.
	* setjmp/setjmp.h: Define __jmp_buf_tag in global namespace.
	Remove using for __jmp_buf_tag.
	* locale/locale.h (struct lconv): Also define in std namespace.
	* wcsmbs/wchar.h: Move using declaration for tm out of namespace.

	[BZ #3842]
	* sysdeps/posix/euidaccess.c [_LIBC] (euidaccess): Remove shortcut
	using __libc_enable_secure.

	[BZ #3818]
	* sysdeps/unix/sysv/linux/sys/acct.h (struct acct_v3): Define.

	[BZ #3745]
	* locale/programs/ld-collate.c (handle_ellipsis): Fix generation
	of names for ellipsises.

	[BZ #3348]
	* malloc/memusage.sh: Cleanups.
	* debug/xtrace.sh: Quoting and trap changes.

2007-02-16  Ulrich Drepper  <drepper@redhat.com>

	* locale/iso-3166.def: Add Jersey, Guernsey, and Isle Of Man entries.

	* locale/iso-3166.def: Update entry for Serbia.
	* locale/iso-4217.def: Define RSD, remove CSD.

	* sysdeps/x86_64/bits/atomic.h: One more change, this time for 16-
	and 64-bit operations.

	[BZ #4040]
	* sysdeps/i386/i486/bits/atomic.h: One more change, this time for
	16-bit operations.

	* nscd/nscd.c (parse_opt): One more conversion to use send instead
	of writev.

2007-02-15  Ulrich Drepper  <drepper@redhat.com>

	[BZ #3991]
	* assert/assert.h (assert): Simplify.
	(assert_perror): Likewise.
	Patch by Israel G. Lugo <ilugo@bridonsecurity.com>.

	* nscd/nscd_helper.c (open_socket): Don't send padding bytes from
	reqdata.

	* sysdeps/unix/sysv/linux/x86_64/send.c (__libc_send): Cosmetic
	change: don't pass NULL in place of an integer.

2007-02-02  Bruno Haible  <bruno@clisp.org>

	[BZ #3954]
	* iconvdata/ksc5601.c (__ksc5601_sym_to_ucs, __ksc5601_sym_from_ucs):
	Add mapping for U+327E.
	* iconvdata/ksc5601.h (KSC5601_SYMBOL): Increment.
	* iconvdata/johab.c (BODY for FROM_LOOP, BODY for TO_LOOP): Enable
	mapping of 0xD9 0xE8.
	* iconvdata/uhc.c (BODY for FROM_LOOP, BODY for TO_LOOP): Disable
	mapping of U+327E.
	Reported by Jungshik Shin <jungshik@google.com>.

	[BZ #3955]
	* iconvdata/johab.c (BODY for FROM_LOOP, BODY for TO_LOOP): Enable
	mapping of 0xD9 0xE6 and of 0xD9 0xE7.
	Reported by Jungshik Shin <jungshik@google.com>.

2007-02-14  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/x86_64/bits/atomic;h: Fix asm parameters for some
	byte variants.

	[BZ #4040]
	* sysdeps/i386/i486/bits/atomic.h: Fix asm parameters for some
	byte variants.  Patch mostly be tom@tommay.net.

2007-02-14  Jakub Jelinek  <jakub@redhat.com>

	[BZ #3996]
	* posix/glob.c (attribute_hidden): Define if not defined.
	(glob): Unescape dirname, filename or username when needed and not
	GLOB_NOESCAPE.  Handle \/ correctly.  Handle GLOB_MARK if filename
	is NULL.  Handle unescaped [ in pattern without closing ].
	Don't pass GLOB_CHECK down to recursive glob for directories.
	(__glob_pattern_type): New function.
	(__glob_pattern_p): Implement using __glob_pattern_type.
	(glob_in_dir): Handle GLOB_NOCHECK patterns containing no meta
	characters and backslashes if not GLOB_NOESCAPE or unterminated [.
	Remove unreachable code.
	* posix/globtest.sh: Add a couple of new tests.

2007-02-13  Ulrich Drepper  <drepper@redhat.com>

	* po/ru.po: Update from translation team.

2007-02-12  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/i386/bits/byteswap.h (__bswap_32): Add __amdfam10__
	to the list of i486+ CPUs.
	* sysdeps/x86_64/bits/byteswap.h (__bswap_32): Likewise.

2007-02-12  Ulrich Drepper  <drepper@redhat.com>

	* elf/rtld.c (RESOLVE_MAP): Always return bootstrap_map reference.
	* elf/Makefile ($(objpfx)ld.so): Check that ld.so has no undefined
	references.

2007-02-09  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/x86_64/sysdep.h: Remove incorrect comment.

	* resolv/res_init.c (res_setoptions): Recognize edns0 option.
	* resolv/res_mkquery.c: Define __res_nopt.
	* resolv/res_query.c (__libc_res_nquery): If RES_USE_EDNS0 is set
	try adding EDNS0 record.
	* resolv/res_send.c (send_dg): If request failed with FORMERR and
	EDNS0 record was send make sure we don't try it again.
	* resolv/resolv.h: Define RES_F_EDNS0ERR and RES_USE_EDNS0.
	* include/resolv.h: Declare __res_nopt.

2007-02-08  Jakub Jelinek  <jakub@redhat.com>

	[BZ #3944]
	* time/strptime_l.c (__strptime_internal): Set have_mon for
	%b/%B/%h.  Set have_mon and have_mday if tm_mon and tm_mday
	have been computed from tm_yday and tm_year.  Don't crash
	in day_of_the_week or day_of_the_year if not have_mon
	and tm_mon contains bogus value.
	* time/Makefile (tests): Add tst-strptime3.
	* time/tst-strptime3.c: New test.

2007-02-05  Jakub Jelinek  <jakub@redhat.com>

	[BZ #3957]
	* posix/regcomp.c (parse_bracket_exp): Set '\n' bit rather than '\0'
	bit for RE_HAT_LISTS_NOT_NEWLINE.
	(build_charclass_op): Remove bogus comment.
	* posix/Makefile (tests): Add bug-regex27 and bug-regex28.
	* posix/bug-regex27.c: New test.
	* posix/bug-regex28.c: New test.

2007-02-03  Ulrich Drepper  <drepper@redhat.com>

	* po/sv.po: Update from translation team.

2007-02-02  Ulrich Drepper  <drepper@redhat.com>

	* nscd/nscd_helper.c (open_socket): Minor size optimization.

2007-02-02  Jakub Jelinek  <jakub@redhat.com>

	* include/locale.h (__uselocale): Add libc_hidden_proto.
	* locale/uselocale.c (__uselocale): Add libc_hidden_def.

	* nscd/nscd_helper.c (open_socket): Use __gettimeofday instead of
	gettimeofday.

2007-02-01  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/i386/sysdep.h (PTR_MANGLE): Roll value before
	returning.
	(PTR_DEMANGLE): Real definition now that it's not the same as
	PRT_MANGLE anymore.
	* sysdeps/unix/sysv/linux/x86_64/sysdep.h: Likewise.

	* string/strerror_l.c: New file.
	* string/Makefile (routines): Add strerror_l.
	* string/string.h: Declare strerror_l.
	* string/Versions: Export strerror_l for GLIBC_2.6.

2007-01-31  Ulrich Drepper  <drepper@redhat.com>

	* nscd/nscd_helper.c (open_socket): Now takes request type and key
	as parameter.  Construct request record.  Try sending request
	before the first poll use, it usually succeeds.  Adjust all
	callers.
	* nscd/nscd-client.h: Define MAXKEYLEN.
	* nscd/connections.c (nscd_run): Don't define MAXKEYLEN here.

2007-01-31  Jakub Jelinek  <jakub@redhat.com>

	* nscd/nscd-client.h (__nscd_cache_search): Remove const qualifier
	from return value.
	* nscd/nscd_helper.c: Include string.h.
	(__nscd_cache_search): Remove const qualifier from return value.
	On strict alignment architectures check hash entry and data head
	alignment.
	* nscd/nscd_getpw_r.c (nscd_getpw_r): Don't crash or fail because
	mmapped data during GC cycle contains garbage.  If
	__nscd_drop_map_ref fails, decrement mapped->counter when returning
	error or if retrying with NO_MAPPING, only __nscd_unmap if counter
	dropped to 0.
	* nscd/nscd_getgr_r.c (nscd_getgr_r): Likewise.
	* nscd/nscd_initgroups.c (__nscd_getgrouplist): Likewise.
	* nscd/nscd_gethst_r.c (nscd_gethst_r): Likewise.
	* nscd/nscd_getai.c (__nscd_getai): Likewise.
	* nscd/nscd_getserv_r.c (nscd_getserv_r): Likewise.

2007-01-30  Ulrich Drepper  <drepper@redhat.com>

	* misc/hsearch_r.c (hdestroy_r): Remove unnecessary test.

2007-01-26  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/i386/dl-trampoline.S (_dl_runtime_profile): Use register
	names not numbers in cfi_*.

2007-01-26  Andreas Jaeger  <aj@suse.de>

	* sysdeps/unix/sysv/linux/sys/personality.h (ADDR_NO_RANDOMIZE,
	ADDR_LIMIT_3GB, PER_LINUX_32BIT, PER_LINUX32_3GB): Add.
	Correct values of PER_HPUX and PER_OSF4.

2007-01-24  Ulrich Drepper  <drepper@redhat.com>

	* elf/dl-minimal.c: Undefine _itoa first.
	* stdio-common/_itoa.h: Define _itoa and _fitoa for 64-bit platforms.
	* malloc/mtrace.c: Revert last change.
	* posix/wordexp.c: Likewise.

2007-01-24  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/i386/bits/byteswap.h (__bswap_32): Add __nocona__, __core2__
	and __geode__ to the list of i486+ CPUs.
	* sysdeps/x86_64/bits/byteswap.h (__bswap_32): Likewise.

2007-01-23  Ulrich Drepper  <drepper@redhat.com>

	* stdio-common/_itoa.c: Include <limits.h>.
	* stdio-common/_itowa.c: Likewise.

2007-01-22  Ulrich Drepper  <drepper@redhat.com>

	* stdio-common/_itowa.c: Don't compile _itowa for 64-bit
	platforms.
	* stdio-common/_itoa.c: Don't compile in _itoa and _fitoa for
	64-bit platforms.
	* malloc/mtrace.c (tr_where): Use _fitoa_word instead of _fitoa if
	possible.
	* posix/wordexp.c (parse_arith): Use _itoa_word instead of _itoa
	if possible.

	[BZ #3902]
	* stdio-common/_itoa.c (_itoa): Make sure at least a zero is emitted.
	* stdio-common/Makefile (tests): Add bug17.
	* stdio-common/bug17.c: New file.

2007-01-19  Ulrich Drepper  <drepper@redhat.com>

	* iconvdata/brf.c: New file.
	* iconvdata/testdata/BRF: New file.
	* iconvdata/testdata/BRF..UTF8: New file.
	Contributed by Samuel Thibault <samuel.thibault@ens-lyon.org>.
	* iconvdata/Makefile: Add rules to build BRF.
	* iconvdata/TESTS: Add BRF entry.
	* iconvdata/gconv-modules: Likewise.
	* iconvdata/tst-tables.sh: Likewise.

2007-01-18  Anton Nikishaev  <anton.nik@gmail.com>

	* wcsmbs/wchar.h (wcstoll): Fix comment, function returns value of
	type `long long int', not `long int'.
	(wcstoq): Likewise.

2007-01-18  Ulrich Drepper  <drepper@redhat.com>

	* scripts/gen-as-const.awk: Add cast to long to avoid int promotion
	of values on 64-bit platforms which are too large.

2007-01-12  Steven Munroe  <sjmunroe@us.ibm.com>
	    Joe Kerian  <jkerian@us.us.ibm.com>

	[BZ #2749]
	* sysdeps/ieee754/ldbl-128ibm/s_copysignl.c: Include
	<math_ldbl_opt.h>.  Remove weak_alias.  Use long_double_symbol macro.
	(__copysignl): Use signbit() for comparison.
	* sysdeps/ieee754/ldbl-128ibm/s_fabsl.c (__fabsl): Correct parms for
	SET_LDOUBLE_WORDS64.

	[BZ #2423, #2749]
	* sysdeps/ieee754/ldbl-128ibm/s_ceill.c: Don't include <fenv_libc.h>.
	(__ceill): Remove calls to fegetround(), fesetround().
	* sysdeps/ieee754/ldbl-128ibm/s_floorl.c: Likewise.
	* sysdeps/ieee754/ldbl-128ibm/s_roundl.c: Likewise.
	* sysdeps/ieee754/ldbl-128ibm/s_truncl.c: Likewise.

2007-01-17  Jakub Jelinek  <jakub@redhat.com>

	* nscd/nscd_getserv_r.c (nscd_getserv_r): Fix pastos.

	* sysdeps/unix/sysv/linux/getdents.c (offsetof): Remove.

2007-01-17  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/fatal-prepare.h: Use PTHFCT_CALL to
	demangle pointer.
	* csu/libc-start.c: Likewise.

2007-01-16  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/posix/system.c: Remove NO_WAITPID support, it cannot
	really work anyway.

2007-01-15  Ulrich Drepper  <drepper@redhat.com>

	* nscd/connections.c (servinfo): Renamed to reqinfo.  Change all
	users.
	(handle_request): Remove unnecessary tests.

	* nscd/cache.c (cache_add): Record the failure to add to the cache.

2007-01-15  Jakub Jelinek  <jakub@redhat.com>

	* soft-fp/op-common.h (FP_TRUNC): When truncating a NaN, clear
	workbits in semi-raw fraction.

	* math/test-misc.c: Add new tests.

2007-01-14  Steven Munroe  <sjmunroe@us.ibm.com>

	* math/basic-test.c: Include test-skeleton.c.
	(TEST_TRUNC): Define.
	(truncdfsf_test, trunctfsf_test, trunctfdf_test): New.
	(main): Rename to ...
	(do_test): ...this.  Run new tests.
	(TEST_FUNCTION): Define.

2006-10-05  Steven Munroe  <sjmunroe@us.ibm.com>
	    Joe Kerian  <jkerian@us.us.ibm.com>

	[BZ #2749]
	* soft-fp/op-4.h (__FP_FRAC_SUB_3, __FP_FRAC_SUB_4): Correct borrow
	handling for high words.
	* soft-fp/op-common.h (_FP_OVERFLOW_SEMIRAW): Always set inexact
	and overflow for infinity.

2007-01-15  Ulrich Drepper  <drepper@redhat.com>

	* nscd/connections.c (handle_request): Add a __builtin_expect.

	* nscd/connections.c (serv2db): Change type into structure which
	also says whether this is a request for data.  Renamed to
	servinfo.  All users changed.
	(handle_request): Much simpler test whether we should search the cache.

	* nscd/connections.c (handle_request): Fix thinko in selinux test
	invocation.

	* sysdeps/generic/ldsodefs.h: Define DL_LOOKUP_SCOPE_LOCK.
	* elf/dl-lookup.c (add_dependency): If scope map is locked, unlock
	it before getting dl_load_lock and then relock.
	(_dl_lookup_symbol_x): Pass flags to add_dependency.
	When rerunning _dl_lookup_symbol_x, compute symbol_scope again in
	case we unlocked the scope.
	* elf/dl-runtime.c (_dl_fixup): Pass DL_LOOKUP_SCOPE_LOCK to
	_dl_lookup_symbol_x in case we locked the scope.
	(_dl_profile_fixup): Likewise.
	* elf/dl-sym.c (do_sym): In flags passed to call_dl_lookup, also
	set DL_LOOKUP_SCOPE_LOCK.

2007-01-13  Ulrich Drepper  <drepper@redhat.com>

	* inet/Makefile: Define CFLAGS-getsrvbynm_r.c and
	CFLAGS-getsrvbynpt_r.c.
	* nscd/getsrvbynm_r.c: New file.
	* nscd/getsrvbypt_r.c: New file.
	* nscd/nscd_getserv_r.c: New file.
	* nscd/servicescache.c: New file.
	* nscd/Makefile (routines): Add nscd_getserv_r.
	(nscd-modules): Add getsrvbynm_r, getsrvbypt_r, and servicescache.
	Define CFLAGS-servicescache.c, CFLAGS-getsrvbynm_r.c, and
	CFLAGS-getsrvbypt_r.c.
	* nscd/cache.c (prune_cache): Rewrite to get re-add function from
	table.  Add entries for services database.
	* nscd/connections.c (serv2str): Mark as const.  Add entries for
	services database.
	(dbs): Add .reset_res and servdb initialization.
	(serv2db): Add entries for services database.
	(verify_persistent_db): Accept dbnr == servdb.
	(invalidate_cache): Rewrite database name recognition to use a table.
	Call res_init() if .reset_res is set for database.
	(handle_request): Add code to handle services database.
	* nscd/gai.c: Don't define __getservbyname_r.
	* nscd/nscd-client.h (request_type): Remove LASTDBREQ, add
	GETSERVBYNAME, GETSERVBYPORT, GETFDSERV.
	(serv_response_header): Define.
	(struct datahead): Add serv_response_header member.
	* nscd/nscd.c (parse_opt): Rewrite parsing of -i parameter value
	using table.
	* nscd/nscd.conf: Add entries for services database.
	* nscd/nscd.h: Adjust declaration of dbnames and serv2str.
	Declare serv_iov_disabled.
	Declare addservbyname, readdservbyname, addservbyport, and
	readdservbyport.
	* nscd/nscd_conf.c (dbnames): Mark as const.  Add services entry.
	(find_db): Fix error message.
	* nscd/nscd_proto.h: Declare __nss_not_use_nscd_services,
	__nscd_getservbyname_r, and __nscd_getservbyport_r.
	* nscd/selinux.c (perms): Add entries for services database.
	* nss/Versions: Export __nss_services_lookup with GLIBC_PRIVATE.
	* nss/nsswitch.c (__nss_disable_nscd): Also disable services database.

	* nscd/grpcache.c: Remove obsolete code.  Cleanups.
	* nscd/hstcache.c: Likewise.
	* nscd/pwdcache.c: Likewise.

	* nis/nss_nis/nis-service.c (_nss_nis_getservbyname_r): Correct
	computation of keylen.

	* include/string.h: Only redefine strndupa if this is really for
	libc code.

2007-01-12  Ulrich Drepper  <drepper@redhat.com>

	* nscd/nscd_gethst_r.c: Minor cleanups.

	* nscd/connections.c (handle_request): Check selinux permissions
	for all non-admin commands.

	* sysdeps/i386/i486/bits/atomic.h: Define
	atomic_compare_and_exchange_val_acq,
	atomic_compare_and_exchange_bool_acq, and atomic_exchange_and_add
	using __sync_* built-ins for gcc >= 4.1.
	* sysdeps/x86_64/bits/atomic.h: Likewise.

	[BZ #3840]
	* scripts/check-local-headers.sh: Restrict to testing .o.d, .os.d,
	and .oS.d files.

2007-01-05  Steven Munroe  <sjmunroe@us.ibm.com>

	* stdlib/tst-makecontext.c: Include errno.h.  Change main()
	to do_test().  Define TEST_FUNCTION. Include test-skeleton.c.
	(do_test): Check errno and exit(0) if ENOSYS.

2007-01-11  Jakub Jelinek  <jakub@redhat.com>

	* stdlib/strtod_l.c (____STRTOF_INTERNAL): Fix handling of multi-byte
	thousands separators.
	* stdlib/Makefile: Add rules to build and run tst-strtod4.
	* stdlib/tst-strtod4.c: New test.

	[BZ #3855]
	* stdlib/strtod_l.c (____STRTOF_INTERNAL): 0x. not followed by
	hexadecimal digit should accept just the initial 0.
	* stdlib/tst-strtod2.c (tests): New variable.
	(do_test): Run several tests rather than just one.

2007-01-11  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/i386/soft-fp/sfp-machine.h: Remove.
	* sysdeps/x86_64/soft-fp/sfp-machine.h: Likewise.

2007-01-10  Ulrich Drepper  <drepper@redhat.com>

	* io/fts.c: Make sure fts_cur is always valid after return from
	fts_read.
	Patch by Miloslav Trmac <mitr@redhat.com>.

2006-10-27  Richard Sandiford  <richard@codesourcery.com>

	* elf/elf.h (R_MIPS_GLOB_DAT): Define.
	(R_MIPS_NUM): Bump by 1.

2007-01-03  Jakub Jelinek  <jakub@redhat.com>

	* posix/execvp.c: Include alloca.h.
	(allocate_scripts_argv): Renamed to...
	(scripts_argv): ... this.  Don't allocate buffer here nor count
	arguments.
	(execvp): Use alloca if possible.
	* posix/Makefile: Add rules to build and run tst-vfork3 test.
	* posix/tst-vfork3.c: New test.

2007-01-03  Ulrich Drepper  <drepper@redhat.com>

	* string/Makefile (tst-strxfrm2-ENV): Define.
	* stdlib/Makefile (tst-strtod3-ENV): Define.

2007-01-02  Ulrich Drepper  <drepper@redhat.com>

	* posix/getconf.c: Update copyright year.
	* nss/getent.c: Likewise.
	* iconv/iconvconfig.c: Likewise.
	* iconv/iconv_prog.c: Likewise.
	* elf/ldconfig.c: Likewise.
	* catgets/gencat.c: Likewise.
	* csu/version.c: Likewise.
	* elf/ldd.bash.in: Likewise.
	* elf/sprof.c (print_version): Likewise.
	* locale/programs/locale.c: Likewise.
	* locale/programs/localedef.c: Likewise.
	* nscd/nscd.c (print_version): Likewise.
	* debug/xtrace.sh: Likewise.
	* malloc/memusage.sh: Likewise.
	* malloc/mtrace.pl: Likewise.
	* debug/catchsegv.sh: Likewise.

2006-12-24  Ulrich Drepper  <drepper@redhat.com>

	* malloc/malloc.c (sYSMALLOc): Remove some unnecessary alignment
	attempts.

2006-12-23  Ulrich Drepper  <drepper@redhat.com>

	* posix/wordexp.c: Remove some unnecessary tests.

2006-12-22  Gavin Romig-Koch  <gavin@redhat.com>

	* nis/nss_compat/compat-grp.c (internal_getgrgid_r): Don't
	blacklist the group till after we look it up.

2006-12-21  Ulrich Drepper  <drepper@redhat.com>

	* include/atomic.h (atomic_forced_read): New macro.

2006-12-20  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>

	* sysdeps/unix/sysv/linux/sh/bits/shm.h: New file.

2006-12-19  Jakub Jelinek  <jakub@redhat.com>

	* nss/getXXbyYY_r.c: Include atomic.h.
	(INTERNAL (REENTRANT_NAME)): Write startp after start_fct,
	add atomic_write_barrier () in between.

	* stdlib/Makefile (tests): Add tst-makecontext.
	* stdlib/tst-makecontext.c: New test.

	* sysdeps/unix/sysv/linux/powerpc/powerpc32/makecontext.S
	(__makecontext): Don't realign uc_mcontext.uc_regs.

2006-11-28  Jakub Jelinek  <jakub@redhat.com>

	* elf/dl-support.c: Include dl-procinfo.h.
	* sysdeps/powerpc/dl-procinfo.h (PPC_PLATFORM_POWER4,
	PPC_PLATFORM_PPC970, PPC_PLATFORM_POWER5, PPC_PLATFORM_POWER5_PLUS,
	PPC_PLATFORM_POWER6, PPC_PLATFORM_CELL_BE, PPC_PLATFORM_POWER6X):
	Define.
	(_dl_string_platform): Use PPC_PLATFORM_* macros instead of
	hardcoded constants.
	* sysdeps/powerpc/dl-procinfo.c (_dl_powerpc_platform): Use
	PPC_PLATFORM_* macros for array designators.

2006-11-11  Steven Munroe  <sjmunroe@us.ibm.com>

	* sysdeps/powerpc/dl-procinfo.c (_dl_powerpc_cap_flags): Add 3 new cap
	names to the beginning.
	(_dl_powerpc_platforms): Add "power6x".
	* sysdeps/powerpc/dl-procinfo.h (_DL_HWCAP_FIRST): Decrease.
	(HWCAP_IMPORTANT): Add PPC_FEATURE_HAS_DFP.
	(_DL_PLATFORMS_COUNT): Increase.
	(_dl_string_platform): Handle power6x case.
	* sysdeps/powerpc/sysdep.h (PPC_FEATURE_PA6T, PPC_FEATURE_HAS_DFP,
	PPC_FEATURE_POWER6_EXT): Define.
	(PPC_FEATURE_POWER5, PPC_FEATURE_POWER5_PLUS): Correct Comment.

2006-12-18  Jakub Jelinek  <jakub@redhat.com>

	[BZ #3747]
	* stdlib/jrand48_r.c (__jrand48_r): Make sure result is in the
	[-2^31 .. 2^31) range.
	* stdlib/tst-rand48.c (main): Fix expected values for 64-bit
	targets.
	* stdlib/tst-rand48-2.c: New test.
	* stdlib/Makefile (tests): Add tst-rand48-2.

2006-12-14  Jakub Jelinek  <jakub@redhat.com>

	* misc/tst-pselect.c (do_test): Fix sigblock argument.

2006-12-14  Ulrich Drepper  <drepper@redhat.com>

	* misc/tst-pselect.c (do_test): Make sure the helper process is
	terminating when the test is aborted.

2006-12-13  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/bits/statvfs.h: Define ST_RELATIME.
	* sysdeps/unix/sysv/linux/internal_statvfs.c (__statvfs_getflags):
	Handle relatime mount option.

	[BZ #2337]
	* libio/Makefile (tests): Add tst-setvbuf1.
	* libio/tst-setvbuf1.c: New file.

2006-12-08  Jakub Jelinek  <jakub@redhat.com>

	[BZ #2337]
	* libio/genops.c (__uflow): Fix a typo.
	* libio/wfiledoalloc.c (_IO_wfile_doallocate): Don't stat
	nor set _IO_LINE_BUF bit here.  Size the wide buffer based on
	the narrow buffer size.

2006-11-24  Jakub Jelinek  <jakub@redhat.com>

	[BZ #2337]
	* libio/libio.h (_IO_FLAGS2_USER_WBUF): Define.
	* libio/wgenops.c (_IO_wsetb, _IO_wdefault_finish): Test and set
	_IO_FLAGS2_USER_WBUF bit in _flags2 instead of _IO_USER_BUF bit
	in _flags.
	* libio/wstrops.c (_IO_wstr_overflow, enlarge_userbuf,
	_IO_wstr_finish): Likewise.
	* libio/wmemstream.c (open_wmemstream): Likewise.
	* libio/fileops.c (_IO_new_file_close_it): Call _IO_set[bgp]
	even for wide streams.

2006-12-13  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S: Include
	kernel-features.h.

2006-12-11  Ulrich Drepper  <drepper@redhat.com>

	* stdlib/strtod_l.c (____STRTOF_INTERNAL): Parse thousand
	separators also if no non-zero digits found.
	* stdlib/Makefile (tests): Add tst-strtod3.

2006-12-09  Ulrich Drepper  <drepper@redhat.com>

	[BZ #3632]
	* include/features.h: Fix comment about default value for
	_POSIX_C_SOURCE.

	[BZ #3664]
	* stdlib/strtod_l.c (____STRTOF_INTERNAL): Fix test to recognize
	empty parsed strings.
	* stdlib/Makefile (tests): Add tst-strtod2.
	* stdlib/tst-strtod2.c: New file.

	[BZ #3673]
	* stdlib/strtod_l.c (____STRTOF_INTERNAL): Fix exp_limit
	computation.
	* stdlib/Makefile (tests): Add tst-atof2.
	* stdlib/tst-atof2.c: New file.

	[BZ #3674]
	* stdlib/strtod_l.c (____STRTOF_INTERNAL): Adjust exponent value
	correctly if removing trailing zero of hex-float.
	* stdlib/Makefile (tests): Add tst-atof1.
	* stdlib/tst-atof1.c: New file.

2006-12-09  Jakub Jelinek  <jakub@redhat.com>

	* misc/mntent_r.c (__hasmntopt): Check p[optlen] even when p == rest.
	Start searching for next comma at p rather than rest.
	* misc/Makefile (tests): Add tst-mntent2.
	* misc/tst-mntent2.c: New test.

	* misc/getusershell.c (initshells): Check for integer overflows.
	Make strings buffer one bigger as fgets always succeeds when second
	argument is 1.  Don't use calloc for shells array.  Disallow
	/ as shell.

2006-12-08  Ulrich Drepper  <drepper@redhat.com>

	* malloc/memusage.c: Handle realloc with new size of zero and
	non-NULL pointer correctly.
	(me): Really write first record twice.
	(struct entry): Make format bi-arch safe.
	(dest): Write out more realloc statistics.
	* malloc/memusagestat.c (struct entry): Make format bi-arch safe.

2006-12-05  Jakub Jelinek  <jakub@redhat.com>

	* nis/nis_subr.c (nis_getnames): Revert last change.

2006-12-04  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/ttyname.c: Include termios.h.
	(ttyname): Use tcgetattr instead of isatty, don't set errno to ENOTTY.
	* sysdeps/unix/sysv/linux/ttyname_r.c: Include termios.h.
	(__ttyname_r): Use tcgetattr instead of isatty, don't set errno to
	ENOTTY.
	* io/Makefile: Add rules to build and run tst-ttyname_r test.
	* io/tst-ttyname_r.c: New test.

2006-12-03  Kaz Kojima  <kkojima@rr.iij4u.or.jp>

	* sysdeps/unix/sysv/linux/sh/sys/io.h: Removed.

2006-11-30  H.J. Lu  <hongjiu.lu@intel.com>

	* sysdeps/i386/i686/memcmp.S: Use jump table as the base of
	jump table entries.

2006-11-30  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* sysdeps/unix/sysv/linux/i386/clone.S: Provide CFI for the outermost
	`clone' function to ensure proper unwinding stop of gdb.
	* sysdeps/unix/sysv/linux/x86_64/clone.S: Likewise.

2006-12-01  Ulrich Drepper  <drepper@redhat.com>

	* nscd/nscd.init: Remove obsolete and commented-out -S option
	handling.

2006-11-23  Jakub Jelinek  <jakub@redhat.com>

	[BZ #3514]
	* manual/string.texi (strncmp): Fix pastos from wcscmp description.

	[BZ #3515]
	* manual/string.texi (strtok): Remove duplicate paragraph.

2006-12-01  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* sysdeps/unix/sysv/linux/x86_64/sigaction.c: Fix compatibility with
	libgcc not supporting `rflags' unwinding (register # >= 17).

2006-11-30  Jakub Jelinek  <jakub@redhat.com>

	* sunrpc/svc_run.c (svc_run): Set my_pollfd to new_pollfd if realloc
	succeeded.

2006-11-29  Daniel Jacobowitz  <dan@codesourcery.com>
	    Jakub Jelinek  <jakub@redhat.com>
	    Jan Kratochvil  <jan.kratochvil@redhat.com>

	* sysdeps/unix/sysv/linux/x86_64/sigaction.c (restore_rt): Add correct
	unwind information.
	* sysdeps/unix/sysv/linux/x86_64/Makefile: Provide symbols for
	'restore_rt' even in the 'signal' directory.
	* sysdeps/unix/sysv/linux/x86_64/ucontext_i.sym: Extend the regs list.

2006-11-27  Jakub Jelinek  <jakub@redhat.com>

	[BZ #3559]
	* sunrpc/svc_run.c (svc_run): Fail instead of segfaulting if
	malloc crashed.  Don't allocate memory unnecessarily in each
	loop.

2006-10-21  Jakub Jelinek  <jakub@redhat.com>

	* resolv/mapv4v6addr.h (map_v4v6_address): Fix last change.

2006-11-20  Ulrich Drepper  <drepper@redhat.com>

	* resolv/mapv4v6addr.h (map_v4v6_address): Optimize a bit.

2006-11-18  Bruno Haible  <bruno@clisp.org>

	* sysdeps/unix/sysv/linux/i386/getgroups.c (__getgroups): Invoke
	__sysconf only after having tried to call getgroups32.

2006-11-19  Ulrich Drepper  <drepper@redhat.com>

	* nss/nss_files/files-hosts.c (LINE_PARSER): Support IPv6-style
	addresses for IPv4 queries if they can be mapped.

2006-11-16  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/x86_64/fpu/s_copysignf.S (__copysignf): Switch to .text.
	* sysdeps/x86_64/fpu/s_copysign.S (__copysign): Likewise.
	(signmask): Add .size directive.
	(othermask): Add .type directive.

2006-11-14  Ulrich Drepper  <drepper@redhat.com>

	* po/nl.po: Update from translation team.

	* timezone/zdump.c: Redo fix for BZ #3137.

2006-11-14  Jakub Jelinek  <jakub@redhat.com>

	* nss/nss_files/files-alias.c (get_next_alias): Set line back
	to first_unused after parsing :include: file.

2006-11-10  Ulrich Drepper  <drepper@redhat.com>

	* timezone/africa: Update from tzdata2006o.
	* timezone/antarctica: Likewise.
	* timezone/asia: Likewise.
	* timezone/australasia: Likewise.
	* timezone/backward: Likewise.
	* timezone/europe: Likewise.
	* timezone/iso3166.tab: Likewise.
	* timezone/northamerica: Likewise.
	* timezone/southamerica: Likewise.
	* timezone/zone.tab: Likewise.

	* time/tzfile.c (__tzfile_read): Extend to handle new file format
	on machines with 64-bit time_t.

	* timezone/checktab.awk: Update from tzcode2006o.
	* timezone/ialloc.c: Likewise.
	* timezone/private.h: Likewise.
	* timezone/scheck.c: Likewise.
	* timezone/tzfile.h: Likewise.
	* timezone/tzselect.ksh: Likewise.
	* timezone/zdump.c: Likewise.
	* timezone/zic.c: Likewise.

	[BZ #3483]
	* elf/ldconfig.c (main): Call setlocale and textdomain.
	Patch mostly by Benno Schulenberg <bensberg@justemail.net>.

	[BZ #3480]
	* manual/argp.texi: Fix typos.
	* manual/charset.texi: Likewise.
	* manual/errno.texi: Likewise.
	* manual/filesys.texi: Likewise.
	* manual/lang.texi: Likewise.
	* manual/maint.texi: Likewise.
	* manual/memory.texi: Likewise.
	* manual/message.texi: Likewise.
	* manual/resource.texi: Likewise.
	* manual/search.texi: Likewise.
	* manual/signal.texi: Likewise.
	* manual/startup.texi: Likewise.
	* manual/stdio.texi: Likewise.
	* manual/sysinfo.texi: Likewise.
	* manual/syslog.texi: Likewise.
	* manual/time.texi: Likewise.
	Patch by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>.

	[BZ #3465]
	* sunrpc/clnt_raw.c: Minimal message improvements.
	* sunrpc/pm_getmaps.c: Likewise.
	* nis/nss_nisplus/nisplus-publickey.c: Likewise.
	* nis/nis_print_group_entry.c: Likewise.
	* locale/programs/repertoire.c: Likewise.
	* locale/programs/charmap.c: Likewise.
	* malloc/memusage.sh: Likewise.
	* elf/dl-deps.c: Likewise.
	* locale/programs/ld-collate.c: Likewise.
	* libio/vswprintf.c: Likewise.
	* malloc/memusagestat.c: Likewise.
	* sunrpc/auth_unix.c: Likewise.
	* sunrpc/rpc_main.c: Likewise.
	* nscd/cache.c: Likewise.
	* locale/programs/repertoire.c: Unify output messages.
	* locale/programs/charmap.c: Likewise.
	* locale/programs/ld-ctype.c: Likewise.
	* locale/programs/ld-monetary.c: Likewise.
	* locale/programs/ld-numeric.c: Likewise.
	* locale/programs/ld-time.c: Likewise.
	* elf/ldconfig.c: Likewise.
	* nscd/selinux.c: Likewise.
	* elf/cache.c: Likewise.
	Patch mostly by Benno Schulenberg <bensberg@justemail.net>.

	[BZ #3451]
	* sysdeps/i386/fpu/bits/mathinline.h (floor): Make rounding mode
	change atomic.
	(ceil): Likewise.

2006-11-10  Jakub Jelinek  <jakub@redhat.com>

	* string/strxfrm_l.c (STRXFRM): Fix trailing \1 optimization
	if N is one bigger than return value.
	* string/tst-strxfrm2.c (do_test): Also test strxfrm with l1 + 1
	and l1 last arguments, if buf is defined, verify the return value
	equals to strlen (buf) and verify no byte beyond passed length
	is modified.

2006-11-10  Ulrich Drepper  <drepper@redhat.com>

	* po/sv.po: Update from translation team.

2006-11-09  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/x86_64/sysconf.c (intel_check_word): Add
	noinline attribute.

2006-11-10  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/i386/sysconf.c (intel_check_word): Add
	noinline attribute.

	* sysdeps/gnu/siglist.c (__old_sys_siglist, __old_sys_sigabbrev):
	Use __new_sys_siglist instead of _sys_siglist_internal as
	second macro argument.
	(_old_sys_siglist): Use declare_symbol_alias macro instead of
	strong_alias.

2006-11-09  Ulrich Drepper  <drepper@redhat.com>

	[BZ #3493]
	* posix/unistd.h (sysconf): Remove const attribute.

	* sysdeps/posix/getaddrinfo.c (getaddrinfo): Fix test for
	temporary or deprecated addresses.
	Patch by Sridhar Samudrala <sri@us.ibm.com>.

	* string/Makefile (tests): Add tst-strxfrm2.
	* string/tst-strxfrm2.c: New file.

2006-10-09  Jakub Jelinek  <jakub@redhat.com>

	* elf/dl-debug.c (_dl_debug_initialize): Check r->r_map for 0
	rather than r->r_brk.

2006-11-08  Jakub Jelinek  <jakub@redhat.com>

	* string/strxfrm_l.c (STRXFRM): Do the trailing \1 removal
	optimization even if needed > n.

	* elf/dl-load.c (decompose_rpath): Return bool rather than void.
	If l->l_name is on inhibit_rpath list, set sps->dirs to -1 and
	return false, otherwise return true.
	(cache_rpath): Return decompose_rpath return value.

2006-11-07  Jakub Jelinek  <jakub@redhat.com>

	* include/libc-symbols.h (declare_symbol): Rename to...
	(declare_symbol_alias): ... this.  Add ORIGINAL argument, imply
	strong_alias (ORIGINAL, SYMBOL) in asm to make sure it preceedes
	.size directive.
	* sysdeps/gnu/errlist-compat.awk: Adjust for declare_symbol_alias
	changes.
	* sysdeps/gnu/siglist.c: Likewise.

2006-11-03  Steven Munroe  <sjmunroe@us.ibm.com>

	* sysdeps/powerpc/fpu/bits/mathinline.h
	[__LIBC_INTERNAL_MATH_INLINES]: Moved to ...
	* sysdeps/powerpc/fpu/math_private.h: ...here.  New file.

2006-11-05  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/i386/sysconf.c (intel_check_word):
	Update handling of cache descriptor 0x49 for new models.
	* sysdeps/unix/sysv/linux/x86_64/sysconf.c (intel_check_word):
	Likewise.

2006-11-02  Jakub Jelinek  <jakub@redhat.com>

	* malloc/memusage.c (dest): Reset not_me back to false after
	printing statistics.

2006-11-02  Ulrich Drepper  <drepper@redhat.com>

	* configure.in: Work around ld --help change and avoid -z relro
	test completely if the architecture doesn't care about security.

2006-11-01  Ulrich Drepper  <drepper@redhat.com>

	* po/sv.po: Update from translation team.

2006-10-31  Ulrich Drepper  <drepper@redhat.com>

	* stdlib/atexit.c (atexit): Don't mark as hidden when used to
	generate compatibility version.

2006-10-29  Ulrich Drepper  <drepper@redhat.com>

	* configure.in: Relax -z relro requirement a bit.

	* po/sv.po: Update from translation team.

2006-10-29  Jakub Jelinek  <jakub@redhat.com>

	* elf/dl-sym.c (do_sym): Use RTLD_SINGLE_THREAD_P.
	* elf/dl-runtime.c (_dl_fixup, _dl_profile_fixup): Likewise.
	* elf/dl-close.c (_dl_close_worker): Likewise.
	* elf/dl-open.c (_dl_open_worker): Likewise.
	* sysdeps/generic/sysdep-cancel.h (RTLD_SINGLE_THREAD_P): Define.

2006-10-27  Ulrich Drepper  <drepper@redhat.com>

	* configure.in: Require assembler support for visibility, compiler
	support for visibility and aliases, linker support for various -z
	options.
	* Makeconfig: Remove conditional code which now is unnecessary.
	* config.h.in: Likewise.
	* config.make.in: Likewise.
	* dlfcn/Makefile: Likewise.
	* elf/Makefile: Likewise.
	* elf/dl-load.c: Likewise.
	* elf/rtld.c: Likewise.
	* include/libc-symbols.h: Likewise.
	* include/stdio.h: Likewise.
	* io/Makefile: Likewise.
	* io/fstat.c: Likewise.
	* io/fstat64.c: Likewise.
	* io/fstatat.c: Likewise.
	* io/fstatat64.c: Likewise.
	* io/lstat.c: Likewise.
	* io/lstat64.c: Likewise.
	* io/mknod.c: Likewise.
	* io/mknodat.c: Likewise.
	* io/stat.c: Likewise.
	* io/stat64.c: Likewise.
	* libio/stdio.c: Likewise.
	* nscd/Makefile: Likewise.
	* stdlib/Makefile: Likewise.
	* stdlib/atexit.c: Likewise.
	* sysdeps/generic/ldsodefs.h: Likewise.
	* sysdeps/i386/dl-machine.h: Likewise.
	* sysdeps/i386/sysdep.h: Likewise.
	* sysdeps/i386/i686/memcmp.S: Likewise.
	* sysdeps/powerpc/powerpc32/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/i386/sigaction.c: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sigaction.c: Likewise.

	* Makerules: USE_TLS support is now default.
	* tls.make.c: Likewise.
	* csu/Versions: Likewise.
	* csu/libc-start.c: Likewise.
	* csu/libc-tls.c: Likewise.
	* csu/version.c: Likewise.
	* dlfcn/dlinfo.c: Likewise.
	* elf/dl-addr.c: Likewise.
	* elf/dl-cache.c: Likewise.
	* elf/dl-close.c: Likewise.
	* elf/dl-iteratephdr.c: Likewise.
	* elf/dl-load.c: Likewise.
	* elf/dl-lookup.c: Likewise.
	* elf/dl-object.c: Likewise.
	* elf/dl-open.c: Likewise.
	* elf/dl-reloc.c: Likewise.
	* elf/dl-support.c: Likewise.
	* elf/dl-sym.c: Likewise.
	* elf/dl-sysdep.c: Likewise.
	* elf/dl-tls.c: Likewise.
	* elf/ldconfig.c: Likewise.
	* elf/rtld.c: Likewise.
	* elf/tst-tls-dlinfo.c: Likewise.
	* elf/tst-tls1.c: Likewise.
	* elf/tst-tls10.h: Likewise.
	* elf/tst-tls14.c: Likewise.
	* elf/tst-tls2.c: Likewise.
	* elf/tst-tls3.c: Likewise.
	* elf/tst-tls4.c: Likewise.
	* elf/tst-tls5.c: Likewise.
	* elf/tst-tls6.c: Likewise.
	* elf/tst-tls7.c: Likewise.
	* elf/tst-tls8.c: Likewise.
	* elf/tst-tls9.c: Likewise.
	* elf/tst-tlsmod1.c: Likewise.
	* elf/tst-tlsmod13.c: Likewise.
	* elf/tst-tlsmod13a.c: Likewise.
	* elf/tst-tlsmod14a.c: Likewise.
	* elf/tst-tlsmod2.c: Likewise.
	* elf/tst-tlsmod3.c: Likewise.
	* elf/tst-tlsmod4.c: Likewise.
	* elf/tst-tlsmod5.c: Likewise.
	* elf/tst-tlsmod6.c: Likewise.
	* include/errno.h: Likewise.
	* include/link.h: Likewise.
	* include/tls.h: Likewise.
	* locale/global-locale.c: Likewise.
	* locale/localeinfo.h: Likewise.
	* malloc/arena.c: Likewise.
	* malloc/hooks.c: Likewise.
	* malloc/malloc.c: Likewise.
	* resolv/Versions: Likewise.
	* sysdeps/alpha/dl-machine.h: Likewise.
	* sysdeps/alpha/libc-tls.c: Likewise.
	* sysdeps/generic/ldsodefs.h: Likewise.
	* sysdeps/generic/tls.h: Likewise.
	* sysdeps/i386/dl-machine.h: Likewise.
	* sysdeps/ia64/dl-machine.h: Likewise.
	* sysdeps/ia64/libc-tls.c: Likewise.
	* sysdeps/mach/hurd/fork.c: Likewise.
	* sysdeps/mach/hurd/i386/tls.h: Likewise.
	* sysdeps/powerpc/powerpc32/dl-machine.c: Likwise.
	* sysdeps/powerpc/powerpc32/dl-machine.h: Likewise.
	* sysdeps/powerpc/powerpc64/dl-machine.h: Likewise.
	* sysdeps/s390/libc-tls.c: Likewise.
	* sysdeps/s390/s390-32/dl-machine.h: Likewise.
	* sysdeps/s390/s390-64/dl-machine.h: Likewise.
	* sysdeps/sh/dl-machine.h: Likewise.
	* sysdeps/sparc/sparc32/dl-machine.h: Likewise.
	* sysdeps/sparc/sparc64/dl-machine.h: Likewise.
	* sysdeps/x86_64/dl-machine.h: Likewise.

	* elf/dl-close.c (_dl_close_worker): Renamed from _dl_close and
	split out locking and parameter checking.
	(_dl_close): Call _dl_close_worker after locking and checking.
	* elf/dl-open.c (_dl_open): Call _dl_close_worker instead of
	_dl_close.
	* elf/Makefile: Add rules to build and run tst-thrlock.
	* elf/tst-thrlock.c:  New file.

	[BZ #3426]
	* stdlib/stdlib.h: Adjust comment for canonicalize_file_name to
	reality.

	[BZ #3429]
	* elf/dl-open.c (dl_open_worker): Keep holding dl_load_lock until
	we are sure we do not need it anymore for _dl_close.  Also move
	the asserts inside the lock region.
	Patch mostly by Suzuki <suzuki@in.ibm.com>.

2006-10-27  Jakub Jelinek  <jakub@redhat.com>

	* elf/dl-lookup.c (_dl_debug_bindings): Remove unused symbol_scope
	argument.
	(_dl_lookup_symbol_x): Adjust caller.

	* sysdeps/generic/ldsodefs.h (struct link_namespaces): Remove
	_ns_global_scope.
	* elf/rtld.c (dl_main): Don't initialize _ns_global_scope.

	* elf/dl-libc.c: Revert l_scope name changes.
	* elf/dl-load.c: Likewise.
	* elf/dl-object.c: Likewise.
	* elf/rtld.c: Likewise.
	* elf/dl-close.c (_dl_close): Likewise.
	* elf/dl-open.c (dl_open_worker): Likewise.  If not SINGLE_THREAD_P,
	always use __rtld_mrlock_{change,done}.  Always free old scope list
	here if not l_scope_mem.
	* elf/dl-runtime.c (_dl_fixup, _dl_profile_fixup): Revert l_scope name
	change.  Never free scope list here.  Just __rtld_mrlock_lock before
	the lookup and __rtld_mrlock_unlock it after the lookup.
	* elf/dl-sym.c: Likewise.
	* include/link.h (struct r_scoperec): Remove.
	(struct link_map): Replace l_scoperec with l_scope, l_scoperec_mem
	with l_scope_mem and l_scoperec_lock with l_scope_lock.

2006-10-25  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/gnu/netinet/tcp.h: Define TCP_CONGESTION.

2006-10-18  Ulrich Drepper  <drepper@redhat.com>

	* configure.in: Disable building profile libraries by default.

2006-10-17  Jakub Jelinek  <jakub@redhat.com>

	* sunrpc/xdr_mem.c (xdrmem_setpos): Don't compare addresses
	as signed longs, check for x_base + pos overflow.
	* sunrpc/Makefile (tests): Add tst-xdrmem2.
	* sunrpc/tst-xdrmem2.c: New test.

2006-10-18  Ulrich Drepper  <drepper@redhat.com>

	* elf/dl-lookup.c (_dl_lookup_symbol_x): Add warning to
	_dl_lookup_symbol_x code.

2006-10-17  Jakub Jelinek  <jakub@redhat.com>

	* elf/dl-runtime.c: Include sysdep-cancel.h.
	(_dl_fixup, _dl_profile_fixup): Use __rtld_mrlock_* and
	scoperec->nusers only if !SINGLE_THREAD_P.  Use atomic_*
	instead of catomic_* macros.
	* elf/dl-sym.c: Include sysdep-cancel.h.
	(do_sym): Use __rtld_mrlock_* and scoperec->nusers only
	if !SINGLE_THREAD_P.  Use atomic_* instead of catomic_* macros.
	* elf/dl-close.c: Include sysdep-cancel.h.
	(_dl_close): Use __rtld_mrlock_* and scoperec->nusers only
	if !SINGLE_THREAD_P.  Use atomic_* instead of catomic_* macros.
	* elf/dl-open.c: Include sysdep-cancel.h.
	(dl_open_worker): Use __rtld_mrlock_* and scoperec->nusers only
	if !SINGLE_THREAD_P.  Use atomic_* instead of catomic_* macros.

2006-10-17  Jakub Jelinek  <jakub@redhat.com>

	[BZ #3313]
	* malloc/malloc.c (malloc_consolidate): Set maxfb to address of last
	fastbin rather than end of fastbin array.

2006-10-18  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/i386/i486/bits/atomic.h (catomic_decrement): Use correct
	body macro.
	* sysdeps/x86_64/bits/atomic.h
	(__arch_c_compare_and_exchange_val_64_acq): Add missing casts.
	(catomic_decrement): Use correct body macro.

2006-10-17  Jakub Jelinek  <jakub@redhat.com>

	* include/atomic.h: Add a unique prefix to all local variables
	in macros.
	* csu/tst-atomic.c (do_test): Test also catomic_* macros.

2006-10-16  Ulrich Drepper  <drepper@redhat.com>

	[BZ #3369]
	* sysdeps/posix/getaddrinfo.c (rfc3484_sort): Fix typos in rules 4
	and 7.

2006-10-14  Ulrich Drepper  <drepper@redhat.com>

	* resolv/arpa/nameser.h: Document that ns_t_a6 is deprecated.

2006-10-13  Ulrich Drepper  <drepper@redhat.com>

	[BZ #3313]
	* malloc/malloc.c (malloc_consolidate): Don't use get_fast_max to
	determine highest fast bin to consolidate, always look into all of
	them.
	(do_check_malloc_state): Only require for empty bins for large
	sizes in main arena.

	* libio/stdio.h: Add more __wur attributes.

	* elf/dl-minimal.c (realloc): Optimize last patch.

2006-10-12  Richard Sandiford  <richard@codesourcery.com>

	[BZ #3352]
	* elf/dl-minimal.c (realloc): Let malloc() return a new pointer,
	and use memcpy() if it does.

2006-11-12  Andreas Jaeger  <aj@suse.de>

	[BZ #2510]
	* manual/search.texi (Hash Search Function): Clarify.
	(Array Search Function): Clarify.

2006-11-12  Joseph Myers  <joseph@codesourcery.com>

	[BZ #2830]
	* math/atest-exp.c (main): Cast hex value to mp_limb_t before
	shifting.
	* math/atest-exp2.c (read_mpn_hex): Likewise.
	* math/atest-sincos.c (main): Likewise.

2006-10-11  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/syscalls.list: Add epoll_pwait.
	* sysdeps/unix/sysv/linux/sys/epoll.h: Declare epoll_pwait.
	* sysdeps/unix/sysv/linux/Versions (libc): Add epoll_pwait for
	version GLIBC_2.6.
	* Versions.def: Add GLIBC_2.6 for libc.

	* sysdeps/unix/sysv/linux/i386/sysdep.h (DOARGS_6): Fix offset.

	* sysdeps/i386/i486/bits/atomic.h: Add catomic_* support.

2006-10-11  Jakub Jelinek  <jakub@redhat.com>

	* malloc/malloc.c (_int_malloc): Remove unused any_larger variable.

	* nis/nis_defaults.c (__nis_default_access): Don't call getenv twice.

	* nis/nis_subr.c (nis_getnames): Use __secure_getenv instead of getenv.
	* sysdeps/generic/unsecvars.h: Add NIS_PATH.

2006-10-11  Ulrich Drepper  <drepper@redhat.com>

	* include/atomic.c: Define catomic_* operations.
	* sysdeps/x86_64/bits/atomic.h: Likewise.  Fix a few minor problems.
	* stdlib/cxa_finalize.c: Use catomic_* operations instead of atomic_*.
	* malloc/memusage.c: Likewise.
	* gmon/mcount.c: Likewise.
	* elf/dl-close.c: Likewise.
	* elf/dl-open.c: Likewise.
	* elf/dl-profile.c: Likewise.
	* elf/dl-sym.c: Likewise.
	* elf/dl-runtime.c: Likewise.
	* elf/dl-fptr.c: Likewise.
	* resolv/res_libc.c: Likewise.

2006-10-10  Ulrich Drepper  <drepper@redhat.com>

	* nis/nis_subr.c (nis_getnames): Add trailing dot to NIS_PATH
	components which lack them.

	* nis/nis_subr.c (nis_getnames): Make sure that we always return
	at least one entry consisting of the parameter concatenated with
	the domain.

2006-10-10  Roland McGrath  <roland@frob.com>

	* sysdeps/mach/hurd/utimes.c: Use a union to avoid an improper cast.
	* sysdeps/mach/hurd/futimes.c: Likewise.
	* sysdeps/mach/hurd/lutimes.c: Likewise.

2006-10-09  Ulrich Drepper  <drepper@redhat.com>
	    Jakub Jelinek  <jakub@redhat.com>

	Implement reference counting of scope records.
	* elf/dl-close.c (_dl_close): Remove all scopes from removed objects
	from the list in objects which remain.  Always allocate new scope
	record.
	* elf/dl-open.c (dl_open_worker): When growing array for scopes,
	don't resize, allocate a new one.
	* elf/dl-runtime.c: Update reference counters before using a scope
	array.
	* elf/dl-sym.c: Likewise.
	* elf/dl-libc.c: Adjust for l_scope name change.
	* elf/dl-load.c: Likewise.
	* elf/dl-object.c: Likewise.
	* elf/rtld.c: Likewise.
	* include/link.h: Include <rtld-lowlevel.h>.  Define struct
	r_scoperec.  Replace r_scope with pointer to r_scoperec structure.
	Add l_scoperec_lock.
	* sysdeps/generic/ldsodefs.h: Include <rtld-lowlevel.h>.
	* sysdeps/generic/rtld-lowlevel.h: New file.

	* include/atomic.h: Rename atomic_and to atomic_and_val and
	atomic_or to atomic_or_val.  Define new macros atomic_and and
	atomic_or which do not return values.
	* sysdeps/x86_64/bits/atomic.h: Define atomic_and and atomic_or.
	Various cleanups.
	* sysdeps/i386/i486/bits/atomic.h: Likewise.

	* po/sv.po: Update from translation team.

2006-10-07  Ulrich Drepper  <drepper@redhat.com>

	* Versions.def: Add GLIBC_2.6 to libpthread.

	* include/shlib-compat.h (SHLIB_COMPAT): Expand parameters before use.
	(versioned_symbol): Likewise.
	(compat_symbol): Likewise.

	* po/tr.po: Update from translation team.

2006-10-06  Ulrich Drepper  <drepper@redhat.com>

	* nis/Banner: Removed.  It's been integral part forever and the
	author info is incomplete anyway.
	* libio/Banner: Likewise.

	* nis/nis_table.c (nis_list): If __follow_path fails in the new
	code, make sure the nis_freeresult call doesn't crash and that the
	result is reported correctly.

2006-09-27  Jakub Jelinek  <jakub@redhat.com>

	* nis/nis_table.c (nis_list): Handle FOLLOW_PATH | ALL_RESULTS
	when callback is NULL.

	* nis/Versions (libnss_nisplus): Add
	_nss_nisplus_initgroups_dyn@@GLIBC_PRIVATE.
	* nis/Makefile (libnss_nisplus-routines): Add nisplus-initgroups.
	* nis/nss_nisplus/nisplus-grp.c (tablename_val, tablename_len,
	_nss_create_tablename): Rename to...
	(grp_tablename_val, grp_tablename_len, _nss_grp_create_tablename):
	... these.  No longer static.
	(internal_setgrent): Adjust users.
	(_nss_nisplus_getgrnam_r, _nss_nisplus_getgrgid_r): Likewise.
	Don't use locking around _nss_grp_create_tablename call.
	* nis/nss_nisplus/nisplus-initgroups.c: New file.

2006-10-06  Ulrich Drepper  <drepper@redhat.com>

	* version.h (VERSION): Bump to 2.5.90 for new development tree.

2006-10-06  Andreas Jaeger  <aj@suse.de>

	* include/features.h (__GLIBC_MINOR__): It's glibc 2.5 now.

2006-10-06  Ulrich Drepper  <drepper@redhat.com>

	* po/pl.po: Update from translation team.

	* nscd/nscd.c (main): Fix typo in message.
	Patch by Jakub Bogsz <qboosh@pld-linux.org>.

2006-10-02  Jakub Jelinek  <jakub@redhat.com>

	[BZ #3291]
	* sysdeps/unix/sysv/linux/sparc/sparc64/pause.c: Include
	errno.h, signal.h, unistd.h and sysdep-cancel.h.
	(__sigprocmask): Define.

2006-10-02  Ulrich Drepper  <drepper@redhat.com>

	* elf/rtld.c (dl_main): Don't use prelinking if LD_DYNAMIC_WEAK is
	used.

2006-10-02  Jakub Jelinek  <jakub@redhat.com>

	* nscd/mem.c (mempool_alloc): Round array size to 16 bytes
	in oldtotal and newtotal calculation.
	* nscd/nscd-client.h (struct mapped_database): Add datasize
	field.
	* nscd/nscd_helper.c (get_mapping): Initialize datasize field.
	(__nscd_get_map_ref): Get a new mapping even if mapping's data_size
	increased.
	(__nscd_cache_search): Add checks to make sure we never reference
	data beyond the current mapping.

2006-10-02  Dmitry V. Levin  <ldv@altlinux.org>

	* sysdeps/posix/getaddrinfo.c (match_prefix): Make mask and val
	variables const to avoid compiler warnings.

	* io/fts.c (fts_close): Remove redundant checks.
	(fts_build): Likewise.
	(fts_palloc): Likewise.

	* manual/message.texi (Advanced gettext functions,
	Using gettextized software): Fix typos.

2006-09-30  Ulrich Drepper  <drepper@redhat.com>

	* posix/glob.c (glob_in_dir): Add some comments and asserts to
	explain why there are no leaks.

2006-09-29  Ulrich Drepper  <drepper@redhat.com>

	* libio/wmemstream.c: Include <wchar.h>.
	* libio/bug-wmemstream1.c: Likewise.
	* libio/tst-wmemstream1.c: Likewise.
	* libio/tst-wmemstream2.c: Likewise.

	* version.h (RELEASE): Bump to 2.5.
	* README: Regenerated.

	* locale/iso-3166.def: Add Aaland Islands and Montenegro.

	[BZ #3273]
	* nscd/nscd_initgroups.c (__nscd_getgrouplist): It is OK to have
	found no group members.
	Patch by Petr Baudis.

2006-09-29  Jakub Jelinek  <jakub@redhat.com>

	* elf/rtld.c (_dl_start_final): If not USE___THREAD, don't
	assert bootstrap_map.l_tls_modid is zero.
	(_dl_start): Initialize bootstrap_map.l_tls_modid to 0
	if USE___THREAD.

2006-09-27  Ulrich Drepper  <drepper@redhat.com>

	* libio/stdio.h: Move open_wmemstream prototype to ...
	* wcsmbs/wchar.h: ... here.

2006-09-25  Jakub Jelinek  <jakub@redhat.com>

	[BZ #3252]
	* sysdeps/unix/sysv/linux/powerpc/fchownat.c (fchownat): Handle only
	fchownat syscall and __ASSUME_LCHOWN_SYSCALL case inline, call
	__{,l}chown to handle the rest.
	* sysdeps/unix/sysv/linux/i386/fchownat.c (fchownat): Handle only
	fchownat syscall and __ASSUME_32BITUIDS case inline, call
	__{,l}chown to handle the rest.
	* sysdeps/unix/sysv/linux/sparc/sparc32/fchownat.c: Include
	i386/fchownat.c.
	* sysdeps/unix/sysv/linux/s390/s390-32/fchownat.c: Likewise.
	* sysdeps/unix/sysv/linux/sh/fchownat.c: Likewise.

	[BZ #3253]
	* posix/glob.c (glob_in_dir): Don't alloca one struct globlink at a
	time, rather allocate increasingly bigger arrays of pointers, if
	possible with alloca, if too large with malloc.

2006-09-24  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/powerpc/fpu/libm-test-ulps: Updated.

	* sysdeps/ieee754/ldbl-128/s_lrintl.c (__lrintl): Fix 2 typos.

2006-09-24  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/posix/getaddrinfo.c (rfc3484_sort): Implement rule 4,
	home addresses.
	* sysdeps/unix/sysv/linux/check_pf.c (make_request): Recognize
	IFA_F_HOMEADDRESS flag for interfaces.
	* include/ifaddrs.h (struct in6addrinfo): Define
	in6ai_homeaddress.

2006-09-21  Jakub Jelinek  <jakub@redhat.com>

	[BZ #3225]
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h (PTR_MANGLE3,
	PTR_DEMANGLE3): Define.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h (PTR_MANGLE3,
	PTR_DEMANGLE3): Likewise.
	* sysdeps/powerpc/powerpc32/__longjmp-common.S (__longjmp): Use them.
	* sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S (__longjmp):
	Likewise.
	* sysdeps/powerpc/powerpc64/__longjmp-common.S (__longjmp): Likewise.

2006-09-20  Jakub Jelinek  <jakub@redhat.com>

	* po/libc.pot: Regenerated.
	* po/be.po: Updated.
	* po/ca.po: Likewise.
	* po/cs.po: Likewise.
	* po/da.po: Likewise.
	* po/de.po: Likewise.
	* po/el.po: Likewise.
	* po/en_GB.po: Likewise.
	* po/es.po: Likewise.
	* po/fi.po: Likewise.
	* po/fr.po: Likewise.
	* po/gl.po: Likewise.
	* po/hr.po: Likewise.
	* po/hu.po: Likewise.
	* po/ja.po: Likewise.
	* po/ko.po: Likewise.
	* po/nb.po: Likewise.
	* po/nl.po: Likewise.
	* po/pl.po: Likewise.
	* po/pt_BR.po: Likewise.
	* po/ru.po: Likewise.
	* po/rw.po: Likewise.
	* po/sk.po: Likewise.
	* po/sv.po: Likewise.
	* po/tr.po: Likewise.
	* po/zh_CN.po: Likewise.
	* po/zh_TW.po: Likewise.

	[BZ #3137]
	* iconv/iconv_prog.c (main): Fix spelling in error message.
	* iconv/iconvconfig.c (main): Likewise.
	* locale/programs/ld-collate.c (handle_ellipsis): Likewise.
	* locale/programs/ld-ctype.c (charclass_symbolic_ellipsis): Likewise.
	* locale/programs/localedef.c (main): Likewise.
	* locale/programs/repertoire.c (repertoire_read): Likewise.
	* timezone/zdump.c (main): Likewise.
	* nscd/connections.c (handle_request): Fix spelling in log message.
	Patch by Malcolm Parsons <malcolm.parsons@gmail.com>.

2006-09-20  Ulrich Drepper  <drepper@redhat.com>

	* inet/inet6_option.c: Also emit linker warnings for the RFC 2292
	interfaces.

2006-09-20  Andreas Jaeger  <aj@suse.de>

	* math/libm-test.inc (lrint_test_upward): Fix typo.

2006-06-17  Joseph S. Myers  <joseph@codesourcery.com>

	[BZ #2592]
	* math/libm-test.inc (lrint_test_tonearest): New function.
	(lrint_test_towardzero): New function.
	(lrint_test_downward): New function.
	(lrint_test_upward): New function.
	(main): Run these new tests.
	* sysdeps/ieee754/dbl-64/s_llrint.c (__llrint): Correct rounding
	of values near to 0.
	(two52): Use double not long double.
	* sysdeps/ieee754/dbl-64/s_lrint.c (__lrint): Likewise.
	* sysdeps/ieee754/flt-32/s_llrintf.c (__llrintf): Likewise.
	(two23): Use float not double.
	* sysdeps/ieee754/flt-32/s_lrintf.c (__lrintf): Likewise.
	(two23): Use float not double.
	* sysdeps/ieee754/ldbl-128/s_llrintl.c (__llrintl): Likewise.
	* sysdeps/ieee754/ldbl-128/s_lrintl.c (__lrintl): Likewise.
	* sysdeps/ieee754/ldbl-96/s_llrintl.c (__llrintl): Likewise.
	* sysdeps/ieee754/ldbl-96/s_lrintl.c (__lrintl): Likewise.

2006-09-20  Martin Schwidefsky  <schwidefsky@de.ibm.com>

	* sysdeps/unix/sysv/linux/s390/s390-32/makecontext.c (__makecontext):
	Cast sp to unsigned long to avoid compiler warning.
	Use __makecontext_ret function instead of a trampoline on the stack.
	(__makecontext_ret): New function.
	* sysdeps/unix/sysv/linux/s390/s390-64/makecontext.c: Likewise.

2006-09-19  Jakub Jelinek  <jakub@redhat.com>

	* elf/dl-cache.c (HWCAP_CHECK): If _DL_PLATFORMS_COUNT, but
	platform == -1, reject any libs with non-zero _DL_HWCAP_PLATFORM
	bits.

2006-09-19  Ulrich Drepper  <drepper@redhat.com>

	* elf/dl-close.c (_dl_close): If dependency is not unloaded make
	sure no reference to the unloaded map's search list remains in the
	dependency's scope.

2006-09-16  Jakub Jelinek  <jakub@redhat.com>

	* elf/Makefile: Add rules to build and run unload7 test.
	* elf/unload7.c: New test.
	* elf/unload7mod1.c: New file.
	* elf/unload7mod2.c: New file.

2006-09-18  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/sys/ptrace.h (PT_GETEVENTMSG): Fix pasto.
	* sysdeps/unix/sysv/linux/s390/sys/ptrace.h (PTRACE_SETOPTIONS,
	PTRACE_GETEVENTMSG, PTRACE_GETSIGINFO, PTRACE_SETSIGINFO): Define.
	* sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h (PTRACE_SETOPTIONS,
	PTRACE_GETEVENTMSG, PTRACE_GETSIGINFO, PTRACE_SETSIGINFO): Likewise.
	* sysdeps/unix/sysv/linux/sparc/sys/ptrace.h (PTRACE_SETOPTIONS,
	PTRACE_GETEVENTMSG, PTRACE_GETSIGINFO, PTRACE_SETSIGINFO): Likewise.
	* sysdeps/unix/sysv/linux/ia64/sys/ptrace.h (PTRACE_SETOPTIONS,
	PTRACE_GETEVENTMSG): Likewise.
	(PTRACE_GETSIGINFO, PTRACE_SETSIGINFO): Change to the arch independent
	values.

2006-09-17  Mike Frysinger  <vapier@gentoo.org>

	* sysdeps/unix/sysv/linux/sys/ptrace.h (PTRACE_SETOPTIONS,
	PTRACE_GETEVENTMSG, PTRACE_GETSIGINFO, PTRACE_SETSIGINFO): Define.
	* sysdeps/unix/sysv/linux/ptrace.c (ptrace): Check PTRACE_SETOPTIONS,
	PTRACE_GETEVENTMSG, PTRACE_GETSIGINFO and PTRACE_SETSIGINFO.

2006-09-16  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/powerpc/powerpc32/register-dump.h (register_dump): Don't
	write '\0' to the fd.
	* sysdeps/mach/hurd/powerpc/register-dump.h (register_dump): Likewise.
	* sysdeps/powerpc/powerpc64/register-dump.h (register_dump): Likewise.
	Change regs to unsigned long pointer from unsigned int, fix fscr
	offset.

2006-09-14  Jakub Jelinek  <jakub@redhat.com>

	* io/Makefile (CFLAGS-fstatat.c): Set.
	(CFLAGS-fstatat64.c): Likewise.
	(CFLAGS-mknodat.c): Likewise.

	* sysdeps/ieee754/ldbl-128ibm/s_llrintl.c: Comment fixes.
	* sysdeps/ieee754/ldbl-128ibm/s_llroundl.c: Likewise.
	* sysdeps/ieee754/ldbl-128ibm/s_lrintl.c: Rewritten.
	* sysdeps/ieee754/ldbl-128ibm/s_lroundl.c: Rewritten.

2006-09-14  Jakub Jelinek  <jakub@redhat.com>
	    Steven Munroe  <sjmunroe@us.ibm.com>

	* sysdeps/powerpc/dl-procinfo.c (_dl_powerpc_cap_flags): Add 4 new cap
	names to the beginning.  Rename "cell" to "cellbe".
	(_dl_powerpc_platforms): New.
	* sysdeps/powerpc/dl-procinfo.h (_DL_HWCAP_FIRST): Decrease.
	(HWCAP_IMPORTANT): Remove power{4,5,5+} and cell.
	(_DL_PLATFORMS_COUNT, _DL_FIRST_PLATFORM): Define.
	(_DL_HWCAP_PLATFORM): Define to new mask.
	(_dl_platform_string, _dl_string_platform): New functions.
	* sysdeps/powerpc/sysdep.h (PPC_FEATURE_BOOKE, PPC_FEATURE_SMT,
	PPC_FEATURE_ICACHE_SNOOP, PPC_FEATURE_ARCH_2_05): Define.

2006-09-12  Jakub Jelinek  <jakub@redhat.com>

	[BZ #2526]
	* README.libm: Fix a thinko in sqrt algorithm description.

	[BZ #3143]
	* manual/string.texi (argz_delete): Fix prototype.
	Patch by <alpt@freaknet.org>.

2006-08-26  Joseph Myers  <joseph@codesourcery.com>

	[BZ #3138]
	* io/test-lfs.c (do_prepare): Give name_len type size_t.
	* io/tst-fcntl.c (do_prepare): Likewise.
	* posix/tst-exec.c (do_prepare): Likewise.
	* posix/tst-preadwrite.c (do_prepare): Likewise.
	* posix/tst-spawn.c (do_prepare): Likewise.
	* posix/tst-truncate.c (do_prepare): Likewise.
	* rt/tst-aio.c (do_prepare): Likewise.
	* rt/tst-aio64.c (do_prepare): Likewise.
	* stdlib/test-canon2.c (do_prepare): Give test_dir_len type
	size_t.

2006-09-09  Ulrich Drepper  <drepper@redhat.com>

	[BZ #2821]
	* time/mktime.c (guess_time_tm): Fix overflow detection.
	* time/Makefile (tests): Add bug-mktime1.
	* time/bug-mktime1.c: New file.

	[BZ #3189, #3188]
	* misc/sys/mman.h (remap_file_pages): Make available for _GNU_SOURCE.
	(mremap): Likewise.

2006-09-07  Jakub Jelinek  <jakub@redhat.com>

	[BZ #1006]
	* sysdeps/sparc/sparc64/dl-machine.h (elf_machine_rela):
	Ensure relocation doesn't clobber any bits outside of the
	immediate field for R_SPARC_TLS_LE_HIX22, R_SPARC_WDISP30,
	R_SPARC_HI22 and R_SPARC_H44.

	[BZ #2775]
	* malloc/malloc.c (sYSMALLOc): Only call grow_heap if
	(long) (MINSIZE + nb - old_size) is positive.

	* malloc/arena.c (grow_heap): When growing bail even if new_size
	is negative.

	[BZ #3155]
	* sysdeps/powerpc/powerpc32/fpu/s_lrint.S (__lrint): Don't access
	stack below r1.

2006-09-06  Jakub Jelinek  <jakub@redhat.com>

	* posix/regex_internal.c (re_string_reconstruct): Handle
	offset < pstr->valid_raw_len && pstr->offsets_needed case.
	Ensure no bytes read before raw_mbs array.  Pass a saved copy of
	pstr->valid_len - 1 rather than pstr->valid_raw_len - 1 to
	re_string_context_at.
	* posix/Makefile: Add rules to build and run bug-regex26 test.
	* posix/bug-regex26.c: New test.

	* locale/programs/ld-collate.c (collate_read): Goto sym_equiv_free
	rather than col_sym_free.  Move seqp declaration earlier.

	* resolv/gai_suspend.c (gai_suspend): Make sure result is initialized.

2006-09-05  Jakub Jelinek  <jakub@redhat.com>

	* nscd/initgrcache.c (addinitgroupsX): Move any_success
	decl before first goto out.

2006-09-04  Jakub Jelinek  <jakub@redhat.com>

	* Makerules (shlib.lds): If have-hash-style, put .hash section
	at the end of the RO segment.

2006-09-04  Ulrich Drepper  <drepper@redhat.com>

	* elf/do-lookup.h (do_lookup_x): Initialize symidx in case the new
	style hash table format is used.

2006-09-04  Jakub Jelinek  <jakub@redhat.com>

	* resolv/res_mkquery.c (res_nmkquery): Set hp->id to statp->id after
	randomization rather than before.
	* resolv/res_init.c (res_randomid): Don't call gettimeofday here.

2006-08-31  Jakub Jelinek  <jakub@redhat.com>

	* dlfcn/Makefile (LDLIBS-bug-atexit3-lib.so): Add ld.so.

	* malloc/malloc.c (_int_malloc): Use full list insert and not
	shortcut which assumes the list is empty for large requests
	too.

	* elf/tst-addr1.c (do_test): Allow i.dli_sname "_IO_printf".

2006-08-30  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/alpha/bits/fcntl.h (splice): Add offin
	and offout arguments to the prototype.
	* sysdeps/unix/sysv/linux/s390/bits/fcntl.h (splice): Likewise.
	* sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h (splice): Likewise.
	* sysdeps/unix/sysv/linux/sparc/bits/fcntl.h (splice): Likewise.
	* sysdeps/unix/sysv/linux/sh/bits/fcntl.h (splice): Likewise.
	* sysdeps/unix/sysv/linux/i386/bits/fcntl.h (splice): Likewise.
	* sysdeps/unix/sysv/linux/ia64/bits/fcntl.h (splice): Likewise.
	* sysdeps/unix/sysv/linux/x86_64/bits/fcntl.h (splice): Likewise.
	* sysdeps/unix/sysv/linux/syscalls.list (splice): Adjust args string.

2006-08-28  Ulrich Drepper  <drepper@redhat.com>

	* elf/dl-load.c (_dl_init_paths): Expand DSTs.

	* elf/dl-open.c (dl_open_worker): Allow $LIB and $PLATFORM in
	dlopen parameters.

2006-08-28  Jakub Jelinek  <jakub@redhat.com>

	* inet/getnameinfo.c (getnameinfo): For AF_INET, check errno
	only if herrno is NETDB_INTERNAL.  Handle errors other than
	ERANGE outside of the loops, handle TRY_AGAIN.

	* locale/programs/ld-ctype.c (translit_flatten): Issue error
	if other's ctype category was missing.
	* locale/programs/ld-collate.c (collate_read): Return if
	copy_locale's collate category is missing.

2006-08-27  Ulrich Drepper  <drepper@redhat.com>

	[BZ #2684]
	* malloc/malloc.c (public_rEALLOc): Try harder by using other
	arenas if allocation failed.
	Patch mostly by Jan Edler <jan.edler@indexengines.com>.

2006-08-26  Ulrich Drepper  <drepper@redhat.com>

	* malloc/malloc.c (bin_at): Rewrite to be more clear and to not
	waste bins[0..1].
	(malloc_state): Reduce bins size by 2.
	(_int_malloc): Fix test for large enough buffer for early termination.
	When no unsorted block matches perfectly and an exiting block has
	to be split, use full list insert and not shortcut which assumes
	the list is empty.

	* locale/programs/ld-ctype.c (ctype_read): Better patch for read
	failure.

2006-08-24  Ulrich Drepper  <drepper@redhat.com>

	* locale/programs/ld-ctype.c (ctype_read): If CTYPE is NULL, don't
	do anything.

	* sysdeps/generic/ldsodefs.h (DL_ADDR_SYM_MATCH): For undefined
	symbol require exact match (these are PLTs).
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/ldsodefs.h
	(_dl_ppc64_addr_sym_match): Likewise.

	[BZ #2683]
	* elf/dl-addr.c (_dl_addr): Don't ignore all undefined symbols.
	If symbol has a value use it.
	* elf/tst-dladdr1.c: New file.
	* elf/Makefile: Add rules to build and run tst-addr1.

2006-08-24  Jakub Jelinek  <jakub@redhat.com>

	* malloc/malloc.c (sYSMALLOc): Avoid infinite loop if MMAP
	keeps failing and heap growth or new heap creation isn't
	successful either.
	* malloc/tst-malloc.c (main): Add new tests.

2006-08-24  Ulrich Drepper  <drepper@redhat.com>

	[BZ #2734]
	* sysdeps/i386/bits/byteswap.h (__bswap_32): Use same conditions
	as in the x86-64 code to use bswap.

2006-05-21  Joseph S. Myers  <joseph@codesourcery.com>

	[BZ #2680]
	* posix/unistd.h (getlogin_r): Condition on __USE_POSIX199506, not
	__USE_UNIX98.
	* posix/bits/unistd.h: Likewise.

2006-05-15  Mike Frysinger  <vapier@gentoo.org>

	[BZ #2751]
	* string/strchr.c: Add cast to avoid warning.

2006-08-21  Ulrich Drepper  <drepper@redhat.com>

	* malloc/malloc.c (DEFAULT_MMAP_THRESHOLD_MAX): For 32-bit
	platforms define as 512K.  For 64-bit platforms as 32MB.  The lower
	limit is needed to avoid the exploding of the address space
	requirement for secondary heaps.
	* malloc/arena.c (HEAP_MAX_SIZE): Define using
	DEFAULT_MMAP_THRESHOLD_MAX if it is defined.

2006-07-30  Joseph S. Myers  <joseph@codesourcery.com>

	[BZ #3018]
	* Makerules (depfiles): Handle extra-test-objs the same as
	extra-objs.
	(common-mostlyclean): Likewise.
	* dlfcn/Makefile (extra-objs): Add modules to extra-test-objs
	instead.
	* elf/Makefile (extra-objs): Likewise.
	* stdlib/Makefile (extra-objs): Likewise.

2006-08-14  Eric Blake	<ebb9@byu.net>

	[BZ #3044]
	* misc/error.h: Assume C89 or better.
	* misc/error.c: Likewise.

2006-08-21  Ulrich Drepper  <drepper@redhat.com>

	[BZ #3040]
	* sysdeps/unix/sysv/linux/openat.c: Fix compilation if
	__ASSUME_ATFCTS is defined.

2006-08-19  Ulrich Drepper  <drepper@redhat.com>

	* malloc/malloc.c (_int_malloc): Limit number of unsorted blocks
	to sort in each call.

	* nis/nss_nis/nis-service.c (internal_nis_getservent_r): . If map
	is empty simply return and use next service.
	* nis/nss_nis/nis-rpc.c (internal_nis_getrpcent_r): Likewise.

	* locale/programs/charmap.c (charmap_read): Add new parameter.  It
	tells us when not finding a charmap file is an error.
	* locale/programs/charmap.h: Adjust charmap_read prototype.
	* iconv/iconv_prog.c (main): Tell charmap_read it's no error if we
	cannot find a charmap.
	* locale/programs/localedef.c (main): Adjust charmap_read call.

2006-08-15  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/sparc/sparc64/pause.c: Use
	sysdeps/posix/pause.c implementation instead.

2006-08-09  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/nice.c (nice): Transform EACCES errno from setpriority
	to EPERM.

2006-08-13  Andreas Schwab  <schwab@suse.de>

	* sysdeps/powerpc/powerpc32/dl-trampoline.S (_dl_runtime_resolve):
	Don't clobber caller's LRSAVE.
	(_dl_prof_resolve): Likewise.

2006-08-14  Ulrich Drepper  <drepper@redhat.com>

	[BZ #1996]
	* libio/memstream.c (open_memstream): Allocate initial buffer with
	calloc.
	* libio/wmemstream.c (open_wmemstream): Likewise.
	* libio/strops.c: Pretty printing.
	(_IO_str_overflow): Clear uninitialized part of the new buffer.
	(enlarge_userbuf): New function.
	(_IO_str_seekoff): Call it if seek position is larger than current
	buffer.
	* libio/wstrops.c: Likewise.
	* libio/vasprintf.c: Add comment as to why we do not have to use
	calloc instead of malloc to allocate initial buffer.
	* libio/Makefile (tests): Add bug-memstream1 and bug-wmemstream1.
	* libio/bug-memstream1.c: New file.
	* libio/bug-wmemstream1.c: New file.

2006-08-13  Ulrich Drepper  <drepper@redhat.com>

	* libio/wstrops.c: Remove dead macro definitions and comments.
	* libio/strops.c: Likewise.

	[BZ #2764]
	* login/utmpname.c (__utmpname): Remove unnecessary test.

2006-06-08  Joseph Myers  <jsm28@gcc.gnu.org>

	[BZ #2832]
	* math/gen-libm-test.pl (clean_up_number): Do not remove trailing
	0s from integers.

2006-08-13  Ulrich Drepper  <drepper@redhat.com>

	[BZ #2987]
	* sysdeps/unix/sysv/linux/clock_settime.c: Add code to use syscall
	for CPU clocks.
	* sysdeps/unix/clock_settime.c: Add support for platform-specific
	setting of CPU clocks.

2006-06-23  Paul Eggert  <eggert@cs.ucla.edu>

	[BZ #2841]
	* sysdeps/generic/stdint.h (UINT8_C, UINT16_C): Don't append 'U',
	since C99 requires the result to promote to 'int' when uint_least8_t
	and uint_least16_t promote to 'int'.

2006-08-12  Ulrich Drepper  <drepper@redhat.com>

	[BZ #3013]
	* locale/programs/ld-ctype.c (ctype_output): Adjust alignments, fix
	lenght of one output field, correct bitmask creation.
	* locale/programs/ld-time.c: Add alignment.

	[BZ #2997]
	* misc/error.c: Add space between program name and message if file
	name is missing.

2006-08-03  Eric Blake	<ebb9@byu.net>

	[BZ #2998]
	* misc/error.c (error_tail) [_LIBC]: Avoid invalid free.

2006-08-09  Ulrich Drepper  <drepper@redhat.com>

	* malloc/memusagestat.c: Silence warnings.

	* malloc/malloc.c: Dynamically size mmap treshold if the program
	frees mmaped blocks.
	Patch by Valerie Henson and Arjan van de Ven.

2006-08-08  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/ia64/bits/fcntl.h (O_DIRECT): Protect with
	__USE_GNU.

	* stdlib/strtol_l.c (__strtol_ul_max_tab, __strtol_ul_rem_tab,
	__strtol_ull_max_tab, __strtol_ull_rem_tab): Declare.
	(DEF): Don't put the var into .gnu.linkonce.r.* section.
	Only provide var definitions in strtol_l (or for *ull*
	in strtoll_l).

	* stdio-common/bug16.c (tests): New array.
	(do_tests): Allow the first hexadecimal digit
	to be 1, 2, 4 or 8.  Do 3 additional tests.

	* sysdeps/s390/fpu/libm-test-ulps: Update.

	* sysdeps/unix/sysv/linux/s390/s390-32/fchownat.c (fchownat): Use
	fchownat syscall if available.
	* sysdeps/unix/sysv/linux/powerpc/fchownat.c (fchownat): Likewise.
	* sysdeps/unix/sysv/linux/sh/fchownat.c (fchownat): Likewise.
	* sysdeps/unix/sysv/linux/i386/fchownat.c (fchownat): Likewise.

2006-08-07  Ulrich Drepper  <drepper@redhat.com>

	* nis/nis_xdr.c: Avoid some function calls.

2006-08-07  Jakub Jelinek  <jakub@redhat.com>
	    Ulrich Drepper  <drepper@redhat.com>

	* nis/nis_call.c (rec_dirsearch) [case LOWER_NAME]: Don't take
	short cut if only one name component is stripped away.

2006-08-07  Ulrich Drepper  <drepper@redhat.com>

	* nis/nis_call.c: Minor cleanups throughout.
	(rec_dirsearch) [case HIGHER_NAME]: Correctly size ndomain array.
	(first_shoot): Add search_parent_first parameter.  Only if it is set
	search parent server first.
	If directory for table found through cold start cache is not the same
	as referenced in the cache, don't use it.
	(__nisfind_server): Take additional parameter.  Pass it on to
	first_shoot.
	(__prepare_niscall): Adjust __nisfind_server call.
	* nis/rpcsvc/nislib.h: Adjust __nisfind_server prototype.
	* nis/nis_table.c: Adjust __nisfind_server call.
	* nis/nis_lookup.c: Likewise.
	(nis_lookup): Don't loop endlessly if name is reduced to ".".

2006-08-03  Ulrich Drepper  <drepper@redhat.com>

	[BZ #2182]
	* math/s_cacosh.c: Return values from positive branch.
	* math/s_cacoshf.c: Likewise.
	* math/s_cacoshl.c: Likewise.

	[BZ #2883]
	* sysvipc/sys/msg.h: Change return value to ssize_t.
	* sysdeps/unix/sysv/linux/msgrcv.c: Likewise.
	* sysvipc/msgrcv.c: Likewise.
	* include/sys/msg.h: Likewise.

	* grp/initgroups.c (internal_getgrouplist): Remove unnecessary
	test introduced in patch for bz #661.
	(getgrouplist): Simplify code a bit.  Don't allocate one additional
	element for NEWGROUPS.

	[BZ #2908]
	* stdio-common/printf_fphex.c (__printf_fphex): When rounding up
	'f', use '1' as leading digit not '\1'.
	* stdio-common/Makefile (tests): Add bug16.
	* stdio-common/bug16.c: New file.

	[BZ #2914]
	* sysdeps/unix/sysv/linux/gethostid.c: Don't define OLD_HOSTIDFILE
	and don't try to open it.  The patch introducing the macro
	contained a bug and used the same file name as the new file
	instead of using /var/adm/hostid.  Nobody complaint so I'm taking
	this out completely.

	[BZ #2926]
	* assert/assert.h: Move cast to void inside ?: to quiet gcc.
	Patch by Jerry James <Jerry.James@usu.edu>.

	* rt/Makefile (tests): Add tst-clock2.
	* rt/tst-clock2.c: New file.

	[BZ #2978]
	* resolv/gai_notify.c (__gai_notify_only): Copy memory for thread
	function and its parameters and pass it to new thread.
	(__gai_notify): Add support for alternative waiting for completion.
	* resolv/gai_suspend.c (gai_suspend): Add support for alternative
	waiting for completion.
	* resolv/getaddrinfo_a.c: Likewise.
	* resolv/gai_misc.h (struct waitlist): Don't add cond if alternative
	waiting for completion is used.
	* resolv/gai_misc.c: Allow overwriting code to start helper thread.
	* resolv/gai_cancel.c: Include <gai_misc.h> not "gai_misc.h".
	* resolv/gai_error.c: Likewise.
	* resolv/gai_sigqueue.c: Likewise.

2006-08-02  Thomas Schwinge  <tschwinge@gnu.org>

	* hurd/getdport.c (__getdport): Don't return EBADF; instead set
	errno to EBADF and return MACH_PORT_NULL.

2006-06-23  Joseph Myers  <joseph@codesourcery.com>

	[BZ #2980]
	* posix/Makefile (CFLAGS-waitid.c): Add -fasynchronous-unwind-tables.

2006-08-02  Ulrich Drepper  <drepper@redhat.com>

	* elf/dl-addr.c (_dl_addr): If GNU-style hash tables are present,
	walk them instead of the symbol table.

2006-08-01  Ulrich Drepper  <drepper@redhat.com>

	[BZ #2098]
	* nscd/initgrcache.c (addinitgroupsX): Judge successful lookups by
	status of NSS calls, not the number of returned entries.

	* sysdeps/unix/sysv/linux/syscalls.list: Remove add_key,
	request_key, keyctl.

2006-07-31  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/dl-osinfo.h: Remove unnecessary include.

2006-07-16  Jeff Bailey  <jbailey@ubuntu.com>

	* elf/tst-auditmod1.c: Fix typo in #error.

2006-07-31  Ulrich Drepper  <drepper@redhat.com>

	* elf/tst-auditmod1.c: Remove code for unsupported architectures.

	* iconvdata/run-iconv-test.sh: Run cmp in C locale.

2006-07-20  Adam Nemet  <anemet@caviumnetworks.com>

	* stdlib/test-canon.c (do_test): Close fd before unlinking file so
	that the directory is empty even on non-POSIX filesystems.

2006-07-31  Ulrich Drepper  <drepper@redhat.com>

	* elf/dl-open.c (dl_open_worker): Add branch prediction.

	* nis/nss_compat/compat-grp.c: Avoid unnecessary setgrent calls into
	the backend NSS module.  If backend setgrent call failed, don't have
	internal_setgrent fail.  Just remember this until it is needed.
	* nis/nss_compat/compat-pwd.c: Likewise.
	* nis/nss_compat/compat-spwd.c: Likewise.

2006-07-30  Roland McGrath  <roland@redhat.com>

	* sysdeps/unix/sysv/linux/ia64/sigsuspend.c: File removed.
	* sysdeps/unix/sysv/linux/x86_64/sigsuspend.c: File removed.
	* sysdeps/unix/sysv/linux/s390/s390-64/sigsuspend.c: File removed.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sigsuspend.c: File removed.

	* sysdeps/unix/sysv/linux/not-cancel.h (pause_not_cancel): New macro.
	(nanosleep_not_cancel): New macro.
	(sigsuspend_not_cancel): new macro.
	* sysdeps/unix/sysv/linux/sigsuspend.c [__ASSUME_REALTIME_SIGNALS]
	(do_sigsuspend): Define as inline.
	(__sigsuspend): Always use do_sigsuspend.
	[! NO_CANCELLATION] (__sigsuspend_nocancel): New function.
	* include/signal.h: Declare __sigsuspend_nocancel.
	* sysdeps/posix/pause.c
	[! NO_CANCELLATION] (__pause_nocancel): New function.

	* include/unistd.h (__pause_nocancel): Add attribute_hidden.
	* include/time.h (__nanosleep_nocancel): Likewise.

2006-07-30  Ulrich Drepper  <drepper@redhat.com>

	* locale/programs/localedef.c (add_to_readlist): Rename local
	variables to avoid confusion.

	* locale/programs/charmap.c (charmap_read): Emit error message if
	charmap couldn't be found or read.

2006-07-28  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/kernel-features.h: Define
	__ASSUME_FUTEX_LOCK_PI.
	* include/time.h: Declare __nanosleep_nocancel.
	* include/unistd.h: Declare __pause_nocancel.

	* dlfcn/Makefile (LDLIBS-bug-atexit3-lib.so): Use this instead of
	LDFLAGS.  Add -lgcc_eh and libc_nonshared (again) to make sure we
	get the __stack_chk_fail_local definition when it's needed.

2006-07-26  Ulrich Drepper  <drepper@redhat.com>

	* dlfcn/Makefile: Add rules to build and run bug-atexit3.
	* dlfcn/bug-atexit3.c: New file.
	* dlfcn/bug-atexit3-lib.cc: New file.

	* dlfcn/dlmopen.c (dlmopen_doit): Don't allow RTLD_GLOBAL to be
	used when the namespace is not the base namespace.

2006-07-26  Gavin Romig-Koch  <gavin@redhat.com>

	* stdlib/cxa_atexit.c (__new_exitfn_called): New variable.
	(__new_exitfn): Bump it in every successful call.
	* stdlib/cxa_finalize.c (__cxa_finalize): If destructor registered
	more exit handlers, call them right away.
	* stdlib/exit.h: Declare __new_exitfn_called.

2006-07-25  Ulrich Drepper  <drepper@redhat.com>

	* stdlib/cxa_finalize.c (__cxa_finalize): Fix race condition when
	calling registered handler.

	* sysdeps/unix/sysv/linux/sparc/bits/fcntl.h: Fix comment.
	* sysdeps/unix/sysv/linux/ia64/bits/fcntl.h: Likewise.
	* sysdeps/unix/sysv/linux/sh/bits/fcntl.h: Likewise.
	* sysdeps/unix/sysv/linux/i386/bits/fcntl.h: Likewise.
	* sysdeps/unix/sysv/linux/s390/bits/fcntl.h: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/bits/fcntl.h: Likewise.
	* sysdeps/unix/sysv/linux/alpha/bits/fcntl.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h: Likewise.

2006-07-10  Ulrich Drepper  <drepper@redhat.com>

	* elf/dl-lookup.c (dl_new_hash): New functions.
	(_dl_lookup_symbol_x): Rename hash to old_hash and don't compute
	value here.  Compute new-style hash value.  Pass new hash value
	and reference to variable with the old value to do_lookup_x.
	(_dl_setup_hash): If DT_GNU_HASH is defined, use it and not
	old-style hash table.
	(_dl_debug_bindings): Pass new hash value and reference to variable
	with the old value to do_lookup_x.
	* elf/do-lookup.h (do_lookup_x): Accept additional parameter with
	new-style hash value and change old-style hash value parameter to
	be a reference.  Reoganize functions to determine whether
	new-style hash table is available.  Only fall back on old-style
	table.  If old-style hash value is needed, compute it here.
	* elf/dynamic-link.h (elf_get_dynamic_info): Relocate DT_GNU_HASH
	entry.
	* elf/elf.h: Define SHT_GNU_HASH, DT_GNU_HASH, DT_TLSDEC_PLT,
	DT_TLSDEC_GOT.  Adjust DT_ADDRNUM.
	* include/link.h (struct link_map): Add l_gnu_bitmask_idxbits,
	l_gnu_shift, l_gnu_bitmask, l_gnu_buckets and l_gnu_chain_zero.
	* Makeconfig: If linker supports --hash-style option add it to all
	linker command lines to build DSOs.
	* config.make.in: Define have-hash-style.
	* configure.in: Test whether linker supports --hash-style option.

	* elf/dl-misc.c (_dl_name_match_p): Make MAP parameter const.
	* sysdeps/generic/ldsodefs.h: Adjust prototype.

2006-06-27  Ulrich Drepper  <drepper@redhat.com>

	* elf/dl-load.c (open_path): Fix test to determine whether DSO is
	auditing.

	* elf/dl-load.c (_dl_map_object): Try harder to avoid looking at
	RPATH of main map twice.

2006-06-22  Ulrich Drepper  <drepper@redhat.com>

	* intl/dcigettext.c (DCIGETTEXT): If _nl_find_msg returns -1 don't
	look further, return original strings.
	(_nl_find_msg): Do not return found translation if the conversion
	failed.  Either signal the string is unusable or that something went
	wrong and the original should be used.

2006-06-21  Ulrich Drepper  <drepper@redhat.com>

	* string/_strerror.c (__strerror_r): Add __builtin_expect.

2006-06-14  Jakub Jelinek  <jakub@redhat.com>

	[BZ #2766]
	* misc/insremque.c (insque): Handle prev == NULL.
	* misc/Makefile (tests): Add tst-insremque.
	* misc/tst-insremque.c: New test.

2006-06-17  Ulrich Drepper  <drepper@redhat.com>

	[BZ #2792]
	* elf/dl-deps.c (expand_dst): Rename __cnt variable to not
	conflict with DL_DST_REQUIRED.

2006-06-16  Ulrich Drepper  <drepper@redhat.com>

	* nis/nis_subr.c (nis_getnames): Fix the implementation to better
	match what Solaris does.

2006-06-04  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/posix/spawni.c (__spawni): Use local_seteuid and
	local_setegid instead of seteuid and setegid.
	* sysdeps/generic/local-setxid.h: New file.
	* sysdeps/unix/sysv/linux/local-setxid.h: New file.

	* sysdeps/posix/spawni.c (__spawni): Use non-cancelable interfaces.

	* string/Makefile (tests): Add bug-envz1.
	* string/bug-envz1.c: New file.

2006-06-02  Jakub Jelinek  <jakub@redhat.com>

	* posix/regex_internal.c (re_string_skip_chars): If no character has
	been converted at all, set *last_wc to WEOF.  If mbrtowc failed, set wc
	to the byte which couldn't be converted.
	(re_string_reconstruct): Don't clear valid_raw_len before calling
	re_string_skip_chars.  If wc is WEOF after re_string_skip_chars, set
	tip_context using re_string_context_at.
	* posix/Makefile: Add rules to build and run bug-regex25 test.
	* posix/bug-regex25.c: New test.

2006-06-02  Ryan S. Arnold  <rsa@us.ibm.com>

	[BZ #2703]
	* string/envz.c (envz_strip): Correct erroneously reversed src
	and dest parameters to memmove() invocation.

2006-05-30  Jakub Jelinek  <jakub@redhat.com>

	* nscd/nscd.h (prune_cache): Add fd argument to prototype.
	* nscd/nscd.c (parse_opt): Read response from INVALIDATE request
	to make sure the database has been already invalidated.
	* nscd/cache.c (prune_cache): Add fd argument.  Write response to fd
	after the cache has been invalidated.  Use pthread_mutex_lock rather
	than pthread_mutex_trylock if fd != -1.
	* nscd/connections.c (invalidate_cache): Add fd argument, write
	response to fd if not calling prune_cache, pass fd to prune_cache.
	(handle_request): Adjust invalidate_cache caller.
	(nscd_run): Pass -1 as fd to prune_cache.

2006-05-30  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/posix/getaddrinfo.c (gaiconf_init): Initialize bits in
	the correct place.

2006-05-29  Ulrich Drepper  <drepper@redhat.com>

	* nscd/nscd.h (struct database_dyn): Add prunelock field.
	* nscd/cache.c (prune_cache): Take prunelock before starting the
	work.  Just return in case it is already taken.
	* nscd/connections.c (dbs): Initialize .prunelock.

2006-05-25  Ulrich Drepper  <drepper@redhat.com>

	* nis/nis_removemember.c (nis_removemember): Avoid unnecessary
	copying.  No need to allocate new array for group members.  Just
	move the pointers and update the size.

	* nis/nis_addmember.c (nis_addmember): Avoid unnecessary copying.
	Avoid memory leak in case realloc fails.  Simplification for
	better code generation.

	Avoid deprecation warning because of libc_hidden_proto for
	inet6_option_alloc.
	* inet/inet6_option.c (option_alloc): Renamed from
	inet6_option_alloc.  Made static.
	(inet6_option_alloc): Now a simple wrapper around option_alloc.
	(inet6_option_append): Call option_alloc.
	* include/netinet/in.h: Remove libc_hidden_proto for
	inet6_option_alloc.

	* nis/nis_callback.c (__nis_create_callback): Always call xdr_free
	for cleanup when cb!=NULL [Coverity CID 233].

2006-05-24  Ulrich Drepper  <drepper@redhat.com>

	[BZ #2693]
	* inet/Makefile (routines): Add inet6_opt and inet6_rth.
	* inet/Versions (libc, GLIBC_2.5): Add inet6_opt_init,
	inet6_opt_append, inet6_opt_finish, inet6_opt_set_val, inet6_opt_next,
	inet6_opt_find, inet6_opt_get_val, inet6_rth_space, inet6_rth_init,
	inet6_rth_add, inet6_rth_reverse, inet6_rth_segments,
	and inet6_rth_getaddr.
	* inet/netinet/ip6.h (struct ip6_rthdr0): Make ip6r0_addr a flexible
	array.
	* inet/netinet/in.h (struct ip6_mtuinfo): Define.
	Mark inet6_option_* interfaces as deprecated.
	Declare inet6_opt_init, inet6_opt_append, inet6_opt_finish,
	inet6_opt_set_val, inet6_opt_next, inet6_opt_find, inet6_opt_get_val,
	inet6_rth_space, inet6_rth_init, inet6_rth_add, inet6_rth_reverse,
	inet6_rth_segments, and inet6_rth_getaddr.
	* inet/inet6_opt.c: New file.
	* inet/inet6_rth.c: New file.

	* inet/netinet/icmp6.h: Pretty printing.

	[BZ #2683]
	* elf/dl-addr.c (_dl_addr): Don't match undefined references.

2006-05-23  Ulrich Drepper  <drepper@redhat.com>

	* nis/nis_lookup.c (nis_lookup): Use __prepare_niscall instead of
	doing it all here.  When server does not know the answer do not
	fail immediate, try parent first.

	* nis/nis_domain_of_r.c (nis_domain_of_r): Add missing buffer
	overflow test.

2006-05-20  Ulrich Drepper  <drepper@redhat.com>

	* nis/nis_call.c (__prepare_niscall): New function.  Split out
	from __do_niscall.
	* nis/nis_table.c (__create_ib_request): Renamed from create_ib_request
	and exported.
	(__follow_path): New function.  Split out from nis_list.
	* nis/nis_xdr.h: Add libnsl_hidden_proto for _xdr_ib_request and
	_xdr_nis_result.
	* nis/nis_xdr.c: Add libnsl_hidden_def for _xdr_ib_request and
	_xdr_nis_result.
	* nis/libnsl.h: Declare __prepare_niscall, __create_ib_request,
	and __follow_path.
	* nis/Versions: Export __prepare_niscall, __create_ib_request,
	__follow_path, __do_niscall3, _xdr_ib_request, and _xdr_nis_result
	from libnsl for version GLIBC_PRIVATE.
	* nis/nisplus-parser.h: Remove _nss_nisplus_parse_pwent_chk.
	Remove entry parameter from _nss_nisplus_parse_pwent and
	_nss_nisplus_parse_grent.
	* nis/nss_nisplus/nisplus-parser.c: Likewise.
	* nis/nss_nisplus/nisplus-pwd.c: Remove support for SETENT_BATCH_READ
	again.  Rewrite getpwent handling to not use nis_first_entry and
	nis_next_entry.  Roll out own niscall handling.
	* nis/nss_nisplus/nisplus-grp.c: Likewise.

	* sunrpc/xdr_rec.c: Fix typo in comment.

2006-05-19  Ulrich Drepper  <drepper@redhat.com>

	* nis/nis_call.c (__do_niscall3): Avoid code duplication in error
	handling.

	* nis/nis_callback.c (internal_nis_do_callback): Don't use malloc
	to allocate memory for my_pollfd.  Better initialization of
	cb_is_running.  Use TEMP_FAILURE_RETRY.

	* malloc/memusage.sh (memusageso): Add quotes.
	(memusagestat): Likewise.
	* debug/xtrace.sh (pcprofileso): Likewise.
	(pcprofiledump): Likewise.
	* debug/Makefile ($(objpfx)xtrace): Use $LIB in SLIBDIR
	replacement.
	* malloc/Makefile ($(objpfx)memusage): Likewise.

	* nis/nis_callback.c (__nis_create_callback): Calls to
	svcudp_bufcreate and svctcp_create can fail.  Free ->xprt if
	asprintf call fails.

	* sysdeps/unix/sysv/linux/ifaddrs.c (__netlink_sendreq): Make sure
	no uninitialized memory is passed to sendto.

2006-05-18  Ulrich Drepper  <drepper@redhat.com>

	* nis/nis_callback.c (__nis_create_callback): Use asprinf instead
	of snprintf+strdup.  Handle OOM.
	* nis/nis_callback.c (__nis_create_callback): Allocate cb and
	cb->serv together.  Remove now obsolete free calls.
	(__nis_destroy_callback): Remove now obsolete free call.

2006-05-18  David Woodhouse  <dwmw2@redhat.com>

	* sysdeps/posix/getaddrinfo.c: Add unique labels to the default
	RFC3484 precedence table for fec0::/10 and fc00::/7 (site-local
	and ULA respectively). Set precedence for IPv4 address to 10 as
	defined in RFC3484 for preferring IPv6.
	* posix/gai.conf: Update to match the new default tables.

2006-05-18  Jakub Jelinek  <jakub@redhat.com>

	* nis/nss_compat/compat-pwd.c (internal_setpwent): If nss_set*ent
	returned NSS_STATUS_UNAVAIL, still return NSS_STATUS_SUCCESS.
	* nis/nss_compat/compat-spwd.c (internal_setspent): Likewise.
	* nis/nss_compat/compat-grp.c (internal_setgrent): Likewise.

	* nis/nss_compat/compat-initgroups.c (nss_setgrent, nss_endgrent):
	Removed.
	(init_nss_interface): Remove initialization of these variables.

2006-05-18  Ulrich Drepper  <drepper@redhat.com>

	* nis/nis_call.c (rec_dirsearch): Little optimization: pull
	nis_free_directory forward to avoid duplication.

2006-05-17  Ulrich Drepper  <drepper@redhat.com>

	* nis/nis_call.c (rec_dirsearch): Handle __nis_finddirectory and
	rec_dirsearch returning NULL.
	(first_shoot): Handle __nis_finddirectory returning NULL.
	(__nisfind_server): Fix leak when rec_dirsearch returns NULL.

	* sysdeps/unix/sysv/linux/sys/inotify.h: Define IN_CLOSE, IN_MOVE,
	IN_ONLYDIR, IN_DONT_FOLLOW, and IN_MASK_ADD.

2006-05-17  Jakub Jelinek  <jakub@redhat.com>

	* sunrpc/key_call.c (getkeyserv_handle): Call auth_destroy if
	pid changed.

2006-05-15  Ulrich Drepper  <drepper@redhat.com>

	* include/rpc/pmap_prot.h: Mark all functions as hidden.

	* nscd/nscd_initgroups.c: Mark __gr_map_handle as hidden.
	* nscd/nscd_getgr_r.c: Likewise.

	* include/rpc/pmap_rmt.h: Mark all functions as hidden.

	* nscd/nscd_getai.c (__hst_map_handle): Mark as hidden.
	* nscd/nscd_gethst_r.c (__hst_map_handle): Likewise.

	* stdlib/longlong.h (__clz_tab): Mark as hidden.

	* iconv/gconv_int.h: Mark __gconv_lock as hidden.

	* include/rpc/key_prot.h: Mark all _internal functions as hidden.

	* include/rpc/auth.h: Mark xdr_des_block_internal and
	xdr_opaque_auth_internal as hidden.

	* sysdeps/unix/sysv/linux/getdents.c: Mark __have_no_getdents64 as
	hidden.

	* include/rpc/xdr.h: Mark all _internal functions as hidden.

	* misc/getusershell.c (okshells): Don't use static initializers,
	do it dynamically.

	* stdlib/fmtmsg.c (keywords): Change type of len element to
	uint32_t to not waste space on 64bit machines.

	* locale/setlocale.c: Change _nl_category_names into a string.
	Add new _nl_category_name_idxs.  Change all users.
	* locale/localeinfo.h: Adjust declaration of _nl_category_names.
	Declare _nl_category_name_idxs.
	* locale/findlocale.c: Adjust for _nl_category_names change.
	* locale/loadlocale.c: Likewise.
	* locale/newlocale.c: Likewise.
	* intl/dcigettext.c: Likewise.

	* iconv/gconv_conf.c (add_alias): Move actual alias handling to...
	(add_alias2): ...here.  New function.
	(__gconv_read_conf): Simplify builtin alias handling.
	(builtin_aliases): Convert to string to avoid relocations.
	* iconv/gconv_builtin.h: Add comment about correct formatting.

2006-05-15  Jakub Jelinek  <jakub@redhat.com>

	* resolv/res_debug.c (loc_ntoa): Make error const.

2006-05-14  Andreas Schwab  <schwab@suse.de>

	* math/complex.h [__LDBL_COMPAT]: Use __REDIRECT_NTH.

2006-05-12  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/sched_getaffinity.c: Include sys/param.h.
	(__sched_getaffinity_new): Don't crash if cpusetsize is smaller than
	sizeof (cpu_set_t).

2006-05-11  Ulrich Drepper  <drepper@redhat.com>

	* resolv/res_debug.c (loc_ntoa): Define error as array, not pointer.

	* include/arpa/nameser.h: Declare _ns_flagdata as hidden.

	* nis/yp_xdr.c: Add libnsl_hidden_def for xdr_ypresp_master.
	* include/rpcsvc/yp.h: Add libnsl_hidden_proto for xdr_ypresp_master.

	* nis/yp_xdr.c: Add libnsl_hidden_def for xdr_ypbind_resp.
	* include/rpcsvc/yp.h: Add libnsl_hidden_proto for xdr_ypbind_resp.

	* nis/nis_xdr.c: Add libnsl_hidden_def for xdr_cback_data.
	* include/rpcsvc/nis_callback.h: Add libnsl_hidden_proto for
	xdr_cback_data.

	* nis/ypupdate_xdr.c: Add libnsl_hidden_def for xdr_ypupdate_args.
	* include/rpcsvc/ypupd.h: Add libnsl_hidden_proto for
	xdr_ypupdate_args.

	* nis/yp_xdr.c: Add libnsl_hidden_def for xdr_ypresp_order.
	* include/rpcsvc/yp.h: Add libnsl_hidden_proto for xdr_ypresp_order.

	* nis/yp_xdr.c: Add libnsl_hidden_def for xdr_ypresp_maplist.
	* include/rpcsvc/yp.h: Add libnsl_hidden_proto for xdr_ypresp_maplist.

	* nis/nis_xdr.c: Add libnsl_hidden_def for xdr_obj_p.
	* include/rpcsvc/nis_callback.h: New file.

	* nis/yp_xdr.c: Add libnsl_hidden_def for xdr_ypresp_val.
	* include/rpcsvc/yp.h: Add libnsl_hidden_proto for xdr_ypresp_val.

	* nis/yp_xdr.c: Add libnsl_hidden_def for xdr_ypreq_nokey.
	* include/rpcsvc/yp.h: Add libnsl_hidden_proto for xdr_ypreq_nokey.

	* nis/yp_xdr.c: Add libnsl_hidden_def for xdr_ypmaplist.
	* include/rpcsvc/yp.h: Add libnsl_hidden_proto for xdr_ypmaplist.

	* nis/yp_xdr.c: Add libnsl_hidden_def for xdr_ypreq_nokey.
	* include/rpcsvc/yp.h: Add libnsl_hidden_proto for xdr_ypreq_nokey.

	* nis/ypupdate_xdr.c: Add libnsl_hidden_def for xdr_ypdelete_args.
	* include/rpcsvc/ypupd.h: Add libnsl_hidden_proto for
	xdr_ypdelete_args.

	* nis/nis_xdr.h: Mark all functions as hidden.  Remove
	__BEGIN_DECLS and __END_DECLS, the header is not installed.

	* nis/nis_error.c: Remove table of strings.  Use position
	independent mechanism.
	* nis/nis_error.h: New file.

2006-05-11  Jakub Jelinek  <jakub@redhat.com>

	* locale/programs/ld-time.c (time_finish): If wide era name or
	format aren't provided, set both wname and wformat to L"".

2006-05-10  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/tcgetattr.c (__tcgetattr): Only store
	results if the call was succesful.

	* nis/nss-nis.h: Mark __yperr2nss_tab and __yperr2nss_count as hidden.

	* nis/nss-nisplus.h: Mark __niserr2nss_tab and __niserr2nss_count
	as hidden.

2006-05-10  Jakub Jelinek  <jakub@redhat.com>

	* misc/sys/queue.h: Remove uses of all QUEUEDEBUG_* macros.

2006-05-10  Ulrich Drepper  <drepper@redhat.com>

	* posix/wordexp.c (parse_glob): No need to check ifs for NULL, the
	caller makes sure this is not the case.
	(wordexp): Simplify ifs_white creation.  [Coverity CID 231]

2006-05-09  Ulrich Drepper  <drepper@redhat.com>

	* posix/wordexp.c: Remove numerous NULL pointer tests before FREE
	calls.

	* io/ftw.c (open_dir_stream): Return right away if REALLOC fails.
	[Coverity CID 229, 230]

	* argp/argp-help.c (hol_entry_help): Handle STATE==NULL in ARG and
	DGETTEXT calls.
	(hol_help): Likewise.  [Coverity CID 226, 227]

	* string/argz-replace.c (__argz_replace): Unconditionally call
	free on SRC.  [Coverity CID 225]

	* nis/nis_creategroup.c (nis_creategroup): No need to duplicate
	the return value of __nis_default_owner and __nis_default_group,
	it has been especially allocated.  [Coverity CID 224]

	* nis/nis_defaults.c (searchXYX): New functions.  Used by both
	searchgroup and searchowner.  Significantly simplified.
	(__nis_default_owner): Remove duplication.  Do not locally copy the
	string before duplicating it.
	(__nis_default_group): Likewise.

	* nis/nis_lookup.c (nis_lookup): After calling nis_free_directory,
	we must clear the variable before calling __nisfind_server.

	* nis/nis_lookup.c (nis_lookup): Always free memory allocated with
	nis_getnames.  [Coverity CID 223]

	* locale/programs/locfile.c (locfile_read): Use alloca instead of
	xmalloc to allocate local repertoire name.  [Coverity CID 222]

	* iconv/iconv_charmap.c (use_to_charmap): No need to dynamically
	allocate memory for the input to add_bytes.  [Coverity CID 221]

	* posix/wordexp.c (w_addword): Free word if realloc fails and it
	was allocated here.  [Coverity CID 219, 220]

	* posix/getconf.c (print_all): Free confstr data after printing.
	[Coverity CID 218]

	* sysdeps/posix/getaddrinfo.c (gaih_inet): Free canon string if
	list allocation fails.  [Coverity CID 215]

	* nss/nsswitch.c (__nss_configure_lookup): Fix loop end condition.
	[Coverity CID 213]

	* argp/argp-help.c (hol_entry_cmp): Don't call canon_doc_option if
	string is NULL.  [Coverity CID 212]
	* argp/Makefile: Add rules to build and run bug-argp1.
	* argp/bug-argp1.c: New file.

	* io/ftw.c (ftw_dir): Use __rawmemchr instead of strchr to find
	end of string.
	* stdlib/canonicalize.c (__realpath): Likewise.

	* locale/programs/ld-time.c (time_finish): Don't dereference NULL
	pointer.  [Coverity CID 206]

	* elf/dl-dst.h (DL_DST_REQUIRED): Be prepared for missing link map
	in statically linked code.
	* elf/dl-load.c (_dl_dst_substitute): When replacing ORIGIN in
	statically built code, be prepared to have no link map.
	[Coverity CID 205]

	* argp/argp-help.c (fill_in_uparams): Handle STATE==NULL in
	dgettext calls. [Coverity CID 204]

	* argp/argp-help.c (struct uparams): Remove valid member.  Change
	the one user.
	(uparam_names): Reduce size.  Avoid relative relocations.
	Moved to read-only segment.
	(fill_in_uparams): Update for new layout.

	* sysdeps/unix/sysv/linux/ifaddrs.c (getifaddrs): Parameter can be
	assumed to always be != NULL. [Coverity CID 202]

	* argp/argp-help.c (hol_entry_help): Remove some dead code
	[Coverity CID 200].

	* nis/nss_nis/nis-service.c (_nss_nis_getservbyport_r): Optimize
	away a few more unconditional yperr2nss calls.
	(_nss_nis_getservbyname_r): Likewise.

2006-05-06  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/generic/ldsodefs.h: Remove support for non-core
	architectures.

	* sysdeps/unix/sysv/linux/check_pf.c (make_request): Make sure
	that unused memory passed to sendto is nevertheless initialized.

	[BZ #2499]
	* resolv/nss_dns/dns-canon.c (_nss_dns_getcanonname_r): Avoid
	possibly unaligned memory accesses.

	* include/arpa/nameser.h: Also optimize NS_PUT16 and NS_PUT32.
	* resolv/res_mkquery.c: Use NS_PUT16 and NS_PUT32 instead of __putshort
	and __putlong respectively.  Correct buffer overflow check for
	NS_NOTIFY_OP.

	* resolv/res_send.c (send_vc): Use ns_put16 instead of putshort.

	* resolv/res_send.c (res_queriesmatch): Fix typo in comment.
	(send_dg): Rewrite error handling to be more compact and avoid
	double recomputation of timeouts.  Pass MSG_NOSIGNAL to send.

	* include/arpa/nameser.h: Add optimizations for NS_GET16 and NS_GET32.

	* resolv/res_send.c (res_nameinquery): Use NS_GET16 directly
	instead of ns_get16.
	(res_queriesmatch): Likewise.  Minor optimization.

	[BZ #2499]
	* resolv/res_query.c (__libc_res_nquery): If answerp != NULL,
	__libc_res_nsend might reallocate the buffer for the answer.  In
	this case we have to reload the HP pointer.

2006-05-05  Ulrich Drepper  <drepper@redhat.com>

	* stdio-common/vfscanf.c (memory_error): Remove definition.  Add
	some branch prediction hints.

	* sysdeps/unix/sysv/linux/sparc/bits/fcntl.h: Define SPLICE_F_*.
	* sysdeps/unix/sysv/linux/ia64/bits/fcntl.h: Likewise.
	* sysdeps/unix/sysv/linux/sh/bits/fcntl.h: Likewise.
	* sysdeps/unix/sysv/linux/i386/bits/fcntl.h: Likewise.
	* sysdeps/unix/sysv/linux/s390/bits/fcntl.h: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/bits/fcntl.h: Likewise.
	* sysdeps/unix/sysv/linux/alpha/bits/fcntl.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h: Likewise.

2006-05-05  Martin Schwidefsky  <schwidefsky@de.ibm.com>

	* sysdeps/s390/s390-32/elf/start.S: Replace pc relative relocation
	by a GOT relocation to make Scrt1.o position independent.
	* sysdeps/s390/s390-64/elf/start.S: Likewise.

	* sysdeps/unix/sysv/linux/s390/s390-32/syscall.S: Add support for
	six system call parameters.
	* sysdeps/unix/sysv/linux/s390/s390-64/syscall.S: Likewise.

2006-05-05  Ulrich Drepper  <drepper@redhat.com>

	* sunrpc/svcauth_des.c (cache_init): Use calloc instead of
	malloc&bzero.

	* sunrpc/svc_udp.c (BZERO): Remove definition.
	(CALLOC): Define.
	(svc_enablecache): Use CALLOC instead of ALLOC&BZERO.

	* sunrpc/des_impl.c: Remove ALT_ECB support.  We never used it.
	(des_SPtrans): Use uint32_t type.
	(des_skb): Likewise.

	* sunrpc/xdr_ref.c (xdr_reference): Use calloc instead of malloc&bzero.

2006-05-05  Jakub Jelinek  <jakub@redhat.com>

	[BZ #2509]
	* stdio-common/tst-printf.sh: Adjust for tst-printf.c change even
	on 32-bit arches.

2006-05-05  Ulrich Drepper  <drepper@redhat.com>

	* locale/programs/ld-address.c (address_finish): Fix one more
	place where the iso639 array might be accessed beyond the limits.

2006-05-04  Ulrich Drepper  <drepper@redhat.com>

	* nis/nis_table.c (nis_list): Avoid clearing res twice before
	filling it for the first time.

	* nis/nis_table.c (get_tablepath): Renamed from __get_tablepath.
	Adjust all callers.
	Free res object content before returning.

	* sunrpc/xdr_array.c (xdr_array): Use calloc instead of malloc&bzero.

	* sunrpc/key_call.c (__rpc_thread_key_cleanup): Also free
	client->cl_auth.

	* sunrpc/rpc_thread.c (__rpc_thread_destroy): Don't skip entire
	cleanup for initial thread, just the free call on TVP.

	* nscd/gai.c (__getline): Define.


See ChangeLog.16 for earlier changes.
