[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[commits] r6785 - in /trunk: libc/ libc/elf/ libc/hurd/ libc/hurd/hurd/ libc/include/ libc/include/arpa/ libc/include/rpc/ libc/includ...



Author: joseph
Date: Tue Aug 19 10:24:09 2008
New Revision: 6785

Log:
Merge changes between r6509 and r6780 from /fsf/trunk.

Added:
    trunk/libc/io/dup3.c
      - copied unchanged from r6780, fsf/trunk/libc/io/dup3.c
    trunk/libc/io/pipe2.c
      - copied unchanged from r6780, fsf/trunk/libc/io/pipe2.c
    trunk/libc/libio/tst-popen1.c
      - copied unchanged from r6780, fsf/trunk/libc/libio/tst-popen1.c
    trunk/libc/resolv/ns_date.c
      - copied unchanged from r6780, fsf/trunk/libc/resolv/ns_date.c
    trunk/libc/socket/have_sock_cloexec.c
      - copied unchanged from r6780, fsf/trunk/libc/socket/have_sock_cloexec.c
    trunk/libc/socket/paccept.c
      - copied unchanged from r6780, fsf/trunk/libc/socket/paccept.c
    trunk/libc/stdio-common/tst-setvbuf1.c
      - copied unchanged from r6780, fsf/trunk/libc/stdio-common/tst-setvbuf1.c
    trunk/libc/stdio-common/tst-setvbuf1.expect
      - copied unchanged from r6780, fsf/trunk/libc/stdio-common/tst-setvbuf1.expect
    trunk/libc/sysdeps/unix/sysv/linux/alpha/sys/epoll.h
      - copied unchanged from r6780, fsf/trunk/libc/sysdeps/unix/sysv/linux/alpha/sys/epoll.h
    trunk/libc/sysdeps/unix/sysv/linux/alpha/sys/eventfd.h
      - copied unchanged from r6780, fsf/trunk/libc/sysdeps/unix/sysv/linux/alpha/sys/eventfd.h
    trunk/libc/sysdeps/unix/sysv/linux/alpha/sys/inotify.h
      - copied unchanged from r6780, fsf/trunk/libc/sysdeps/unix/sysv/linux/alpha/sys/inotify.h
    trunk/libc/sysdeps/unix/sysv/linux/alpha/sys/signalfd.h
      - copied unchanged from r6780, fsf/trunk/libc/sysdeps/unix/sysv/linux/alpha/sys/signalfd.h
    trunk/libc/sysdeps/unix/sysv/linux/alpha/sys/timerfd.h
      - copied unchanged from r6780, fsf/trunk/libc/sysdeps/unix/sysv/linux/alpha/sys/timerfd.h
    trunk/libc/sysdeps/unix/sysv/linux/i386/paccept.S
      - copied unchanged from r6780, fsf/trunk/libc/sysdeps/unix/sysv/linux/i386/paccept.S
    trunk/libc/sysdeps/unix/sysv/linux/paccept.c
      - copied unchanged from r6780, fsf/trunk/libc/sysdeps/unix/sysv/linux/paccept.c
    trunk/libc/sysdeps/unix/sysv/linux/s390/bits/utmp.h
      - copied unchanged from r6780, fsf/trunk/libc/sysdeps/unix/sysv/linux/s390/bits/utmp.h
    trunk/libc/sysdeps/unix/sysv/linux/s390/bits/utmpx.h
      - copied unchanged from r6780, fsf/trunk/libc/sysdeps/unix/sysv/linux/s390/bits/utmpx.h
    trunk/libc/sysdeps/unix/sysv/linux/s390/s390-32/getutent.c
      - copied unchanged from r6780, fsf/trunk/libc/sysdeps/unix/sysv/linux/s390/s390-32/getutent.c
    trunk/libc/sysdeps/unix/sysv/linux/s390/s390-32/getutent_r.c
      - copied unchanged from r6780, fsf/trunk/libc/sysdeps/unix/sysv/linux/s390/s390-32/getutent_r.c
    trunk/libc/sysdeps/unix/sysv/linux/s390/s390-32/getutid.c
      - copied unchanged from r6780, fsf/trunk/libc/sysdeps/unix/sysv/linux/s390/s390-32/getutid.c
    trunk/libc/sysdeps/unix/sysv/linux/s390/s390-32/getutid_r.c
      - copied unchanged from r6780, fsf/trunk/libc/sysdeps/unix/sysv/linux/s390/s390-32/getutid_r.c
    trunk/libc/sysdeps/unix/sysv/linux/s390/s390-32/getutline.c
      - copied unchanged from r6780, fsf/trunk/libc/sysdeps/unix/sysv/linux/s390/s390-32/getutline.c
    trunk/libc/sysdeps/unix/sysv/linux/s390/s390-32/getutline_r.c
      - copied unchanged from r6780, fsf/trunk/libc/sysdeps/unix/sysv/linux/s390/s390-32/getutline_r.c
    trunk/libc/sysdeps/unix/sysv/linux/s390/s390-32/getutmp.c
      - copied unchanged from r6780, fsf/trunk/libc/sysdeps/unix/sysv/linux/s390/s390-32/getutmp.c
    trunk/libc/sysdeps/unix/sysv/linux/s390/s390-32/getutxent.c
      - copied unchanged from r6780, fsf/trunk/libc/sysdeps/unix/sysv/linux/s390/s390-32/getutxent.c
    trunk/libc/sysdeps/unix/sysv/linux/s390/s390-32/getutxid.c
      - copied unchanged from r6780, fsf/trunk/libc/sysdeps/unix/sysv/linux/s390/s390-32/getutxid.c
    trunk/libc/sysdeps/unix/sysv/linux/s390/s390-32/getutxline.c
      - copied unchanged from r6780, fsf/trunk/libc/sysdeps/unix/sysv/linux/s390/s390-32/getutxline.c
    trunk/libc/sysdeps/unix/sysv/linux/s390/s390-32/login.c
      - copied unchanged from r6780, fsf/trunk/libc/sysdeps/unix/sysv/linux/s390/s390-32/login.c
    trunk/libc/sysdeps/unix/sysv/linux/s390/s390-32/login32.c
      - copied unchanged from r6780, fsf/trunk/libc/sysdeps/unix/sysv/linux/s390/s390-32/login32.c
    trunk/libc/sysdeps/unix/sysv/linux/s390/s390-32/pututxline.c
      - copied unchanged from r6780, fsf/trunk/libc/sysdeps/unix/sysv/linux/s390/s390-32/pututxline.c
    trunk/libc/sysdeps/unix/sysv/linux/s390/s390-32/updwtmp.c
      - copied unchanged from r6780, fsf/trunk/libc/sysdeps/unix/sysv/linux/s390/s390-32/updwtmp.c
    trunk/libc/sysdeps/unix/sysv/linux/s390/s390-32/updwtmpx.c
      - copied unchanged from r6780, fsf/trunk/libc/sysdeps/unix/sysv/linux/s390/s390-32/updwtmpx.c
    trunk/libc/sysdeps/unix/sysv/linux/s390/s390-32/utmp-compat.h
      - copied unchanged from r6780, fsf/trunk/libc/sysdeps/unix/sysv/linux/s390/s390-32/utmp-compat.h
    trunk/libc/sysdeps/unix/sysv/linux/s390/s390-32/utmp-convert.h
      - copied unchanged from r6780, fsf/trunk/libc/sysdeps/unix/sysv/linux/s390/s390-32/utmp-convert.h
    trunk/libc/sysdeps/unix/sysv/linux/s390/s390-32/utmp32.c
      - copied unchanged from r6780, fsf/trunk/libc/sysdeps/unix/sysv/linux/s390/s390-32/utmp32.c
    trunk/libc/sysdeps/unix/sysv/linux/s390/s390-32/utmp32.h
      - copied unchanged from r6780, fsf/trunk/libc/sysdeps/unix/sysv/linux/s390/s390-32/utmp32.h
    trunk/libc/sysdeps/unix/sysv/linux/s390/s390-32/utmpx-convert.h
      - copied unchanged from r6780, fsf/trunk/libc/sysdeps/unix/sysv/linux/s390/s390-32/utmpx-convert.h
    trunk/libc/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.c
      - copied unchanged from r6780, fsf/trunk/libc/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.c
    trunk/libc/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.h
      - copied unchanged from r6780, fsf/trunk/libc/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.h
    trunk/libc/sysdeps/unix/sysv/linux/sparc/bits/socket.h
      - copied unchanged from r6780, fsf/trunk/libc/sysdeps/unix/sysv/linux/sparc/bits/socket.h
    trunk/libc/sysdeps/unix/sysv/linux/sparc/sys/epoll.h
      - copied unchanged from r6780, fsf/trunk/libc/sysdeps/unix/sysv/linux/sparc/sys/epoll.h
    trunk/libc/sysdeps/unix/sysv/linux/sparc/sys/eventfd.h
      - copied unchanged from r6780, fsf/trunk/libc/sysdeps/unix/sysv/linux/sparc/sys/eventfd.h
    trunk/libc/sysdeps/unix/sysv/linux/sparc/sys/inotify.h
      - copied unchanged from r6780, fsf/trunk/libc/sysdeps/unix/sysv/linux/sparc/sys/inotify.h
    trunk/libc/sysdeps/unix/sysv/linux/sparc/sys/signalfd.h
      - copied unchanged from r6780, fsf/trunk/libc/sysdeps/unix/sysv/linux/sparc/sys/signalfd.h
    trunk/libc/sysdeps/unix/sysv/linux/sparc/sys/timerfd.h
      - copied unchanged from r6780, fsf/trunk/libc/sysdeps/unix/sysv/linux/sparc/sys/timerfd.h
    trunk/ports/data/
      - copied from r6780, fsf/trunk/ports/data/
    trunk/ports/data/c++-types-powerpce500v1-linux-gnu.data
      - copied unchanged from r6780, trunk/ports/c++-types-powerpce500v1-linux-gnu.data
    trunk/ports/data/c++-types-powerpce500v2-linux-gnu.data
      - copied unchanged from r6780, trunk/ports/c++-types-powerpce500v2-linux-gnu.data
    trunk/ports/data/localplt-powerpce500v1-linux-gnu.data
      - copied unchanged from r6780, trunk/ports/localplt-powerpce500v1-linux-gnu.data
    trunk/ports/data/localplt-powerpce500v2-linux-gnu.data
      - copied unchanged from r6780, trunk/ports/localplt-powerpce500v2-linux-gnu.data
    trunk/ports/sysdeps/unix/sysv/linux/hppa/Makefile
      - copied unchanged from r6780, fsf/trunk/ports/sysdeps/unix/sysv/linux/hppa/Makefile
    trunk/ports/sysdeps/unix/sysv/linux/hppa/getcontext.S
      - copied unchanged from r6780, fsf/trunk/ports/sysdeps/unix/sysv/linux/hppa/getcontext.S
    trunk/ports/sysdeps/unix/sysv/linux/hppa/makecontext.c
      - copied unchanged from r6780, fsf/trunk/ports/sysdeps/unix/sysv/linux/hppa/makecontext.c
    trunk/ports/sysdeps/unix/sysv/linux/hppa/setcontext.S
      - copied unchanged from r6780, fsf/trunk/ports/sysdeps/unix/sysv/linux/hppa/setcontext.S
    trunk/ports/sysdeps/unix/sysv/linux/hppa/swapcontext.c
      - copied unchanged from r6780, fsf/trunk/ports/sysdeps/unix/sysv/linux/hppa/swapcontext.c
    trunk/ports/sysdeps/unix/sysv/linux/hppa/ucontext_i.sym
      - copied unchanged from r6780, fsf/trunk/ports/sysdeps/unix/sysv/linux/hppa/ucontext_i.sym
    trunk/ports/sysdeps/unix/sysv/linux/mips/sys/epoll.h
      - copied unchanged from r6780, fsf/trunk/ports/sysdeps/unix/sysv/linux/mips/sys/epoll.h
    trunk/ports/sysdeps/unix/sysv/linux/mips/sys/eventfd.h
      - copied unchanged from r6780, fsf/trunk/ports/sysdeps/unix/sysv/linux/mips/sys/eventfd.h
    trunk/ports/sysdeps/unix/sysv/linux/mips/sys/inotify.h
      - copied unchanged from r6780, fsf/trunk/ports/sysdeps/unix/sysv/linux/mips/sys/inotify.h
    trunk/ports/sysdeps/unix/sysv/linux/mips/sys/signalfd.h
      - copied unchanged from r6780, fsf/trunk/ports/sysdeps/unix/sysv/linux/mips/sys/signalfd.h
    trunk/ports/sysdeps/unix/sysv/linux/mips/sys/timerfd.h
      - copied unchanged from r6780, fsf/trunk/ports/sysdeps/unix/sysv/linux/mips/sys/timerfd.h
Removed:
    trunk/libc/sysdeps/unix/sysv/linux/powerpc/bits/mathinline.h
    trunk/ports/c++-types-arm-linux-gnueabi.data
    trunk/ports/c++-types-powerpce500v1-linux-gnu.data
    trunk/ports/c++-types-powerpce500v2-linux-gnu.data
    trunk/ports/c++-types-powerpcsoft-linux-gnu.data
    trunk/ports/localplt-arm-linux-gnueabi.data
    trunk/ports/localplt-powerpce500v1-linux-gnu.data
    trunk/ports/localplt-powerpce500v2-linux-gnu.data
    trunk/ports/localplt-powerpcsoft-linux-gnu.data
Modified:
    trunk/libc/ChangeLog
    trunk/libc/Makeconfig
    trunk/libc/Makefile
    trunk/libc/NEWS
    trunk/libc/Versions.def
    trunk/libc/config.make.in
    trunk/libc/configure
    trunk/libc/configure.in
    trunk/libc/elf/Makefile
    trunk/libc/elf/dl-load.c
    trunk/libc/elf/dl-object.c
    trunk/libc/elf/dl-support.c
    trunk/libc/elf/dl-sysdep.c
    trunk/libc/elf/elf.h
    trunk/libc/hurd/fd-read.c
    trunk/libc/hurd/hurd/signal.h
    trunk/libc/include/arpa/nameser.h
    trunk/libc/include/resolv.h
    trunk/libc/include/rpc/clnt.h
    trunk/libc/include/sys/socket.h
    trunk/libc/include/unistd.h
    trunk/libc/io/Makefile
    trunk/libc/io/Versions
    trunk/libc/io/ftw.c
    trunk/libc/libio/Makefile
    trunk/libc/libio/fileops.c
    trunk/libc/libio/fmemopen.c
    trunk/libc/libio/iopopen.c
    trunk/libc/libio/iosetvbuf.c
    trunk/libc/locale/setlocale.c
    trunk/libc/localedata/ChangeLog
    trunk/libc/localedata/charmaps/UTF-8
    trunk/libc/localedata/locales/iso14651_t1_common
    trunk/libc/login/utmp_file.c
    trunk/libc/malloc/hooks.c
    trunk/libc/malloc/mtrace.c
    trunk/libc/manual/arith.texi
    trunk/libc/manual/creature.texi
    trunk/libc/manual/filesys.texi
    trunk/libc/manual/math.texi
    trunk/libc/manual/memory.texi
    trunk/libc/manual/resource.texi
    trunk/libc/manual/syslog.texi
    trunk/libc/manual/time.texi
    trunk/libc/misc/syslog.c
    trunk/libc/nis/ypclnt.c
    trunk/libc/nptl/ChangeLog
    trunk/libc/nptl/allocatestack.c
    trunk/libc/nptl/sysdeps/powerpc/tcb-offsets.sym
    trunk/libc/nptl/sysdeps/unix/sysv/linux/mq_notify.c
    trunk/libc/nptl/sysdeps/x86_64/pthreaddef.h
    trunk/libc/nptl/tst-align2.c
    trunk/libc/nscd/Makefile
    trunk/libc/nscd/connections.c
    trunk/libc/nscd/nscd_helper.c
    trunk/libc/posix/unistd.h
    trunk/libc/posix/wordexp.c
    trunk/libc/resolv/Makefile
    trunk/libc/resolv/Versions
    trunk/libc/resolv/arpa/nameser.h
    trunk/libc/resolv/arpa/nameser_compat.h
    trunk/libc/resolv/gethnamaddr.c
    trunk/libc/resolv/ns_name.c
    trunk/libc/resolv/ns_netint.c
    trunk/libc/resolv/ns_parse.c
    trunk/libc/resolv/ns_print.c
    trunk/libc/resolv/ns_samedomain.c
    trunk/libc/resolv/ns_ttl.c
    trunk/libc/resolv/nss_dns/dns-canon.c
    trunk/libc/resolv/nss_dns/dns-host.c
    trunk/libc/resolv/nss_dns/dns-network.c
    trunk/libc/resolv/res_debug.c
    trunk/libc/resolv/res_mkquery.c
    trunk/libc/resolv/res_query.c
    trunk/libc/resolv/res_send.c
    trunk/libc/scripts/gen-as-const.awk
    trunk/libc/socket/Makefile
    trunk/libc/socket/Versions
    trunk/libc/socket/sys/socket.h
    trunk/libc/stdio-common/Makefile
    trunk/libc/stdio-common/_i18n_number.h
    trunk/libc/stdio-common/printf_fp.c
    trunk/libc/stdio-common/vfprintf.c
    trunk/libc/sunrpc/Versions
    trunk/libc/sunrpc/clnt_udp.c
    trunk/libc/sunrpc/key_call.c
    trunk/libc/sysdeps/generic/ldsodefs.h
    trunk/libc/sysdeps/i386/fpu/s_expm1l.S
    trunk/libc/sysdeps/i386/i686/memcmp.S
    trunk/libc/sysdeps/mach/hurd/bits/fcntl.h
    trunk/libc/sysdeps/mach/i386/machine-lock.h
    trunk/libc/sysdeps/posix/clock_getres.c
    trunk/libc/sysdeps/posix/getaddrinfo.c
    trunk/libc/sysdeps/powerpc/dl-procinfo.c
    trunk/libc/sysdeps/powerpc/dl-procinfo.h
    trunk/libc/sysdeps/powerpc/fpu/bits/mathinline.h
    trunk/libc/sysdeps/powerpc/powerpc32/dl-machine.c
    trunk/libc/sysdeps/powerpc/sysdep.h
    trunk/libc/sysdeps/sparc/Makefile
    trunk/libc/sysdeps/unix/syscalls.list
    trunk/libc/sysdeps/unix/sysv/linux/Versions
    trunk/libc/sysdeps/unix/sysv/linux/bits/in.h
    trunk/libc/sysdeps/unix/sysv/linux/bits/socket.h
    trunk/libc/sysdeps/unix/sysv/linux/clock_getres.c
    trunk/libc/sysdeps/unix/sysv/linux/dl-sysdep.h
    trunk/libc/sysdeps/unix/sysv/linux/eventfd.c
    trunk/libc/sysdeps/unix/sysv/linux/i386/bits/mman.h
    trunk/libc/sysdeps/unix/sysv/linux/ifaddrs.c
    trunk/libc/sysdeps/unix/sysv/linux/kernel-features.h
    trunk/libc/sysdeps/unix/sysv/linux/opensock.c
    trunk/libc/sysdeps/unix/sysv/linux/powerpc/bits/mman.h
    trunk/libc/sysdeps/unix/sysv/linux/s390/s390-32/Makefile
    trunk/libc/sysdeps/unix/sysv/linux/s390/s390-32/Versions
    trunk/libc/sysdeps/unix/sysv/linux/signalfd.c
    trunk/libc/sysdeps/unix/sysv/linux/socketcall.h
    trunk/libc/sysdeps/unix/sysv/linux/sys/epoll.h
    trunk/libc/sysdeps/unix/sysv/linux/sys/eventfd.h
    trunk/libc/sysdeps/unix/sysv/linux/sys/inotify.h
    trunk/libc/sysdeps/unix/sysv/linux/sys/signalfd.h
    trunk/libc/sysdeps/unix/sysv/linux/sys/timerfd.h
    trunk/libc/sysdeps/unix/sysv/linux/syscalls.list
    trunk/libc/sysdeps/unix/sysv/linux/x86_64/bits/mman.h
    trunk/libc/sysdeps/unix/sysv/linux/x86_64/sys/epoll.h
    trunk/libc/sysdeps/x86_64/fpu/s_expm1l.S
    trunk/libc/sysdeps/x86_64/memset.S
    trunk/ports/ChangeLog.arm
    trunk/ports/ChangeLog.hppa
    trunk/ports/ChangeLog.m68k
    trunk/ports/ChangeLog.mips
    trunk/ports/ChangeLog.powerpc
    trunk/ports/sysdeps/mips/fpu_control.h
    trunk/ports/sysdeps/powerpc/nofpu/feholdexcpt.c
    trunk/ports/sysdeps/unix/sysv/linux/mips/bits/socket.h

Modified: trunk/libc/ChangeLog
==============================================================================
--- trunk/libc/ChangeLog (original)
+++ trunk/libc/ChangeLog Tue Aug 19 10:24:09 2008
@@ -1,3 +1,532 @@
+2008-07-18  Daniel Jacobowitz  <dan@xxxxxxxxxxxxxxxx>
+
+	* Makefile (check-data): Check data directory in add-ons.
+	* elf/Makefile (check-data): Likewise.
+
+2008-08-18  Roland McGrath  <roland@xxxxxxxxxx>
+
+	* configure.in (--with-cpu): Check compiler support for -march/-mcpu.
+	* configure: Regenerated.
+	* config.make.in (cflags-cpu): New substituted variable.
+	(with-cpu): Variable removed.
+	* Makeconfig (+cflags): Use $(cflags-cpu), not $(with-cpu).
+
+2008-08-14  Ryan S. Arnold  <rsa@xxxxxxxxxx>
+
+	[BZ #6845]
+	* sysdeps/powerpc/fpu/bits/mathinline.h (__signbitl): Copy new
+	__signbitl definition and __LONG_DOUBLE_128__ guard from:
+	* sysdeps/unix/sysv/linux/powerpc/bits/mathinline.h: Remove as
+	redundant.  Functions which call floating point assembler operations
+	should go into a sysdeps powerpc/fpu directory.
+
+2008-08-15  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/x86_64/bits/mman.h: Define MAP_STACK.
+	* sysdeps/unix/sysv/linux/i386/bits/mman.h: Likewise.
+
+2008-08-14  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* sysdeps/x86_64/memset.S: Reduce size of tables for PIC.
+
+	* sysdeps/unix/sysv/linux/dl-origin.c (_dl_get_origin): Undo all
+	change related to AT_EXECFN.  We cannot use that string.
+	* sysdeps/generic/ldsodefs.h (struct rtld_global_ro): Remove
+	_dl_execfn member.
+	* elf/dl-support.c: Remove _dl_execfn variable.
+	(_dl_aux_init): Remove handling of AT_EXECFN.
+	* elf/dl-sysdep.c (_dl_sysdep_start): Remove handling of AT_EXECFN.
+	* elf/rtld.c (process_envvars): Remove use of __ASSUME_AT_EXECFN.
+
+2008-08-13  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	[BZ #6544]
+	* libio/fmemopen.c: Implement binary mode.  In this mode no NUL
+	byte gets added to writes and seeks from the end use the length of
+	the buffer and not the currently terminating NUL byte.
+
+	[BZ #6634]
+	* login/utmp_file.c (getutent_r_file): Take additional parameter.
+	Set to true if locking failed.
+	(getutid_r_file): Adjust caller.
+	(pututline_file): Likewise.  Return NULL in this case.
+	Patch mostly by halesh.s@xxxxxxxxxx
+
+2008-08-12  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	[BZ #6589]
+	* sysdeps/unix/sysv/linux/ifaddrs.c (struct sockaddr_ll_max):
+	Define.
+	(struct ifaddrs_storage): Use it instead of sockaddr_ll.
+
+2008-08-12  Ryan S. Arnold  <rsa@xxxxxxxxxx>
+
+	[BZ #6839]
+	* sysdeps/powerpc/powerpc32/dl-machine.c (CHECK_STATIC_TLS): Remove
+	macro since it is now available in elf/dynamic-link.h.
+
+2008-08-12  Roland McGrath  <roland@xxxxxxxx>
+
+	* hurd/hurd/signal.h (HURD_MSGPORT_RPC): Avoid -Wparenthesis triggers,
+	in case used outside of libc.
+	Reported by Samuel Thibault <samuel.thibault@xxxxxxxxxxxx>
+
+2008-08-11  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* resolv/res_mkquery.c (res_nmkquery): Call ns_name_compress
+	directly instead of going through dn_comp.
+
+2008-08-11  Aurelien Jarno  <aurel32@xxxxxxxxxx>
+
+	* sysdeps/mach/i386/machine-lock.h (__spin_unlock, __spin_try_lock):
+	Fix asm constraints.
+
+2008-08-07  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	[BZ #6790]
+	* sysdeps/unix/sysv/linux/bits/in.h (IP_PMTUDISC_PROBE): Define.
+	(IPV6_PMTUDISC_PROBE): Likewise.
+
+2008-08-07  Pete Eberlein  <eberlein@xxxxxxxxxx>
+
+	[BZ #6791]
+	* sysdeps/unix/sysv/linux/powerpc/bits/mman.h (PROT_SAO): Define.
+
+2008-08-01  Steven Munroe  <sjmunroe@xxxxxxxxxx>
+	    Carlos Eduardo Seo  <cseo@xxxxxxxxxxxxxxxxxx>
+
+	[BZ #6817]
+	* sysdeps/powerpc/dl-procinfo.c (_dl_powerpc_cap_flags):
+	Added the members 'vsx' and 'arch_2_06'.
+	(_dl_powerpc_platforms): Add the member 'power7'.
+	* sysdeps/powerpc/dl-procinfo.h: Modify _DL_HWCAP_FIRST
+	to reflect the changes required by VSX and ISA 2.06.
+	Modify _DL_PLATFORMS_COUNT to reflect the addition of
+	'power7'.
+	Defined PPC_PLATFORM_POWER7.
+	(_dl_string_platform): Add support for POWER7.
+	* sysdeps/powerpc/sysdep.h: Define bit masks for VSX
+	capability and ISA 2.06.
+
+2008-08-07  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	[BZ #6824]
+	* sysdeps/unix/sysv/linux/powerpc/bits/mathinline.h: Use correct
+	macro to detect use of 128 bit long double.
+	Patch by Ryan S. Arnold <rsa@xxxxxxxxxx>.
+
+2008-08-05  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* scripts/gen-as-const.awk: Use 32-bit values on 32-bit platforms.
+
+	[BZ #5794]
+	* sysdeps/i386/fpu/s_expm1l.S: Simply use exp implementation for large
+	parameters.
+	* sysdeps/x86_64/fpu/s_expm1l.S: Likewise.
+	Patch by Denys Vlasenko <dvlasenk@xxxxxxxxxx>.
+
+2008-08-03  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* nscd/connections.c (main_loop_poll): Pass a buffer which is
+	guaranteed to be large enough to read inotify event.  Ignore
+	EAGAIN error.  Better error message.  Add branch predicition.
+	(main_loop_epoll): Likewise.
+
+2008-08-02  Roland McGrath  <roland@xxxxxxxx>
+
+	* sysdeps/mach/i386/machine-lock.h (__spin_unlock, __spin_try_lock):
+	Add memory clobbers.
+
+2008-08-02  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* manual/arith.texi: Avoid @strong{Note:}.
+	* manual/creature.texi: Likewise.
+	* manual/filesys.texi: Likewise.
+	* manual/math.texi: Likewise.
+	* manual/memory.texi: Likewise.
+	* manual/resource.texi: Likewise.
+	* manual/syslog.texi: Likewise.
+	* manual/time.texi: Likewise.
+
+	* sysdeps/posix/clock_getres.c (hp_timing_getres): Remove inline
+	to prevent warning.
+
+2008-08-01  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/Versions: Fix changes due to old patch for
+	new epoll_create1 interface.
+	* sysdeps/unix/sysv/linux/syscalls.list: Likewise.
+	* sysdeps/unix/sysv/linux/sys/epoll.h: Likewise.
+	* sysdeps/unix/sysv/linux/x86_64/sys/epoll.h: Likewise.
+
+	* include/arpa/nameser.h (NS_GET16): Use const pointer.
+	(NS_GET32): Likewise.
+
+	* sysdeps/unix/sysv/linux/kernel-features.h: s390 has the new
+	syscalls, too.
+
+	* sysdeps/unix/sysv/linux/dl-origin.c (_dl_get_origin): We cannot
+	use the AT_EXECFN value if it is no absolute path.
+	* sysdeps/unix/sysv/linux/kernel-features.h: Never define
+	__ASSUME_AT_EXECFN.
+
+	* Versions.def: Add GLIBC_2.9 to libresolv.
+	* include/resolv.h: Remove hidden proto declarations for __ns_*
+	functions.  Add them for __dn_count_labels and __p_secstodate.
+	* include/arpa/nameser.h: Add a number of hidden proto declarations.
+	Define ns_msg_getflags macro here.
+	* resolv/res_debug.c: Add hidden definition for __dn_count_labels
+	and __p_secstodate.
+	* resolv/Versions: Export functions from <arpa/nameser.h> from
+	libresolv in version GLIBC_2.9.
+	* resolv/ns_name.c: Integrate changes from bind 9.5.0.  Add necessary
+	hidden definitions.
+	* resolv/ns_netint.c: Likewise.
+	* resolv/ns_parse.c: Likewise.
+	* resolv/ns_print.c: Likewise.
+	* resolv/ns_samedomain.c: Likewise.
+	* resolv/ns_ttl.c: Likewise.
+	* resolv/arpa/nameser_compat.h: Likewise.
+	* resolv/arpa/nameser.h: Likewise.  Remove macros which redirect
+	function calls.
+	* resolv/nss_dns/dns-canon.c (_nss_dns_getcanonname_r): Use __ns_get16
+	instead of ns_get16.
+	* resolv/nss_dns/dns-host.c (getanswer_r): Use __ns_get16 and
+	__ns_get32 instead of ns_get16 and ns_get32 respectively.
+	(gaih_getanswer_slice): Likewise.
+	* resolv/Makefile (libresolv-routines): Add ns_date.
+	* resolv/ns_date.c: New file.
+
+	* elf/Makefile (check-localplt.out): Also check libresolv and
+	libcrypt.
+
+2008-07-31  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/kernel-features.h: Define
+	__ASSUME_O_CLOEXEC.
+
+2008-07-30  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* sysdeps/posix/getaddrinfo.c (gaih_inet): Raise size of initial
+	buffer passed to NSS functions.
+
+	* nscd/connections.c (nscd_init): Typo in preprocessor directive.
+
+	* sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_PACCEPT):
+	Define.
+
+	* misc/syslog.c (openlog_internal): Fix compile problem.
+
+2008-07-28  Roland McGrath  <roland@xxxxxxxxxx>
+
+	* elf/dl-sysdep.c (_dl_show_auxv): Add AT_EXECFN to the table.
+
+2008-07-28  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* io/ftw.c (add_object): Remove inline to avoid warning.
+
+	* sysdeps/unix/sysv/linux/paccept.c: Fix compile problem.
+
+	* resolv/res_send.c (__libc_res_nsend): Take additional parameter.
+	Use it instead of locally defined resplen2 variable.
+	(res_nsend): Adjust for __libc_res_nsend interface change.
+	(send_vc): Initialize *resplen2 if necessary.  Read length of
+	package into an appropriately aligned variable.  Store converted length
+	in new variable and use it appropriately.
+	Add branch prediction help.
+	* resolv/res_query.c (__libc_res_nquery): Take additional parameter
+	and pass it on to __libc_res_nsend.  Adjust all callers.
+	(__libc_res_nsearch): Likewise.
+	(__libc_res_nqeurydomain): Likewise.
+	* resolv/nss_dns/dns-host.c: Adjust for __libc_res_nsearch interface
+	change.
+	(_nss_dns_gethostbyname4): Don't unconditionally allocate tmp array.
+	Define resplen2 variable and pass it to __libc_res_nsearch and then
+	to gaih_getanswer.
+	(getanswer_r): In case of incorrect DNS data don't overread buffer.
+	Add branch prediction.
+	(gaih_getanswer_slice): Likewise.  Check for invalid data types.
+	(gaih_getanswer): Don't decode second slice if first one failed due
+	to a too small buffer.  Don't let not found status of second
+	decoder shadow results of the first.
+	* resolv/gethnamaddr.c (gethostbyname2): Adjust for __libc_res_nsearch
+	and __libc_res_nquery interface changes
+	(gethostbyaddr): Adjust for __libc_res_nquery interface change.
+	* include/resolv.h: Adjust prototypes for __libc_res_nquery,
+	__libc_res_nsearch, and __libc_res_nsend.
+	* resolv/nss_dns/dns-canon.c: Adjust for __libc_res_nquery interface
+	change.
+	* resolv/nss_dns/dns-network.c: Adjust for __libc_res_nquery and
+	__libc_res_nsearch interface changes.
+
+2008-07-27  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* libio/iopopen.c (_IO_new_proc_open): Remove unnecessary volatile.
+
+	* posix/wordexp.c (exec_comm): Use pipe2 if possible to create
+	file descriptors with close-on-exec set.
+	(exec_comm_child): Fix the case where the write end of the pipe is
+	STDOUT_FILENO already.  In case it is, clear close-on-exec.
+
+	* sysdeps/unix/sysv/linux/syscalls.list: Add __pipe2 alias.
+	* io/pipe2.c: Likewise.
+	* sysdeps/unix/sysv/linux/kernel-features.h: Define __ASSUME_PIPE2
+	instead of __ASSUME_PACCEPT.
+	* include/unistd.h: Declare __have_pipe2.
+	* libio/iopopen.c: Implement "e" flag.
+	* libio/Makefile (tests): Add tst-popen1.
+	* libio/tst-popen1.c: New file.
+
+	* sysdeps/unix/sysv/linux/bits/socket.h: Define PF_ISDN and AF_ISDN.
+	* sysdeps/unix/sysv/linux/sparc/bits/socket.h: Likewise.
+
+2008-07-26  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	[BZ #6771]
+	* libio/fileops.c (_IO_new_file_attach): Preserve errno around
+	success call of _IO_SEEKOFF or calls which failed because the
+	descriptor is for a pipe.
+
+	* sunrpc/key_call.c (getkeyserv_handle): Use FD_CLOEXEC instead of
+	magic number.
+
+	* misc/syslog.c (openlog_internal): Use SOCK_CLOEXEC if possible.
+
+	* malloc/mtrace.c (mtrace): Use 'e' flag in fopen call.  Drop
+	F_SETFD use if we know fopen set the flag.
+
+	* login/utmp_file.c (setutent_file): Minor optimization in case
+	O_CLOEXEC is available.
+
+2008-07-24  Tom "spot" Callaway  <tcallawa@xxxxxxxxxx>
+
+	* Makeconfig: Define pie-ccflag and PIE-ccflag variables.
+	* elf/Makefile: Use pie-ccflag variable.
+	* nscd/Makefile: Likewise.
+	* sysdeps/sparc/Makefile: Set $(pie-ccflag) to -fPIE.
+
+2008-07-21  Andreas Krebbel  <krebbel1@xxxxxxxxxx>
+
+	[BZ #6724]
+	* Versions.def: Add GLIBC_2.9 version tag for libutil.
+	* sysdeps/unix/sysv/linux/s390/bits/utmp.h: Copy of
+	gnu/bits/utmp.h.  Check for __WORDSIZE_COMPAT32 removed.
+	* sysdeps/unix/sysv/linux/s390/bits/utmpx.h: Copy of
+	gnu/bits/utmpx.h.  Check for __WORDSIZE_COMPAT32 removed.
+	* sysdeps/unix/sysv/linux/s390/s390-32/Makefile: Add new files
+	utmp32, utmpx32 and login32.
+	* sysdeps/unix/sysv/linux/s390/s390-32/Versions: Add 2.9
+	versions of struct utmp functions to libc and libutil.
+	* sysdeps/unix/sysv/linux/s390/s390-32/utmp-compat.h: New file.
+	* sysdeps/unix/sysv/linux/s390/s390-32/getutent.c: New file.
+	* sysdeps/unix/sysv/linux/s390/s390-32/getutent_r.c: New file.
+	* sysdeps/unix/sysv/linux/s390/s390-32/getutid.c: New file.
+	* sysdeps/unix/sysv/linux/s390/s390-32/getutid_r.c: New file.
+	* sysdeps/unix/sysv/linux/s390/s390-32/getutline.c: New file.
+	* sysdeps/unix/sysv/linux/s390/s390-32/getutline_r.c: New file.
+	* sysdeps/unix/sysv/linux/s390/s390-32/getutmp.c: New file.
+	* sysdeps/unix/sysv/linux/s390/s390-32/getutxent.c: New file.
+	* sysdeps/unix/sysv/linux/s390/s390-32/getutxid.c: New file.
+	* sysdeps/unix/sysv/linux/s390/s390-32/getutxline.c: New file.
+	* sysdeps/unix/sysv/linux/s390/s390-32/login.c: New file.
+	* sysdeps/unix/sysv/linux/s390/s390-32/login32.c: New file.
+	* sysdeps/unix/sysv/linux/s390/s390-32/pututxline.c: New file.
+	* sysdeps/unix/sysv/linux/s390/s390-32/updwtmp.c: New file.
+	* sysdeps/unix/sysv/linux/s390/s390-32/updwtmpx.c: New file.
+	* sysdeps/unix/sysv/linux/s390/s390-32/utmp-convert.h: New file.
+	* sysdeps/unix/sysv/linux/s390/s390-32/utmp32.c: New file.
+	* sysdeps/unix/sysv/linux/s390/s390-32/utmp32.h: New file.
+	* sysdeps/unix/sysv/linux/s390/s390-32/utmpx-convert.h: New file.
+	* sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.c: New file.
+	* sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.h: New file.
+
+2008-07-26  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* scripts/gen-as-const.awk: Generate more widely usable code by
+	using 64-bit arithmetic.
+
+	* stdio-common/printf_fp.c (___printf_fp): Give wide outout code
+	the same treatment as narrow output code in last patch.
+
+	* sunrpc/clnt_udp.c (__libc_clntudp_bufcreate): Namespace cleanup.
+
+	[BZ #6763]
+	* elf/dl-load.c (local_strdup): Remove inline.
+	(_dl_map_object_from_fd): Don't allocate l_symbolic_searchlist.r_list.
+	* elf/dl-object.c (_dl_new_object): Allocate symbolic searchlist as
+	part of the object.
+
+	* sysdeps/unix/sysv/linux/dl-origin.c: Add const to avoid warning.
+
+2008-07-25  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/kernel-features.h: IA-64 and SPARC have
+	the new syscalls, too.
+
+	* sysdeps/i386/i686/memcmp.S: Fix unwind information.
+	Reported by Paul Pluzhnikov <ppluzhnikov@xxxxxxxxxx>.
+
+	[BZ #6698]
+	* stdio-common/_i18n_number.h (_i18n_number_rewrite): Take additional
+	parameter for end of buffer.  If temporary copy is too large use
+	malloc.
+	* stdio-common/vfprintf.c: Adjust for _i18n_number_rewrite
+	interface change.
+	* stdio-common/printf_fp.c (__printf_fp): Likewise..  Account for
+	string rewrite when allocating buffer.
+
+	* sysdeps/unix/sysv/linux/kernel-features.h: PPC has the new
+	syscalls, too.
+
+	* nscd/connections.c (nscd_init): Clean up fcntl call.
+
+	* nscd/nscd_helper.c (open_socket): Use SOCK_CLOEXEC and
+	SOCK_NONBLOCK if possible.
+
+	* sysdeps/unix/sysv/linux/opensock.c (__opensock): Use
+	SOCK_CLOEXEC if available.
+
+	* include/rpc/clnt.h: Declare __libc_clntudp_bufcreate and
+	__libc_clntudp_bufcreate_internal.
+	* include/sys/socket.h: Declare __have_sock_cloexec.
+	* socket/Makefile (aux): Add have_sock_cloexec.
+	* socket/have_sock_cloexec.c: New file.
+	* sunrpc/clnt_udp.h (clntudp_bufcreate): Now a wrapper around
+	__libc_clntudp_bufcreate.
+	(__libc_clntudp_bufcreate): Former implementation of clntudp_bufcreate
+	which takes an additional parameter.  Create socket with non-blocking
+	mode and close-on-exec flag set, if wanted.
+	* sunrpc/Versions: Export __libc_clntudp_bufcreate@GLIBC_PRIVATE.
+	* nis/ypclnt.c (yp_bind_client_create): Use __libc_clntpudp_bufcreate
+	instead of clntudp_create.  The socket has already the close-on-exec
+	flag set if SOCK_CLOEXEC is defined.
+
+2008-07-24  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/kernel-features.h: Define
+	__ASSUME_PACCEPT, __ASSUME_IN_NONBLOCK, and __ASSUME_PACCEPT if
+	appropriate.
+	* nscd/connections.c: Avoid fcntl calls to set close-on-exec flag and
+	non-blocking mode by using socket, paccept, and inotify_init1.
+
+	* Versions.def (glibc): Add GLIBC_2.9.
+	* io/Makefile (routines): Add dup3 and pipe2.
+	* io/Versions [glibc] (GLIBC_2.9): Add dup3 and pipe2.
+	* io/dup3.c: New file.
+	* io/pipe2.c: New file.
+	* posix/unistd.h: Declare dup3 and pipe2.
+	* socket/Makefile (routines): Add paccept.
+	* socket/Versions [glibc] (GLIBC_2.9): Add paccept.
+	* socket/paccept.c: New file.
+	* socket/sys/socket.h: Declare paccept.
+	* sysdeps/unix/syscalls.list: Add entry for dup3.
+	* sysdeps/unix/sysv/linux/Versions [glibc] (GLIBC_2.9): Add
+	epoll_create2 and inotify_init1.
+	* sysdeps/unix/sysv/linux/eventfd.c: Use eventfd1 syscall if possible.
+	* sysdeps/unix/sysv/linux/paccept.c: New file.
+	* sysdeps/unix/sysv/linux/signalfd.c: Use signalfd4 syscall if
+	possible.
+	* sysdeps/unix/sysv/linux/socketcall.h: Add SOCKOP_paccept.
+	* sysdeps/unix/sysv/linux/syscalls.list: Add epoll_create2,
+	inotify_init1, and pipe2 entries.
+	* sysdeps/unix/sysv/linux/alpha/sys/epoll.h: New file.
+	* sysdeps/unix/sysv/linux/alpha/sys/eventfd.h: New file.
+	* sysdeps/unix/sysv/linux/alpha/sys/inotify.h: New file.
+	* sysdeps/unix/sysv/linux/alpha/sys/signalfd.h: New file.
+	* sysdeps/unix/sysv/linux/alpha/sys/timerfd.h: New file.
+	* sysdeps/unix/sysv/linux/bits/socket.h: Define SOCK_CLOEXEC and
+	SOCK_NONBLOCK.
+	* sysdeps/unix/sysv/linux/i386/paccept.S: New file.
+	* sysdeps/unix/sysv/linux/sparc/sys/epoll.h: New file.
+	* sysdeps/unix/sysv/linux/sparc/sys/eventfd.h: New file.
+	* sysdeps/unix/sysv/linux/sparc/sys/inotify.h: New file.
+	* sysdeps/unix/sysv/linux/sparc/sys/signalfd.h: New file.
+	* sysdeps/unix/sysv/linux/sparc/sys/timerfd.h: New file.
+	* sysdeps/unix/sysv/linux/sparc/bits/socket.h: New file.
+	* sysdeps/unix/sysv/linux/sys/epoll.h: Define EPOLL_CLOEXEC and
+	EPOLL_NONBLOCK.  Declare epoll_create2.
+	* sysdeps/unix/sysv/linux/sys/eventfd.h: Define EFD_CLOEXEC and
+	EFD_NONBLOCK.
+	* sysdeps/unix/sysv/linux/sys/inotify.h: Define IN_CLOEXEC and
+	IN_NONBLOCK.  Declare inotify_init1.
+	* sysdeps/unix/sysv/linux/sys/signalfd.h: Define SFD_CLOEXEC and
+	SFD_NONBLOCK.
+	* sysdeps/unix/sysv/linux/sys/timerfd.h: Define TFD_CLOEXEC and
+	TFD_NONBLOCK.
+
+	* elf/elf.h: Define AT_EXECFN.
+	* elf/rtld.c [!__ASSUME_AT_EXECFN] (process_envvars): Don't handle
+	LD_ORIGIN_PATH.
+	* elf/dl-sysdep.c (_dl_sysdep_start): Handle AT_EXECFN.
+	* elf/dl-support.c: Define _dl_execfn.  Don't define _dl_origin_path
+	if __ASSUME_AT_EXECFN is defined.
+	(_dl_aux_init): Handle AT_EXECFN.
+	* sysdeps/unix/sysv/linux/kernel-features.h: Define __ASSUME_AT_EXECFN
+	for 2.6.27 and up.
+	* sysdeps/generic/ldsodefs.h (rtld_global_ro): Add _dl_execfn.
+	Don't define _dl_origin_path if __ASSUME_AT_EXECFN is defined.
+	* sysdeps/unix/sysv/linux/dl-origin.c (_dl_get_origin): Use
+	_dl_execfn if available and avoid compatibility code if
+	__ASSUME_AT_EXECFN is defined.
+
+	* sysdeps/unix/sysv/linux/dl-sysdep.h: Don't declare
+	_dl_discover_osversion only for older kernels.
+
+2008-07-22  Roland McGrath  <roland@xxxxxxxx>
+
+	* hurd/fd-read.c (_hurd_fd_read): Fix last change.
+
+2008-07-21  Roland McGrath  <roland@xxxxxxxx>
+
+	* hurd/fd-read.c (_hurd_fd_read): Return EGRATUITOUS if the server
+	returned too much data out of line.
+
+2008-07-20  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* locale/setlocale.c (setname): Remove inline to avoid compiler
+	warning.
+
+	[BZ #6712]
+	* locale/setlocale.c (setlocale): Take the setlocale lock earlier.
+
+2008-07-15  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* stdio-common/vfprintf.c (_IO_helper_overflow): In case _IO_sputn
+	doesn't manage to write anything, fail.
+
+	* malloc/hooks.c (__malloc_check_init): Remove printf.
+
+2008-07-14  Samuel Thibault  <samuel.thibault@xxxxxxxxxxxx>
+
+	* sysdeps/mach/hurd/bits/fcntl.h: Include <sys/types.h>.
+
+2008-07-12  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* nscd/connections.c (main_loop_poll): Fix handling of read errors
+	from inotify.
+	(main_loop_epoll): Likewise.
+
+2008-07-09  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* resolv/res_send.c: Remove unnecessary res_pquery prototype.
+
+	* resolv/res_query.c (__libc_res_nquery): Issue debug message only
+	if DEBUG is defined.
+
+	* resolv/res_query.c (__libc_res_nquery): Align buffer for T_AAAA
+	query.  Adjust buffer size computation for padding.
+
+2008-07-08  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* stdio-common/Makefile: Add rules to build and run tst-setvbuf1.
+	* stdio-common/tst-setvbuf1.c: New file.
+	* stdio-common/tst-setvbuf1.expect: New file.
+
+	[BZ #6719]
+	* libio/iosetvbuf.c (_IO_setvbuf): Correctly clear buffering flags
+	when selecting fully-buffered stream.
+	Patch by Wang Xin <wxinee@xxxxxxxxx>.
+
 2008-07-06  Samuel Thibault  <samuel.thibault@xxxxxxxxxxxx>
 
 	* sysdeps/mach/hurd/open.c: Include <stdio.h>.

Modified: trunk/libc/Makeconfig
==============================================================================
--- trunk/libc/Makeconfig (original)
+++ trunk/libc/Makeconfig Tue Aug 19 10:24:09 2008
@@ -651,7 +651,7 @@
 +cflags	:= $(default_cflags)
 endif	# $(+cflags) == ""
 
-+cflags += $(addprefix -mcpu=,$(with-cpu)) $(+gccwarn) $(+merge-constants)
++cflags += $(cflags-cpu) $(+gccwarn) $(+merge-constants)
 +gcc-nowarn := -w
 
 # Don't duplicate options if we inherited variables from the parent.
@@ -720,6 +720,10 @@
 # This one should always stay like this unless there is a very good reason.
 PIC-ccflag = -fPIC
 endif
+# This can be changed by a sysdep makefile
+pie-ccflag = -fpie
+# This one should always stay like this unless there is a very good reason.
+PIE-ccflag = -fPIE
 ifeq (yes,$(build-profile))
 # Under --enable-profile, we will build a static library of profiled objects.
 # The profiled object files are named foo.op.

Modified: trunk/libc/Makefile
==============================================================================
--- trunk/libc/Makefile (original)
+++ trunk/libc/Makefile Tue Aug 19 10:24:09 2008
@@ -267,8 +267,8 @@
 tests: $(objpfx)c++-types-check.out $(objpfx)check-local-headers.out
 ifneq ($(CXX),no)
 check-data := $(firstword $(wildcard \
-	        $(foreach D,$(add-ons) scripts/data,\
-	        	  $(patsubst %,$D/c++-types-%.data,\
+	        $(foreach D,$(add-ons) scripts,\
+	        	  $(patsubst %,$D/data/c++-types-%.data,\
 			   	     $(abi-name) \
 			   	     $(addsuffix -$(config-os),\
 				     		 $(config-machine) \

Modified: trunk/libc/NEWS
==============================================================================
--- trunk/libc/NEWS (original)
+++ trunk/libc/NEWS Tue Aug 19 10:24:09 2008
@@ -1,4 +1,4 @@
-GNU C Library NEWS -- history of user-visible changes.  2008-5-14
+GNU C Library NEWS -- history of user-visible changes.  2008-8-2
 Copyright (C) 1992-2007, 2008 Free Software Foundation, Inc.
 See the end for copying conditions.
 
@@ -22,10 +22,26 @@
 
 * New implementation of memmem, strstr, and strcasestr which is O(n).
   Implemented by Eric Blake.
+
+* New Linux interfaces: inotify_init1, paccept, dup3, epoll_create1, pipe2
+
+* Implement "e" option for popen to open file descriptor with the
+  close-on-exec flag set.  Implemented by Ulrich Drepper.
+
+* Implement "b" mode for fmemopen.  In this mode writes writes don't
+  implicitly add a NUL byte and seeks from the end of the buffer really
+  use the buffer end, not the string length as the basis.
+  Implemented by Ulrich Drepper.
+
+* Many functions, exported and internal, now atomically set the close-on-exec
+  flag when run on a sufficiently new kernel.  Implemented by Ulrich Drepper.
+
+* Sorting rules for some Indian languages (Kannada, Gurumukhi, Telugu)
+  Implemented by Pravin Satpute.
 
 Version 2.8
 
-* New locales: bo_CN, bo_IN.
+* New locales: bo_CN, bo_IN, shs_CA.
 
 * New encoding: HP-ROMAN9, HP-GREEK8, HP-THAI8, HP-TURKISH8.
 

Modified: trunk/libc/Versions.def
==============================================================================
--- trunk/libc/Versions.def (original)
+++ trunk/libc/Versions.def Tue Aug 19 10:24:09 2008
@@ -25,6 +25,7 @@
   GLIBC_2.6
   GLIBC_2.7
   GLIBC_2.8
+  GLIBC_2.9
 %ifdef USE_IN_LIBIO
   HURD_CTHREADS_0.3
 %endif
@@ -92,6 +93,7 @@
   GLIBC_2.0
   GLIBC_2.2
   GLIBC_2.3.2
+  GLIBC_2.9
   GLIBC_PRIVATE
 }
 librt {
@@ -105,6 +107,7 @@
 }
 libutil {
   GLIBC_2.0
+  GLIBC_2.9
 }
 ld {
   GLIBC_2.0

Modified: trunk/libc/config.make.in
==============================================================================
--- trunk/libc/config.make.in (original)
+++ trunk/libc/config.make.in Tue Aug 19 10:24:09 2008
@@ -31,7 +31,7 @@
 config-vendor = @host_vendor@
 config-os = @host_os@
 config-sysdirs = @sysnames@
-with-cpu = @submachine@
+cflags-cpu = @libc_cv_cc_submachine@
 
 defines = @DEFINES@
 sysincludes = @SYSINCLUDES@

Modified: trunk/libc/configure
==============================================================================
--- trunk/libc/configure (original)
+++ trunk/libc/configure Tue Aug 19 10:24:09 2008
@@ -313,7 +313,7 @@
 # include <unistd.h>
 #endif"
 
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS with_fp with_cvs enable_check_abi oldest_abi bindnow force_install all_warnings build build_cpu build_vendor build_os host host_cpu host_vendor host_os subdirs add_ons add_on_subdirs base_machine submachine sysnames sysdeps_add_ons INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN_S CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC OBJEXT BUILD_CC cross_compiling CPP CXX CXXFLAGS ac_ct_CXX AR NM OBJDUMP RANLIB ac_ct_RANLIB MIG AS LD PWD_P MAKE MSGFMT MAKEINFO SED AUTOCONF SYSINCLUDES CXX_SYSINCLUDES libc_cv_gcc_static_libgcc BASH_SHELL libc_cv_have_bash2 KSH libc_cv_have_ksh AWK PERL INSTALL_INFO BISON VERSIONING libc_cv_cc_with_libunwind libc_cv_Bgroup libc_cv_libgcc_s_suffix libc_cv_as_needed ASFLAGS_config libc_cv_z_combreloc libc_cv_z_execstack libc_cv_fpie libc_cv_hashstyle fno_unit_at_a_time libc_cv_ssp libc_cv_gnu89_inline libc_cv_have_initfini no_whole_archive exceptions LIBGD have_libaudit have_libcap have_selinux EGREP sizeof_long_double libc_cv_gcc_unwind_find_fde uname_sysname uname_release uname_version old_glibc_headers libc_cv_slibdir libc_cv_localedir libc_cv_sysconfdir libc_cv_rootsbindir libc_cv_forced_unwind use_ldconfig ldd_rewrite_script elf xcoff static shared pic_default profile omitfp bounded static_nss nopic_initfini DEFINES mach_interface_list VERSION RELEASE LIBOBJS LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS with_fp with_cvs enable_check_abi oldest_abi bindnow force_install all_warnings build build_cpu build_vendor build_os host host_cpu host_vendor host_os subdirs add_ons add_on_subdirs base_machine submachine sysnames sysdeps_add_ons INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN_S CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC OBJEXT BUILD_CC cross_compiling CPP CXX CXXFLAGS ac_ct_CXX AR NM OBJDUMP RANLIB ac_ct_RANLIB MIG AS LD PWD_P MAKE MSGFMT MAKEINFO SED AUTOCONF SYSINCLUDES CXX_SYSINCLUDES libc_cv_gcc_static_libgcc BASH_SHELL libc_cv_have_bash2 KSH libc_cv_have_ksh AWK PERL INSTALL_INFO BISON VERSIONING libc_cv_cc_with_libunwind libc_cv_Bgroup libc_cv_libgcc_s_suffix libc_cv_as_needed ASFLAGS_config libc_cv_z_combreloc libc_cv_z_execstack libc_cv_fpie libc_cv_hashstyle fno_unit_at_a_time libc_cv_ssp libc_cv_gnu89_inline libc_cv_have_initfini no_whole_archive exceptions libc_cv_cc_submachine LIBGD have_libaudit have_libcap have_selinux EGREP sizeof_long_double libc_cv_gcc_unwind_find_fde uname_sysname uname_release uname_version old_glibc_headers libc_cv_slibdir libc_cv_localedir libc_cv_sysconfdir libc_cv_rootsbindir libc_cv_forced_unwind use_ldconfig ldd_rewrite_script elf xcoff static shared pic_default profile omitfp bounded static_nss nopic_initfini DEFINES mach_interface_list VERSION RELEASE LIBOBJS LTLIBOBJS'
 ac_subst_files=''
 
 # Initialize some variables set by options.
@@ -1820,7 +1820,6 @@
   esac
 
 fi;
-
 
 # An add-on can set this when it wants to disable the sanity check below.
 libc_config_ok=no
@@ -6582,6 +6581,35 @@
 
   fi
 fi
+
+if test -n "$submachine"; then
+  echo "$as_me:$LINENO: checking for compiler option for CPU variant" >&5
+echo $ECHO_N "checking for compiler option for CPU variant... $ECHO_C" >&6
+if test "${libc_cv_cc_submachine+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+    libc_cv_cc_submachine=no
+  for opt in "-march=$submachine" "-mcpu=$submachine"; do
+    if { ac_try='${CC-cc} $opt -xc /dev/null -S -o /dev/null'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+      libc_cv_cc_submachine="$opt"
+      break
+    fi
+  done
+fi
+echo "$as_me:$LINENO: result: $libc_cv_cc_submachine" >&5
+echo "${ECHO_T}$libc_cv_cc_submachine" >&6
+  if test "x$libc_cv_cc_submachine" = xno; then
+    { { echo "$as_me:$LINENO: error: ${CC-cc} does not support $submachine" >&5
+echo "$as_me: error: ${CC-cc} does not support $submachine" >&2;}
+   { (exit 1); exit 1; }; }
+  fi
+fi
+
 
 echo "$as_me:$LINENO: checking for libgd" >&5
 echo $ECHO_N "checking for libgd... $ECHO_C" >&6
@@ -8543,6 +8571,7 @@
 s,@libc_cv_have_initfini@,$libc_cv_have_initfini,;t t
 s,@no_whole_archive@,$no_whole_archive,;t t
 s,@exceptions@,$exceptions,;t t
+s,@libc_cv_cc_submachine@,$libc_cv_cc_submachine,;t t
 s,@LIBGD@,$LIBGD,;t t
 s,@have_libaudit@,$have_libaudit,;t t
 s,@have_libcap@,$have_libcap,;t t

Modified: trunk/libc/configure.in
==============================================================================
--- trunk/libc/configure.in (original)
+++ trunk/libc/configure.in Tue Aug 19 10:24:09 2008
@@ -325,7 +325,6 @@
   *) submachine="$withval" ;;
   esac
 ])
-
 
 # An add-on can set this when it wants to disable the sanity check below.
 libc_config_ok=no
@@ -1967,6 +1966,22 @@
   fi
 fi
 
+if test -n "$submachine"; then
+  AC_CACHE_CHECK([for compiler option for CPU variant],
+  		 libc_cv_cc_submachine, [dnl
+  libc_cv_cc_submachine=no
+  for opt in "-march=$submachine" "-mcpu=$submachine"; do
+    if AC_TRY_COMMAND([${CC-cc} $opt -xc /dev/null -S -o /dev/null]); then
+      libc_cv_cc_submachine="$opt"
+      break
+    fi
+  done])
+  if test "x$libc_cv_cc_submachine" = xno; then
+    AC_MSG_ERROR([${CC-cc} does not support $submachine])
+  fi
+fi
+AC_SUBST(libc_cv_cc_submachine)
+
 dnl Check whether we have the gd library available.
 AC_MSG_CHECKING(for libgd)
 if test "$with_gd" != "no"; then

Modified: trunk/libc/elf/Makefile
==============================================================================
--- trunk/libc/elf/Makefile (original)
+++ trunk/libc/elf/Makefile Tue Aug 19 10:24:09 2008
@@ -805,7 +805,7 @@
 	cmp $@ tst-array5-static.exp > /dev/null
 
 ifeq (yesyes,$(have-fpie)$(build-shared))
-CFLAGS-tst-pie1.c += -fpie
+CFLAGS-tst-pie1.c += $(pie-ccflag)
 
 $(objpfx)tst-pie1.out: $(objpfx)tst-pie1
 	$(cross-test-wrapper) \
@@ -847,8 +847,8 @@
 $(objpfx)tst-dlmodcount.out: $(test-modules)
 
 check-data := $(firstword $(wildcard \
-	        $(foreach D,$(add-ons) scripts/data,\
-	        	  $(patsubst %,$(..)$D/localplt-%.data,\
+	        $(foreach D,$(add-ons) scripts,\
+	        	  $(patsubst %,$(..)$D/data/localplt-%.data,\
 			   	     $(abi-name) \
 			   	     $(addsuffix -$(config-os),\
 				     		 $(config-machine) \
@@ -866,6 +866,8 @@
 		    	     $(common-objpfx)math/libm.so $(thread-dso) \
 		    	     $(common-objpfx)rt/librt.so \
 		    	     $(common-objpfx)dlfcn/libdl.so \
+			     $(common-objpfx)resolv/libresolv.so \
+			     $(common-objpfx)crypt/libcrypt.so \
 			     $(check-data)
 	$(dir $<)$(notdir $<) $(filter-out $< $(check-data),$^) | \
 	  LC_ALL=C sort | \

Modified: trunk/libc/elf/dl-load.c
==============================================================================
--- trunk/libc/elf/dl-load.c (original)
+++ trunk/libc/elf/dl-load.c Tue Aug 19 10:24:09 2008
@@ -163,7 +163,7 @@
 
 
 /* Local version of `strdup' function.  */
-static inline char *
+static char *
 local_strdup (const char *s)
 {
   size_t len = strlen (s) + 1;
@@ -1470,15 +1470,6 @@
     {
       /* Create an appropriate searchlist.  It contains only this map.
 	 This is the definition of DT_SYMBOLIC in SysVr4.  */
-      l->l_symbolic_searchlist.r_list =
-	(struct link_map **) malloc (sizeof (struct link_map *));
-
-      if (l->l_symbolic_searchlist.r_list == NULL)
-	{
-	  errstring = N_("cannot create searchlist");
-	  goto call_lose_errno;
-	}
-
       l->l_symbolic_searchlist.r_list[0] = l;
       l->l_symbolic_searchlist.r_nlist = 1;
 

Modified: trunk/libc/elf/dl-object.c
==============================================================================
--- trunk/libc/elf/dl-object.c (original)
+++ trunk/libc/elf/dl-object.c Tue Aug 19 10:24:09 2008
@@ -1,5 +1,5 @@
 /* Storage management for the chain of loaded shared objects.
-   Copyright (C) 1995-2002, 2004, 2006, 2007 Free Software Foundation, Inc.
+   Copyright (C) 1995-2002,2004,2006,2007,2008 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -50,13 +50,17 @@
 #endif
 
   new = (struct link_map *) calloc (sizeof (*new) + audit_space
+				    + sizeof (struct link_map *)
 				    + sizeof (*newname) + libname_len, 1);
   if (new == NULL)
     return NULL;
 
   new->l_real = new;
-  new->l_libname = newname = (struct libname_list *) ((char *) (new + 1)
-						      + audit_space);
+  new->l_symbolic_searchlist.r_list = (struct link_map **) ((char *) (new + 1)
+							    + audit_space);
+
+  new->l_libname = newname
+    = (struct libname_list *) (new->l_symbolic_searchlist.r_list + 1);
   newname->name = (char *) memcpy (newname + 1, libname, libname_len);
   /* newname->next = NULL;	We use calloc therefore not necessary.  */
   newname->dont_free = 1;

Modified: trunk/libc/elf/dl-support.c
==============================================================================
--- trunk/libc/elf/dl-support.c (original)
+++ trunk/libc/elf/dl-support.c Tue Aug 19 10:24:09 2008
@@ -1,5 +1,5 @@
 /* Support for dynamic linking code in static libc.
-   Copyright (C) 1996-2005, 2006, 2007 Free Software Foundation, Inc.
+   Copyright (C) 1996-2005, 2006, 2007, 2008 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or

Modified: trunk/libc/elf/dl-sysdep.c
==============================================================================
--- trunk/libc/elf/dl-sysdep.c (original)
+++ trunk/libc/elf/dl-sysdep.c Tue Aug 19 10:24:09 2008
@@ -270,6 +270,7 @@
       } auxvars[] =
 	{
 	  [AT_EXECFD - 2] =		{ "AT_EXECFD:       ", dec },
+	  [AT_EXECFN - 2] =		{ "AT_EXECFN:       ", str },
 	  [AT_PHDR - 2] =		{ "AT_PHDR:         0x", hex },
 	  [AT_PHENT - 2] =		{ "AT_PHENT:        ", dec },
 	  [AT_PHNUM - 2] =		{ "AT_PHNUM:        ", dec },

Modified: trunk/libc/elf/elf.h
==============================================================================
--- trunk/libc/elf/elf.h (original)
+++ trunk/libc/elf/elf.h Tue Aug 19 10:24:09 2008
@@ -969,6 +969,8 @@
 #define AT_IGNOREPPC	22		/* Entry should be ignored.  */
 
 #define	AT_SECURE	23		/* Boolean, was exec setuid-like?  */
+
+#define AT_EXECFN	31		/* Filename of executable.  */
 
 /* Pointer to the global system page used for system calls and other
    nice things.  */

Modified: trunk/libc/hurd/fd-read.c
==============================================================================
--- trunk/libc/hurd/fd-read.c (original)
+++ trunk/libc/hurd/fd-read.c Tue Aug 19 10:24:09 2008
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993,94,95,97,99,2002 Free Software Foundation, Inc.
+/* Copyright (C) 1993,94,95,97,99,2002,2008 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -41,6 +41,11 @@
 
   if (data != buf)
     {
+      if (nread > *nbytes)	/* Sanity check for bogus server.  */
+	{
+	  __vm_deallocate (__mach_task_self (), (vm_address_t) data, nread);
+	  return EGRATUITOUS;
+	}
       memcpy (buf, data, nread);
       __vm_deallocate (__mach_task_self (), (vm_address_t) data, nread);
     }

Modified: trunk/libc/hurd/hurd/signal.h
==============================================================================
--- trunk/libc/hurd/hurd/signal.h (original)
+++ trunk/libc/hurd/hurd/signal.h Tue Aug 19 10:24:09 2008
@@ -1,5 +1,6 @@
 /* Implementing POSIX.1 signals under the Hurd.
-   Copyright (C) 1993,94,95,96,98,99,2002,2007 Free Software Foundation, Inc.
+   Copyright (C) 1993,94,95,96,98,99,2002,2007,2008
+	Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -342,10 +343,12 @@
     do									      \
       {									      \
 	/* Get the message port.  */					      \
-	if (__err = (fetch_msgport_expr))				      \
+	__err = (fetch_msgport_expr);					      \
+	if (__err)							      \
 	  break;							      \
 	/* Get the reference port.  */					      \
-	if (__err = (fetch_refport_expr))				      \
+	_err = (fetch_refport_expr);					      \
+	if (__err)							      \
 	  {								      \
 	    /* Couldn't get it; deallocate MSGPORT and fail.  */	      \
 	    __mach_port_deallocate (__mach_task_self (), msgport);	      \

Modified: trunk/libc/include/arpa/nameser.h
==============================================================================
--- trunk/libc/include/arpa/nameser.h (original)
+++ trunk/libc/include/arpa/nameser.h Tue Aug 19 10:24:09 2008
@@ -1,3 +1,5 @@
+#ifndef _ARPA_NAMESER_H_
+
 #include <resolv/arpa/nameser.h>
 
 /* If the machine allows unaligned access we can do better than using
@@ -7,14 +9,14 @@
 #include <stdint.h>
 #include <netinet/in.h>
 
-extern struct _ns_flagdata _ns_flagdata[] attribute_hidden;
+extern const struct _ns_flagdata _ns_flagdata[] attribute_hidden;
 
 #if _STRING_ARCH_unaligned
 
 # undef NS_GET16
 # define NS_GET16(s, cp) \
   do {									      \
-    uint16_t *t_cp = (uint16_t *) (cp);					      \
+    const uint16_t *t_cp = (const uint16_t *) (cp);			      \
     (s) = ntohs (*t_cp);						      \
     (cp) += NS_INT16SZ;							      \
   } while (0)
@@ -22,7 +24,7 @@
 # undef NS_GET32
 # define NS_GET32(l, cp) \
   do {									      \
-    uint32_t *t_cp = (uint32_t *) (cp);					      \
+    const uint32_t *t_cp = (const uint32_t *) (cp);			      \
     (l) = ntohl (*t_cp);						      \
     (cp) += NS_INT32SZ;							      \
   } while (0)
@@ -44,3 +46,32 @@
   } while (0)
 
 #endif
+
+extern u_int		__ns_get16 (const u_char *) __THROW;
+extern u_long		__ns_get32 (const u_char *) __THROW;
+
+#define ns_msg_getflag(handle, flag) \
+  (((handle)._flags & _ns_flagdata[flag].mask) >> _ns_flagdata[flag].shift)
+
+libresolv_hidden_proto (ns_get16)
+libresolv_hidden_proto (ns_get32)
+libresolv_hidden_proto (ns_put16)
+libresolv_hidden_proto (ns_put32)
+libresolv_hidden_proto (ns_initparse)
+libresolv_hidden_proto (ns_skiprr)
+libresolv_hidden_proto (ns_parserr)
+libresolv_hidden_proto (ns_name_ntop)
+libresolv_hidden_proto (ns_name_pton)
+libresolv_hidden_proto (ns_name_pack)
+libresolv_hidden_proto (ns_name_skip)
+libresolv_hidden_proto (ns_name_unpack)
+libresolv_hidden_proto (ns_name_compress)
+libresolv_hidden_proto (ns_name_uncompress)
+libresolv_hidden_proto (ns_sprintrr)
+libresolv_hidden_proto (ns_sprintrrf)
+libresolv_hidden_proto (ns_samedomain)
+libresolv_hidden_proto (ns_samename)
+libresolv_hidden_proto (ns_makecanon)
+libresolv_hidden_proto (ns_format_ttl)
+
+#endif

Modified: trunk/libc/include/resolv.h
==============================================================================
--- trunk/libc/include/resolv.h (original)
+++ trunk/libc/include/resolv.h Tue Aug 19 10:24:09 2008
@@ -58,11 +58,11 @@
 libc_hidden_proto (__res_state)
 
 int __libc_res_nquery (res_state, const char *, int, int, u_char *, int,
-		       u_char **, u_char **, int *);
+		       u_char **, u_char **, int *, int *);
 int __libc_res_nsearch (res_state, const char *, int, int, u_char *, int,
-			u_char **, u_char **, int *);
+			u_char **, u_char **, int *, int *);
 int __libc_res_nsend (res_state, const u_char *, int, const u_char *, int,
-		      u_char *, int, u_char **, u_char **, int *)
+		      u_char *, int, u_char **, u_char **, int *, int *)
   attribute_hidden;
 
 libresolv_hidden_proto (_sethtent)
@@ -98,11 +98,9 @@
 libresolv_hidden_proto (__res_queriesmatch)
 libresolv_hidden_proto (__res_nsend)
 libresolv_hidden_proto (__b64_ntop)
-libresolv_hidden_proto (__ns_name_ntop)
-libresolv_hidden_proto (__ns_name_unpack)
-libresolv_hidden_proto (__ns_get16)
-libresolv_hidden_proto (__ns_get32)
 libresolv_hidden_proto (__res_nopt)
+libresolv_hidden_proto (__dn_count_labels)
+libresolv_hidden_proto (__p_secstodate)
 
 extern const char *_res_opcodes[];
 libresolv_hidden_proto (_res_opcodes)

Modified: trunk/libc/include/rpc/clnt.h
==============================================================================
--- trunk/libc/include/rpc/clnt.h (original)
+++ trunk/libc/include/rpc/clnt.h Tue Aug 19 10:24:09 2008
@@ -21,6 +21,18 @@
 					   struct timeval __wait_resend,
 					   int *__sockp, u_int __sendsz,
 					   u_int __recvsz) attribute_hidden;
+extern CLIENT *__libc_clntudp_bufcreate (struct sockaddr_in *__raddr,
+					 u_long __program, u_long __version,
+					 struct timeval __wait_resend,
+					 int *__sockp, u_int __sendsz,
+					 u_int __recvsz, int __flags);
+extern CLIENT *__libc_clntudp_bufcreate_internal (struct sockaddr_in *__raddr,
+						  u_long __program,
+						  u_long __version,
+						  struct timeval __wait_resend,
+						  int *__sockp, u_int __sendsz,
+						  u_int __recvsz, int __flags)
+  attribute_hidden;
 extern CLIENT *clntunix_create_internal (struct sockaddr_un *__raddr,
 					 u_long __program, u_long __version,
 					 int *__sockp, u_int __sendsz,

Modified: trunk/libc/include/sys/socket.h
==============================================================================
--- trunk/libc/include/sys/socket.h (original)
+++ trunk/libc/include/sys/socket.h Tue Aug 19 10:24:09 2008
@@ -153,4 +153,12 @@
 # define __connect(fd, addr, len) INTUSE(__connect) (fd, addr, len)
 #endif
 
+#ifdef SOCK_CLOEXEC
+extern int __have_sock_cloexec;
+/* At lot of other functionality became available at the same time as
+   SOCK_CLOEXEC.  Avoid defining separate variables for all of them
+   unless it is really necessary.  */
+# define __have_paccept __have_sock_cloexec
 #endif
+
+#endif

Modified: trunk/libc/include/unistd.h
==============================================================================
--- trunk/libc/include/unistd.h (original)
+++ trunk/libc/include/unistd.h Tue Aug 19 10:24:09 2008
@@ -48,6 +48,7 @@
 libc_hidden_proto (__libc_write)
 extern int __pipe (int __pipedes[2]);
 libc_hidden_proto (__pipe)
+extern int __pipe2 (int __pipedes[2], int __flags);
 extern unsigned int __sleep (unsigned int __seconds);
 extern int __chown (__const char *__file,
 		    __uid_t __owner, __gid_t __group);
@@ -165,4 +166,10 @@
 /* Not cancelable variant.  */
 extern int __pause_nocancel (void) attribute_hidden;
 
+extern int __have_sock_cloexec;
+/* At lot of other functionality became available at the same time as
+   SOCK_CLOEXEC.  Avoid defining separate variables for all of them
+   unless it is really necessary.  */
+#define __have_pipe2 __have_sock_cloexec
+
 #endif

Modified: trunk/libc/io/Makefile
==============================================================================
--- trunk/libc/io/Makefile (original)
+++ trunk/libc/io/Makefile Tue Aug 19 10:24:09 2008
@@ -1,4 +1,4 @@
-# Copyright (C) 1992-2002,2003,2005,2006, 2007 Free Software Foundation, Inc.
+# Copyright (C) 1992-2003,2005,2006,2007,2008 Free Software Foundation, Inc.
 # This file is part of the GNU C Library.
 
 # The GNU C Library is free software; you can redistribute it and/or
@@ -42,7 +42,7 @@
 	open open64 openat openat64 close				\
 	read write lseek lseek64 access euidaccess faccessat		\
 	fcntl flock lockf lockf64					\
-	dup dup2 pipe							\
+	dup dup2 dup3 pipe pipe2					\
 	creat creat64							\
 	chdir fchdir							\
 	getcwd getwd getdirname						\

Modified: trunk/libc/io/Versions
==============================================================================
--- trunk/libc/io/Versions (original)
+++ trunk/libc/io/Versions Tue Aug 19 10:24:09 2008
@@ -119,4 +119,7 @@
   GLIBC_2.7 {
     __open_2; __open64_2; __openat_2; __openat64_2;
   }
+  GLIBC_2.9 {
+    dup3; pipe2;
+  }
 }

Modified: trunk/libc/io/ftw.c
==============================================================================
--- trunk/libc/io/ftw.c (original)
+++ trunk/libc/io/ftw.c Tue Aug 19 10:24:09 2008
@@ -1,5 +1,5 @@
 /* File tree walker functions.
-   Copyright (C) 1996-2003, 2004, 2006, 2007 Free Software Foundation, Inc.
+   Copyright (C) 1996-2004, 2006, 2007, 2008 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@xxxxxxxxxx>, 1996.
 
@@ -243,7 +243,7 @@
 }
 
 
-static inline int
+static int
 add_object (struct ftw_data *data, struct STAT *st)
 {
   struct known_object *newp = malloc (sizeof (struct known_object));

Modified: trunk/libc/libio/Makefile
==============================================================================
--- trunk/libc/libio/Makefile (original)
+++ trunk/libc/libio/Makefile Tue Aug 19 10:24:09 2008
@@ -1,4 +1,4 @@
-# Copyright (C) 1995-2002,2003,2004,2006,2007 Free Software Foundation, Inc.
+# Copyright (C) 1995-2004,2006,2007,2008 Free Software Foundation, Inc.
 # This file is part of the GNU C Library.
 
 # The GNU C Library is free software; you can redistribute it and/or
@@ -67,7 +67,7 @@
 	tst-mmap2-eofsync tst-mmap-offend bug-fopena+		\
 	bug-ungetc2 bug-ungetc3 bug-ungetc4			\
 	tst-memstream1 tst-memstream2				\
-	bug-memstream1
+	bug-memstream1 tst-popen1
 tests-$(OPTION_EGLIBC_LOCALE_CODE)				\
      += tst-swscanf tst-fgetws tst-fopenloc tst-setvbuf1	\
 	tst-ungetwc1 tst-ungetwc2 bug-ftell bug-ungetwc2	\

Modified: trunk/libc/libio/fileops.c
==============================================================================
--- trunk/libc/libio/fileops.c (original)
+++ trunk/libc/libio/fileops.c Tue Aug 19 10:24:09 2008
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993, 1995, 1997-2005, 2006, 2007
+/* Copyright (C) 1993, 1995, 1997-2005, 2006, 2007, 2008
    Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Written by Per Bothner <bothner@xxxxxxxxxx>.
@@ -435,9 +435,11 @@
   /* Get the current position of the file. */
   /* We have to do that since that may be junk. */
   fp->_offset = _IO_pos_BAD;
+  int save_errno = errno;
   if (_IO_SEEKOFF (fp, (_IO_off64_t)0, _IO_seek_cur, _IOS_INPUT|_IOS_OUTPUT)
       == _IO_pos_BAD && errno != ESPIPE)
     return NULL;
+  __set_errno (save_errno);
   return fp;
 }
 INTDEF2(_IO_new_file_attach, _IO_file_attach)

Modified: trunk/libc/libio/fmemopen.c
==============================================================================
--- trunk/libc/libio/fmemopen.c (original)
+++ trunk/libc/libio/fmemopen.c Tue Aug 19 10:24:09 2008
@@ -1,7 +1,7 @@
 /* Fmemopen implementation.
-   Copyright (C) 2000, 2002, 2005, 2006 Free Software Foundation, Inc.
+   Copyright (C) 2000, 2002, 2005, 2006, 2008 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
-   Contributed by  Hanno Mueller, kontakt@xxxxxxxx, 2000.
+   Contributed by Hanno Mueller, kontakt@xxxxxxxx, 2000.
 
    The GNU C Library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Lesser General Public
@@ -82,6 +82,7 @@
 {
   char *buffer;
   int mybuffer;
+  int binmode;
   size_t size;
   _IO_off64_t pos;
   size_t maxpos;
@@ -120,7 +121,7 @@
 
   c = (fmemopen_cookie_t *) cookie;
 
-  addnullc = s == 0 || b[s - 1] != '\0';
+  addnullc = c->binmode == 0 && (s == 0 || b[s - 1] != '\0');
 
   if (c->pos + s + addnullc > c->size)
     {
@@ -165,7 +166,7 @@
       break;
 
     case SEEK_END:
-      np = c->maxpos - *p;
+      np = (c->binmode ? c->size : c->maxpos) - *p;
       break;
 
     default:
@@ -248,6 +249,8 @@
   else
     c->pos = 0;
 
+  c->binmode = mode[0] != '\0' && mode[1] == 'b';
+
   iof.read = fmemopen_read;
   iof.write = fmemopen_write;
   iof.seek = fmemopen_seek;

Modified: trunk/libc/libio/iopopen.c
==============================================================================
--- trunk/libc/libio/iopopen.c (original)
+++ trunk/libc/libio/iopopen.c Tue Aug 19 10:24:09 2008
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993, 1997-2002, 2003, 2004, 2007
+/* Copyright (C) 1993, 1997-2002, 2003, 2004, 2007, 2008
    Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Written by Per Bothner <bothner@xxxxxxxxxx>.
@@ -44,6 +44,7 @@
 #endif
 #include <sys/types.h>
 #include <sys/wait.h>
+#include <kernel-features.h>
 
 #ifndef _IO_fork
 #ifdef _LIBC
@@ -55,15 +56,6 @@
 #endif
 
 #endif /* _IO_HAVE_SYS_WAIT */
-
-#ifndef _IO_pipe
-#ifdef _LIBC
-#define _IO_pipe __pipe
-#else
-#define _IO_pipe pipe
-#endif
-extern int _IO_pipe (int des[2]) __THROW;
-#endif
 
 #ifndef _IO_dup2
 #ifdef _LIBC
@@ -127,45 +119,103 @@
      const char *mode;
 {
 #if _IO_HAVE_SYS_WAIT
-  volatile int read_or_write;
-  volatile int parent_end, child_end;
+  int read_or_write;
+  int parent_end, child_end;
   int pipe_fds[2];
   _IO_pid_t child_pid;
+
+  int do_read = 0;
+  int do_write = 0;
+  int do_cloexec = 0;
+  while (*mode != '\0')
+    switch (*mode++)
+      {
+      case 'r':
+	do_read = 1;
+	break;
+      case 'w':
+	do_write = 1;
+	break;
+      case 'e':
+	do_cloexec = 1;
+	break;
+      default:
+      errout:
+	__set_errno (EINVAL);
+	return NULL;
+      }
+
+  if ((do_read ^ do_write) == 0)
+    goto errout;
+
   if (_IO_file_is_open (fp))
     return NULL;
-  if (_IO_pipe (pipe_fds) < 0)
-    return NULL;
-  if (mode[0] == 'r' && mode[1] == '\0')
+
+#ifdef O_CLOEXEC
+# ifndef __ASSUME_PIPE2
+  if (__have_pipe2 >= 0)
+# endif
+    {
+      int r = __pipe2 (pipe_fds, O_CLOEXEC);
+# ifndef __ASSUME_PIPE2
+      if (__have_pipe2 == 0)
+	__have_pipe2 = r != -1 || errno != ENOSYS ? 1 : -1;
+
+      if (__have_pipe2 > 0)
+# endif
+	if (r < 0)
+	  return NULL;
+    }
+#endif
+#ifndef __ASSUME_PIPE2
+# ifdef O_CLOEXEC
+  if (__have_pipe2 < 0)
+# endif
+    if (__pipe (pipe_fds) < 0)
+      return NULL;
+#endif
+
+  if (do_read)
     {
       parent_end = pipe_fds[0];
       child_end = pipe_fds[1];
       read_or_write = _IO_NO_WRITES;
     }
-  else if (mode[0] == 'w' && mode[1] == '\0')
+  else
     {
       parent_end = pipe_fds[1];
       child_end = pipe_fds[0];
       read_or_write = _IO_NO_READS;
     }
-  else
-    {
-      _IO_close (pipe_fds[0]);
-      _IO_close (pipe_fds[1]);
-      __set_errno (EINVAL);
-      return NULL;
-    }
+
   ((_IO_proc_file *) fp)->pid = child_pid = _IO_fork ();
   if (child_pid == 0)
     {
-      int child_std_end = mode[0] == 'r' ? 1 : 0;
+      int child_std_end = do_read ? 1 : 0;
       struct _IO_proc_file *p;
 
+#ifndef __ASSUME_PIPE2
+      /* If we have pipe2 the descriptor is marked for close-on-exec.  */
       _IO_close (parent_end);
+#endif
       if (child_end != child_std_end)
 	{
 	  _IO_dup2 (child_end, child_std_end);
+#ifndef __ASSUME_PIPE2
 	  _IO_close (child_end);
+#endif
 	}
+#ifdef O_CLOEXEC
+      else
+	{
+	  /* The descriptor is already the one we will use.  But it must
+	     not be marked close-on-exec.  Undo the effects.  */
+# ifndef __ASSUME_PIPE2
+	  if (__have_pipe2 > 0)
+# endif
+	    __fcntl (child_end, F_SETFD, 0);
+	}
+#endif
       /* POSIX.2:  "popen() shall ensure that any streams from previous
          popen() calls that remain open in the parent process are closed
 	 in the new child process." */
@@ -189,6 +239,28 @@
       _IO_close (parent_end);
       return NULL;
     }
+
+  if (do_cloexec)
+    {
+#ifndef __ASSUME_PIPE2
+# ifdef O_CLOEXEC
+      if (__have_pipe2 < 0)
+# endif
+	__fcntl (parent_end, F_SETFD, FD_CLOEXEC);
+#endif
+    }
+  else
+    {
+#ifdef O_CLOEXEC
+      /* Undo the effects of the pipe2 call which set the
+	 close-on-exec flag.  */
+# ifndef __ASSUME_PIPE2
+      if (__have_pipe2 > 0)
+# endif
+	__fcntl (parent_end, F_SETFD, 0);
+#endif
+    }
+
   _IO_fileno (fp) = parent_end;
 
   /* Link into proc_file_chain. */

Modified: trunk/libc/libio/iosetvbuf.c
==============================================================================
--- trunk/libc/libio/iosetvbuf.c (original)
+++ trunk/libc/libio/iosetvbuf.c Tue Aug 19 10:24:09 2008
@@ -45,7 +45,7 @@
   switch (mode)
     {
     case _IOFBF:
-      fp->_IO_file_flags &= ~_IO_LINE_BUF|_IO_UNBUFFERED;
+      fp->_IO_file_flags &= ~(_IO_LINE_BUF|_IO_UNBUFFERED);
       if (buf == NULL)
 	{
 	  if (fp->_IO_buf_base == NULL)

Modified: trunk/libc/locale/setlocale.c
==============================================================================
--- trunk/libc/locale/setlocale.c (original)
+++ trunk/libc/locale/setlocale.c Tue Aug 19 10:24:09 2008
@@ -163,7 +163,7 @@
 
 
 /* Put NAME in _nl_global_locale.__names.  */
-static inline void
+static void
 setname (int category, const char *name)
 {
   if (_nl_global_locale.__names[category] == name)
@@ -204,9 +204,16 @@
   if (locale == NULL)
     return (char *) _nl_global_locale.__names[category];
 
+  /* Protect global data.  */
+  __libc_rwlock_wrlock (__libc_setlocale_lock);
+
   if (strcmp (locale, _nl_global_locale.__names[category]) == 0)
-    /* Changing to the same thing.  */
-    return (char *) _nl_global_locale.__names[category];
+    {
+      /* Changing to the same thing.  */
+      __libc_rwlock_unlock (__libc_setlocale_lock);
+
+      return (char *) _nl_global_locale.__names[category];
+    }
 
   /* We perhaps really have to load some data.  So we determine the
      path in which to look for the data now.  The environment variable
@@ -220,12 +227,13 @@
   if (locpath_var != NULL && locpath_var[0] != '\0')
     {
       if (__argz_create_sep (locpath_var, ':',
-			     &locale_path, &locale_path_len) != 0)
-	return NULL;
-
-      if (__argz_add_sep (&locale_path, &locale_path_len,
-			  _nl_default_locale_path, ':') != 0)
-	return NULL;
+			     &locale_path, &locale_path_len) != 0
+	  || __argz_add_sep (&locale_path, &locale_path_len,
+			     _nl_default_locale_path, ':') != 0)
+	{
+	  __libc_rwlock_unlock (__libc_setlocale_lock);
+	  return NULL;
+	}
     }
 
   if (category == LC_ALL)
@@ -260,8 +268,13 @@
 		  break;
 
 	      if (cnt == __LC_LAST)
-		/* Bogus category name.  */
-		ERROR_RETURN;
+		{
+		error_return:
+		  __libc_rwlock_unlock (__libc_setlocale_lock);
+
+		  /* Bogus category name.  */
+		  ERROR_RETURN;
+		}
 
 	      /* Found the category this clause sets.  */
 	      newnames[cnt] = ++cp;
@@ -280,11 +293,8 @@
 	  for (cnt = 0; cnt < __LC_LAST; ++cnt)
 	    if (cnt != LC_ALL && newnames[cnt] == locale)
 	      /* The composite name did not specify all categories.  */
-	      ERROR_RETURN;
-	}
-
-      /* Protect global data.  */
-      __libc_rwlock_wrlock (__libc_setlocale_lock);
+	      goto error_return;
+	}
 
       /* Load the new data for each category.  */
       while (category-- > 0)
@@ -363,9 +373,6 @@
       struct locale_data *newdata = NULL;
       const char *newname[1] = { locale };
 
-      /* Protect global data.  */
-      __libc_rwlock_wrlock (__libc_setlocale_lock);
-
       if (CATEGORY_USED (category))
 	{
 	  /* Only actually load the data if anything will use it.  */

Modified: trunk/libc/localedata/ChangeLog
==============================================================================
--- trunk/libc/localedata/ChangeLog (original)
+++ trunk/libc/localedata/ChangeLog Tue Aug 19 10:24:09 2008
@@ -1,3 +1,14 @@
+2008-07-11  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* locales/iso14651_t1_common: Add Kannada collation support.
+	Patch by Pravin Satpute <psatpute@xxxxxxxxxx>.
+	
+2008-07-08  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	[BZ #6713]
+	* charmaps/UTF-8: Fix U1DBA entry representation.
+	Patch by Colin Watson.
+
 2008-06-27  Ulrich Drepper  <drepper@xxxxxxxxxx>
 
 	* tst-strptime.c (do_test): Add test of %EY.

Modified: trunk/libc/localedata/charmaps/UTF-8
==============================================================================
--- trunk/libc/localedata/charmaps/UTF-8 (original)
+++ trunk/libc/localedata/charmaps/UTF-8 Tue Aug 19 10:24:09 2008
@@ -5961,7 +5961,7 @@
 <U1DB7>     /xe1/xb6/xb7 MODIFIER LETTER SMALL UPSILON
 <U1DB8>     /xe1/xb6/xb8 MODIFIER LETTER SMALL CAPITAL U
 <U1DB9>     /xe1/xb6/xb9 MODIFIER LETTER SMALL V WITH HOOK
-<U1DBA>     /xe1/xb6/xbe MODIFIER LETTER SMALL TURNED V
+<U1DBA>     /xe1/xb6/xba MODIFIER LETTER SMALL TURNED V
 <U1DBB>     /xe1/xb6/xbb MODIFIER LETTER SMALL Z
 <U1DBC>     /xe1/xb6/xbc MODIFIER LETTER SMALL Z WITH RETROFLEX HOOK
 <U1DBD>     /xe1/xb6/xbd MODIFIER LETTER SMALL Z WITH CURL

Modified: trunk/libc/localedata/locales/iso14651_t1_common
==============================================================================
--- trunk/libc/localedata/locales/iso14651_t1_common (original)
+++ trunk/libc/localedata/locales/iso14651_t1_common Tue Aug 19 10:24:09 2008
@@ -64,6 +64,7 @@
 script <GUJARATI>
 script <TELUGU>
 script <GURUMUKHI>
+script <KANNADA>
 
 # Déclaration des symboles internes / Declaration of internal symbols
 #
@@ -816,6 +817,99 @@
 collating-symbol <adak>
 collating-symbol <pa-halant>
 
+#<KANNADA>
+#
+# kvd- denotes vowel modifier
+# km-  denotes matras
+# kvw- denotes vowels
+# <KNKT> denotes Nukta characters
+
+collating-element <kn-sign_ii> from "<U0CBF><U0CD5>"
+collating-element <kn-sign_e> from "<U0CC6><U0CD5>"
+collating-element <kn-sign_o> from "<U0CC6><U0CC2><U0CD5>"
+collating-element <kn-sign1_o> from "<U0CCA><U0CD5>"
+collating-element <kn-sign_shorto> from "<U0CC6><U0CC2>"
+collating-element <kn-sign_ai> from "<U0CC6><U0CD6>"
+
+# defning symbols
+
+collating-symbol <sign-jihvamuliya>
+collating-symbol <sign-upadhmaniya>
+collating-symbol <KNKT>
+collating-symbol <kvw-a>
+collating-symbol <kvw-aa>
+collating-symbol <kvw-i>
+collating-symbol <kvw-ii>
+collating-symbol <kvw-u>
+collating-symbol <kvw-uu>
+collating-symbol <kvw-vocalicr>
+collating-symbol <kvw-vocalicrr>
+collating-symbol <kvw-vocalicl>
+collating-symbol <kvw-vocalicll>
+collating-symbol <kvw-shorte>
+collating-symbol <kvw-e>
+collating-symbol <kvw-ai>
+collating-symbol <kvw-shorto>
+collating-symbol <kvw-o>
+collating-symbol <kvw-au>
+collating-symbol <k-ka>
+collating-symbol <k-kha>
+collating-symbol <k-ga>
+collating-symbol <k-gha>
+collating-symbol <k-nga>
+collating-symbol <k-ca>
+collating-symbol <k-cha>
+collating-symbol <k-ja>
+collating-symbol <k-jha>
+collating-symbol <k-nya>
+collating-symbol <k-tta>
+collating-symbol <k-ttha>
+collating-symbol <k-dda>
+collating-symbol <k-ddha>
+collating-symbol <k-nna>
+collating-symbol <k-ta>
+collating-symbol <k-tha>
+collating-symbol <k-da>
+collating-symbol <k-dha>
+collating-symbol <k-na>
+collating-symbol <k-pa>
+collating-symbol <k-pha>
+collating-symbol <k-ba>
+collating-symbol <k-bha>
+collating-symbol <k-ma>
+collating-symbol <k-ya>
+collating-symbol <k-ra>
+collating-symbol <k-rra>
+collating-symbol <k-la>
+collating-symbol <k-va>
+collating-symbol <k-sha>
+collating-symbol <k-ssa>
+collating-symbol <k-sa>
+collating-symbol <k-ha>
+collating-symbol <k-lla>
+collating-symbol <k-fa>
+collating-symbol <k-avagrah>
+collating-symbol <km-aa>
+collating-symbol <km-i>
+collating-symbol <km-ii>
+collating-symbol <km-u>
+collating-symbol <km-uu>
+collating-symbol <km-vocalicr>
+collating-symbol <km-vocalicrr>
+collating-symbol <km-vocalicl>
+collating-symbol <km-vocalicll>
+collating-symbol <km-shorte>
+collating-symbol <km-e>
+collating-symbol <km-ai>
+collating-symbol <km-shorto>
+collating-symbol <km-o>
+collating-symbol <km-au>
+collating-symbol <kvd-anuswara>
+collating-symbol <kvd-visarg>
+collating-symbol <k-halant>
+collating-symbol <k-lenght_mark>
+collating-symbol <k-ai_lenght_mark>
+
 # Ordre des symboles internes / Order of internal symbols
 #
 # SYMB. N°
@@ -1556,6 +1650,88 @@
 <pavd-visarg>
 <tippi>
 <pa-halant>
+
+#
+# <KANNADA>
+#
+# collation weights in order
+
+<KNKT>
+<sign-jihvamuliya>
+<sign-upadhmaniya>
+<kvw-a>
+<kvw-aa>
+<kvw-i>
+<kvw-ii>
+<kvw-u>
+<kvw-uu>
+<kvw-vocalicr>
+<kvw-vocalicrr>
+<kvw-vocalicl>
+<kvw-vocalicll>
+<kvw-shorte>
+<kvw-e>
+<kvw-ai>
+<kvw-shorto>
+<kvw-o>
+<kvw-au>
+<k-ka>
+<k-kha>
+<k-ga>
+<k-gha>
+<k-nga>
+<k-ca>
+<k-cha>
+<k-ja>
+<k-jha>
+<k-nya>
+<k-tta>
+<k-ttha>
+<k-dda>
+<k-ddha>
+<k-nna>
+<k-ta>
+<k-tha>
+<k-da>
+<k-dha>
+<k-na>
+<k-pa>
+<k-pha>
+<k-ba>
+<k-bha>
+<k-ma>
+<k-ya>
+<k-ra>
+<k-rra>
+<k-la>
+<k-va>
+<k-sha>
+<k-ssa>
+<k-sa>
+<k-ha>
+<k-lla>
+<k-fa>
+<k-avagrah>
+<km-aa>
+<km-i>
+<km-ii>
+<km-u>
+<km-uu>
+<km-vocalicr>
+<km-vocalicrr>
+<km-vocalicl>
+<km-vocalicll>
+<km-shorte>
+<km-e>
+<km-ai>
+<km-shorto>
+<km-o>
+<km-au>
+<kvd-anuswara>
+<kvd-visarg>
+<k-halant>
+<k-lenght_mark>
+<k-ai_lenght_mark>
 
 order_start <SPECIAL>;forward;backward;forward;forward,position
 #
@@ -3698,6 +3874,100 @@
 <U0A3C> IGNORE;<PNKT>;<MIN>;IGNORE
 <U0A71> IGNORE;<adak>;<MIN>;IGNORE
 
+order_start  <KANNADA>;forward;forward;forward;forward,position
+<U0CE6> <0>;"<BAS><NUM>";"<MIN><MIN>";IGNORE
+<U0CE7> <1>;"<BAS><NUM>";"<MIN><MIN>";IGNORE
+<U0CE8> <2>;"<BAS><NUM>";"<MIN><MIN>";IGNORE
+<U0CE9> <3>;"<BAS><NUM>";"<MIN><MIN>";IGNORE
+<U0CEA> <4>;"<BAS><NUM>";"<MIN><MIN>";IGNORE
+<U0CEB> <5>;"<BAS><NUM>";"<MIN><MIN>";IGNORE
+<U0CEC> <6>;"<BAS><NUM>";"<MIN><MIN>";IGNORE
+<U0CED> <7>;"<BAS><NUM>";"<MIN><MIN>";IGNORE
+<U0CEE> <8>;"<BAS><NUM>";"<MIN><MIN>";IGNORE
+<U0CEF> <9>;"<BAS><NUM>";"<MIN><MIN>";IGNORE
+<U0CF1> <sign-jihvamuliya>;<BAS>;<MIN>;IGNORE
+<U0CF2> <sign-upadhmaniya>;<BAS>;<MIN>;IGNORE
+<U0C85> <kvw-a>;<BAS>;<MIN>;IGNORE
+<U0C86> <kvw-aa>;<BAS>;<MIN>;IGNORE
+<U0C87> <kvw-i>;<BAS>;<MIN>;IGNORE
+<U0C88> <kvw-ii>;<BAS>;<MIN>;IGNORE
+<U0C89> <kvw-u>;<BAS>;<MIN>;IGNORE
+<U0C8A> <kvw-uu>;<BAS>;<MIN>;IGNORE
+<U0C8B> <kvw-vocalicr>;<BAS>;<MIN>;IGNORE
+<U0CE0> <kvw-vocalicrr>;<BAS>;<MIN>;IGNORE
+<U0C8C> <kvw-vocalicl>;<BAS>;<MIN>;IGNORE
+<U0CE1> <kvw-vocalicll>;<BAS>;<MIN>;IGNORE
+<U0C8E> <kvw-shorte>;<BAS>;<MIN>;IGNORE
+<U0C8F> <kvw-e>;<BAS>;<MIN>;IGNORE
+<U0C90> <kvw-ai>;<BAS>;<MIN>;IGNORE
+<U0C92> <kvw-shorto>;<BAS>;<MIN>;IGNORE
+<U0C93> <kvw-o>;<BAS>;<MIN>;IGNORE
+<U0C94> <kvw-au>;<BAS>;<MIN>;IGNORE
+<U0C95> <k-ka>;<BAS>;<MIN>;IGNORE
+<U0C96> <k-kha>;<BAS>;<MIN>;IGNORE
+<U0C97> <k-ga>;<BAS>;<MIN>;IGNORE
+<U0C98> <k-gha>;<BAS>;<MIN>;IGNORE
+<U0C99> <k-nga>;<BAS>;<MIN>;IGNORE
+<U0C9A> <k-ca>;<BAS>;<MIN>;IGNORE
+<U0C9B> <k-cha>;<BAS>;<MIN>;IGNORE
+<U0C9C> <k-ja>;<BAS>;<MIN>;IGNORE
+<U0C9D> <k-jha>;<BAS>;<MIN>;IGNORE
+<U0C9E> <k-nya>;<BAS>;<MIN>;IGNORE
+<U0C9F> <k-tta>;<BAS>;<MIN>;IGNORE
+<U0CA0> <k-ttha>;<BAS>;<MIN>;IGNORE
+<U0CA1> <k-dda>;<BAS>;<MIN>;IGNORE
+<U0CA2> <k-ddha>;<BAS>;<MIN>;IGNORE
+<U0CA3> <k-nna>;<BAS>;<MIN>;IGNORE
+<U0CA4> <k-ta>;<BAS>;<MIN>;IGNORE
+<U0CA5> <k-tha>;<BAS>;<MIN>;IGNORE
+<U0CA6> <k-da>;<BAS>;<MIN>;IGNORE
+<U0CA7> <k-dha>;<BAS>;<MIN>;IGNORE
+<U0CA8> <k-na>;<BAS>;<MIN>;IGNORE
+<U0CAA> <k-pa>;<BAS>;<MIN>;IGNORE
+<U0CAB> <k-pha>;<BAS>;<MIN>;IGNORE
+<U0CAC> <k-ba>;<BAS>;<MIN>;IGNORE
+<U0CAD> <k-bha>;<BAS>;<MIN>;IGNORE
+<U0CAE> <k-ma>;<BAS>;<MIN>;IGNORE
+<U0CAF> <k-ya>;<BAS>;<MIN>;IGNORE
+<U0CB0> <k-ra>;<BAS>;<MIN>;IGNORE
+<U0CB1> <k-rra>;<BAS>;<MIN>;IGNORE
+<U0CB2> <k-la>;<BAS>;<MIN>;IGNORE
+<U0CB5> <k-va>;<BAS>;<MIN>;IGNORE
+<U0CB6> <k-sha>;<BAS>;<MIN>;IGNORE
+<U0CB7> <k-ssa>;<BAS>;<MIN>;IGNORE
+<U0CB8> <k-sa>;<BAS>;<MIN>;IGNORE
+<U0CB9> <k-ha>;<BAS>;<MIN>;IGNORE
+<U0CB3> <k-lla>;<BAS>;<MIN>;IGNORE
+<U0CDE> <k-fa>;<BAS>;<MIN>;IGNORE
+<U0CBD> <k-avagrah>;<BAS>;<MIN>;IGNORE
+<U0CBE> <km-aa>;<BAS>;<MIN>;IGNORE
+<U0CBF> <km-i>;<BAS>;<MIN>;IGNORE
+<U0CC0> <km-ii>;<BAS>;<MIN>;IGNORE
+<kn-sign_ii> <km-ii>;<BAS>;<MIN>;IGNORE
+<U0CC1> <km-u>;<BAS>;<MIN>;IGNORE
+<U0CC2> <km-uu>;<BAS>;<MIN>;IGNORE
+<U0CC3> <km-vocalicr>;<BAS>;<MIN>;IGNORE
+<U0CC4> <km-vocalicrr>;<BAS>;<MIN>;IGNORE
+<U0CE2> <km-vocalicl>;<BAS>;<MIN>;IGNORE
+<U0CE3> <km-vocalicll>;<BAS>;<MIN>;IGNORE
+<U0CC6> <km-shorte>;<BAS>;<MIN>;IGNORE
+<U0CC7> <km-e>;<BAS>;<MIN>;IGNORE
+<kn-sign_e> <km-e>;<BAS>;<MIN>;IGNORE
+<U0CC8> <km-ai>;<BAS>;<MIN>;IGNORE
+<kn-sign_ai> <km-ai>;<BAS>;<MIN>;IGNORE
+<U0CCA> <km-shorto>;<BAS>;<MIN>;IGNORE
+<kn-sign_shorto> <km-shorto>;<BAS>;<MIN>;IGNORE
+<U0CCB> <km-o>;<BAS>;<MIN>;IGNORE
+<kn-sign_o> <km-o>;<BAS>;<MIN>;IGNORE
+<kn-sign1_o> <km-o>;<BAS>;<MIN>;IGNORE
+<U0CCC> <km-au>;<BAS>;<MIN>;IGNORE
+<U0C82> <kvd-anuswara>;<BAS>;<MIN>;IGNORE
+<U0C83> <kvd-visarg>;<BAS>;<MIN>;IGNORE
+<U0CCD> <k-halant>;<BAS>;<MIN>;IGNORE
+<U0CD5> <k-lenght_mark>;<BAS>;<MIN>;IGNORE
+<U0CD6> <k-ai_lenght_mark>;<BAS>;<MIN>;IGNORE
+<U0CBC> IGNORE;<KNKT>;<MIN>;IGNORE
+
 order_end
 
 END LC_COLLATE

Modified: trunk/libc/login/utmp_file.c
==============================================================================
--- trunk/libc/login/utmp_file.c (original)
+++ trunk/libc/login/utmp_file.c Tue Aug 19 10:24:09 2008
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2002, 2003, 2004, 2007 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2004, 2007, 2008 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@xxxxxxxxxx>
    and Paul Janzen <pcj@xxxxxxxxxxxx>, 1996.
@@ -22,6 +22,7 @@
 #include <errno.h>
 #include <fcntl.h>
 #include <signal.h>
+#include <stdbool.h>
 #include <stdio.h>
 #include <string.h>
 #include <unistd.h>
@@ -167,10 +168,11 @@
 # ifdef O_CLOEXEC
 	      if (__have_o_cloexec == 0)
 		__have_o_cloexec = (result & FD_CLOEXEC) ? 1 : -1;
+
+	      if (__have_o_cloexec < 0)
 # endif
-
-	      result = fcntl_not_cancel (file_fd, F_SETFD,
-					 result | FD_CLOEXEC);
+		result = fcntl_not_cancel (file_fd, F_SETFD,
+					   result | FD_CLOEXEC);
 	    }
 
 	  if (result == -1)
@@ -243,12 +245,16 @@
 
 
 static int
-internal_getut_r (const struct utmp *id, struct utmp *buffer)
+internal_getut_r (const struct utmp *id, struct utmp *buffer,
+		  bool *lock_failed)
 {
   int result = -1;
 
   LOCK_FILE (file_fd, F_RDLCK)
-    LOCKING_FAILED ();
+    {
+      *lock_failed = true;
+      LOCKING_FAILED ();
+    }
 
 #if _HAVE_UT_TYPE - 0
   if (id->ut_type == RUN_LVL || id->ut_type == BOOT_TIME
@@ -319,7 +325,10 @@
       return -1;
     }
 
-  if (internal_getut_r (id, &last_entry) < 0)
+  /* We don't have to distinguish whether we can lock the file or
+     whether there is no entry.  */
+  bool lock_failed = false;
+  if (internal_getut_r (id, &last_entry, &lock_failed) < 0)
     {
       *result = NULL;
       return -1;
@@ -409,7 +418,16 @@
 	  __utmp_equal (&last_entry, data)))
     found = 1;
   else
-    found = internal_getut_r (data, &buffer);
+    {
+      bool lock_failed = false;
+      found = internal_getut_r (data, &buffer, &lock_failed);
+
+      if (__builtin_expect (lock_failed, false))
+	{
+	  __set_errno (EAGAIN);
+	  return NULL;
+	}
+    }
 
   LOCK_FILE (file_fd, F_WRLCK)
     {

Modified: trunk/libc/malloc/hooks.c
==============================================================================
--- trunk/libc/malloc/hooks.c (original)
+++ trunk/libc/malloc/hooks.c Tue Aug 19 10:24:09 2008
@@ -1,5 +1,5 @@
 /* Malloc implementation for multiple threads without lock contention.
-   Copyright (C) 2001-2006, 2007 Free Software Foundation, Inc.
+   Copyright (C) 2001-2006, 2007, 2008 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Wolfram Gloger <wg@xxxxxxxxx>, 2001.
 
@@ -96,8 +96,6 @@
   __free_hook = free_check;
   __realloc_hook = realloc_check;
   __memalign_hook = memalign_check;
-  if(check_action & 1)
-    malloc_printerr (5, "malloc: using debugging hooks", NULL);
 }
 
 /* A simple, standard set of debugging hooks.  Overhead is `only' one

Modified: trunk/libc/malloc/mtrace.c
==============================================================================
--- trunk/libc/malloc/mtrace.c (original)
+++ trunk/libc/malloc/mtrace.c Tue Aug 19 10:24:09 2008
@@ -1,5 +1,5 @@
 /* More debugging hooks for `malloc'.
-   Copyright (C) 1991-1994,1996-2003, 2004 Free Software Foundation, Inc.
+   Copyright (C) 1991-1994,1996-2004, 2008 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 		 Written April 2, 1991 by John Gilmore of Cygnus Support.
 		 Based on mcheck.c by Mike Haertel.
@@ -34,13 +34,13 @@
 
 #include <stdio-common/_itoa.h>
 
-#ifdef _LIBC
-# include <libc-internal.h>
-
-# include <libio/iolibio.h>
-# define setvbuf(s, b, f, l) INTUSE(_IO_setvbuf) (s, b, f, l)
-# define fwrite(buf, size, count, fp) _IO_fwrite (buf, size, count, fp)
-#endif
+#include <libc-internal.h>
+
+#include <libio/iolibio.h>
+#define setvbuf(s, b, f, l) INTUSE(_IO_setvbuf) (s, b, f, l)
+#define fwrite(buf, size, count, fp) _IO_fwrite (buf, size, count, fp)
+
+#include <kernel-features.h>
 
 #ifndef attribute_hidden
 # define attribute_hidden
@@ -315,9 +315,10 @@
       if (mtb == NULL)
 	return;
 
-      mallstream = fopen (mallfile != NULL ? mallfile : "/dev/null", "wc");
+      mallstream = fopen (mallfile != NULL ? mallfile : "/dev/null", "wce");
       if (mallstream != NULL)
 	{
+#ifndef __ASSUME_O_CLOEXEC
 	  /* Make sure we close the file descriptor on exec.  */
 	  int flags = __fcntl (fileno (mallstream), F_GETFD, 0);
 	  if (flags >= 0)
@@ -325,6 +326,7 @@
 	      flags |= FD_CLOEXEC;
 	      __fcntl (fileno (mallstream), F_SETFD, flags);
 	    }
+#endif
 	  /* Be sure it doesn't malloc its buffer!  */
 	  malloc_trace_buffer = mtb;
 	  setvbuf (mallstream, malloc_trace_buffer, _IOFBF, TRACE_BUFFER_SIZE);

Modified: trunk/libc/manual/arith.texi
==============================================================================
--- trunk/libc/manual/arith.texi (original)
+++ trunk/libc/manual/arith.texi Tue Aug 19 10:24:09 2008
@@ -418,7 +418,7 @@
 This function returns a nonzero value if @var{x} is a ``not a number''
 value, and zero otherwise.
 
-@strong{Note:} The @code{isnan} macro defined by @w{ISO C99} overrides
+@strong{NB:} The @code{isnan} macro defined by @w{ISO C99} overrides
 the BSD function.  This is normally not a problem, because the two
 routines behave identically.  However, if you really need to get the BSD
 function for some reason, you can write
@@ -968,7 +968,7 @@
 bits in the @dfn{control word}.  In C, traps result in the program
 receiving the @code{SIGFPE} signal; see @ref{Signal Handling}.
 
-@strong{Note:} @w{IEEE 754} says that trap handlers are given details of
+@strong{NB:} @w{IEEE 754} says that trap handlers are given details of
 the exceptional situation, and can set the result value.  C signals do
 not provide any mechanism to pass this information back and forth.
 Trapping exceptions in C is therefore not very useful.
@@ -1721,7 +1721,7 @@
 machines that don't, the macros can be very slow.  Therefore, you should
 not use these functions when NaN is not a concern.
 
-@strong{Note:} There are no macros @code{isequal} or @code{isunequal}.
+@strong{NB:} There are no macros @code{isequal} or @code{isunequal}.
 They are unnecessary, because the @code{==} and @code{!=} operators do
 @emph{not} throw an exception if one or both of the operands are NaN.
 

Modified: trunk/libc/manual/creature.texi
==============================================================================
--- trunk/libc/manual/creature.texi (original)
+++ trunk/libc/manual/creature.texi Tue Aug 19 10:24:09 2008
@@ -217,7 +217,7 @@
 
 Note that if you do this, you must link your program with the BSD
 compatibility library by passing the @samp{-lbsd-compat} option to the
-compiler or linker.  @strong{Note:} If you forget to do this, you may
+compiler or linker.  @strong{NB:} If you forget to do this, you may
 get very strange errors at run time.
 @end defvr
 

Modified: trunk/libc/manual/filesys.texi
==============================================================================
--- trunk/libc/manual/filesys.texi (original)
+++ trunk/libc/manual/filesys.texi Tue Aug 19 10:24:09 2008
@@ -3239,7 +3239,7 @@
 file name.  Usually the template string is something like
 @samp{/tmp/@var{prefix}XXXXXX}, and each program uses a unique @var{prefix}.
 
-@strong{Note:} Because @code{mktemp} and @code{mkstemp} modify the
+@strong{NB:} Because @code{mktemp} and @code{mkstemp} modify the
 template string, you @emph{must not} pass string constants to them.
 String constants are normally in read-only storage, so your program
 would crash when @code{mktemp} or @code{mkstemp} tried to modify the

Modified: trunk/libc/manual/math.texi
==============================================================================
--- trunk/libc/manual/math.texi (original)
+++ trunk/libc/manual/math.texi Tue Aug 19 10:24:09 2008
@@ -1366,7 +1366,7 @@
 This function returns the next pseudo-random number in the sequence.
 The value returned ranges from @code{0} to @code{RAND_MAX}.
 
-@strong{Note:} Temporarily this function was defined to return a
+@strong{NB:} Temporarily this function was defined to return a
 @code{int32_t} value to indicate that the return value always contains
 32 bits even if @code{long int} is wider.  The standard demands it
 differently.  Users must always be aware of the 32-bit limitation,

Modified: trunk/libc/manual/memory.texi
==============================================================================
--- trunk/libc/manual/memory.texi (original)
+++ trunk/libc/manual/memory.texi Tue Aug 19 10:24:09 2008
@@ -2326,7 +2326,7 @@
 variable-sized arrays.
 @end itemize
 
-@strong{Note:} If you mix use of @code{alloca} and variable-sized arrays
+@strong{NB:} If you mix use of @code{alloca} and variable-sized arrays
 within one function, exiting a scope in which a variable-sized array was
 declared frees all blocks allocated with @code{alloca} during the
 execution of that scope.

Modified: trunk/libc/manual/resource.texi
==============================================================================
--- trunk/libc/manual/resource.texi (original)
+++ trunk/libc/manual/resource.texi Tue Aug 19 10:24:09 2008
@@ -591,7 +591,7 @@
 for something like I/O, its absolute priority is irrelevant.
 
 @cindex runnable process
-@strong{Note:}  The term ``runnable'' is a synonym for ``ready to run.''
+@strong{NB:}  The term ``runnable'' is a synonym for ``ready to run.''
 
 When two processes are running or ready to run and both have the same
 absolute priority, it's more interesting.  In that case, who gets the
@@ -663,7 +663,7 @@
 its absolute priority when the process isn't getting its entitled share
 and lowers it when the process is exceeding it.
 
-@strong{Note:}  The absolute priority is sometimes called the ``static
+@strong{NB:}  The absolute priority is sometimes called the ``static
 priority.''  We don't use that term in this manual because it misses the
 most important feature of the absolute priority:  its absoluteness.
 

Modified: trunk/libc/manual/syslog.texi
==============================================================================
--- trunk/libc/manual/syslog.texi (original)
+++ trunk/libc/manual/syslog.texi Tue Aug 19 10:24:09 2008
@@ -337,7 +337,7 @@
 
 Results are undefined if the facility code is anything else.
 
-@strong{note:} @code{syslog} recognizes one other facility code: that of
+@strong{NB:} @code{syslog} recognizes one other facility code: that of
 the kernel.  But you can't specify that facility code with these
 functions.  If you try, it looks the same to @code{syslog} as if you are
 requesting the default facility.  But you wouldn't want to anyway,

Modified: trunk/libc/manual/time.texi
==============================================================================
--- trunk/libc/manual/time.texi (original)
+++ trunk/libc/manual/time.texi Tue Aug 19 10:24:09 2008
@@ -1652,7 +1652,7 @@
 
 Leading zeroes are permitted but not required.
 
-@strong{Note:} The Unix specification says the upper bound on this value
+@strong{NB:} The Unix specification says the upper bound on this value
 is @code{61}, a result of a decision to allow double leap seconds.  You
 will not see the value @code{61} because no minute has more than one
 leap second, but the myth persists.

Modified: trunk/libc/misc/syslog.c
==============================================================================
--- trunk/libc/misc/syslog.c (original)
+++ trunk/libc/misc/syslog.c Tue Aug 19 10:24:09 2008
@@ -348,10 +348,35 @@
 			(void)strncpy(SyslogAddr.sun_path, _PATH_LOG,
 				      sizeof(SyslogAddr.sun_path));
 			if (LogStat & LOG_NDELAY) {
-				if ((LogFile = __socket(AF_UNIX, LogType, 0))
-				    == -1)
+#ifdef SOCK_CLOEXEC
+# ifndef __ASSUME_SOCK_CLOEXEC
+				if (__have_sock_cloexec >= 0) {
+# endif
+					LogFile = __socket(AF_UNIX,
+							   LogType
+							   | SOCK_CLOEXEC, 0);
+# ifndef __ASSUME_SOCK_CLOEXEC
+					if (__have_sock_cloexec == 0)
+						__have_sock_cloexec
+						  = (LogFile != -1
+						     || errno != EINVAL);
+				}
+#endif
+#endif
+#ifndef __ASSUME_SOCK_CLOEXEC
+# ifdef SOCK_CLOEXEC
+				if (__have_sock_cloexec < 0)
+# endif
+				  LogFile = __socket(AF_UNIX, LogType, 0);
+#endif
+				if (LogFile == -1)
 					return;
-				(void)__fcntl(LogFile, F_SETFD, 1);
+#ifndef __ASSUME_SOCK_CLOEXEC
+# ifdef SOCK_CLOEXEC
+				if (__have_sock_cloexec < 0)
+# endif
+					__fcntl(LogFile, F_SETFD, FD_CLOEXEC);
+#endif
 			}
 		}
 		if (LogFile != -1 && !connected)

Modified: trunk/libc/nis/ypclnt.c
==============================================================================
--- trunk/libc/nis/ypclnt.c (original)
+++ trunk/libc/nis/ypclnt.c Tue Aug 19 10:24:09 2008
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2001, 2002, 2003, 2004, 2005, 2006
+/* Copyright (C) 1996-2001, 2002, 2003, 2004, 2005, 2006, 2008
    Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Thorsten Kukuk <kukuk@xxxxxxx>, 1996.
@@ -28,6 +28,7 @@
 #include <rpcsvc/yp.h>
 #include <rpcsvc/ypclnt.h>
 #include <rpcsvc/ypupd.h>
+#include <sys/socket.h>
 #include <sys/uio.h>
 #include <bits/libc-lock.h>
 
@@ -69,14 +70,24 @@
   ysd->dom_domain[YPMAXDOMAIN] = '\0';
 
   ysd->dom_socket = RPC_ANYSOCK;
-  ysd->dom_client = clntudp_create (&ysd->dom_server_addr, YPPROG, YPVERS,
-				    UDPTIMEOUT, &ysd->dom_socket);
+#ifdef SOCK_CLOEXEC
+# define xflags SOCK_CLOEXEC
+#else
+# define xflags 0
+#endif
+  ysd->dom_client = __libc_clntudp_bufcreate (&ysd->dom_server_addr, YPPROG,
+					      YPVERS, UDPTIMEOUT,
+					      &ysd->dom_socket,
+					      UDPMSGSIZE, UDPMSGSIZE,
+					      xflags);
 
   if (ysd->dom_client != NULL)
     {
+#ifndef SOCK_CLOEXEC
       /* If the program exits, close the socket */
       if (fcntl (ysd->dom_socket, F_SETFD, FD_CLOEXEC) == -1)
 	perror ("fcntl: F_SETFD");
+#endif
     }
 }
 

Modified: trunk/libc/nptl/ChangeLog
==============================================================================
--- trunk/libc/nptl/ChangeLog (original)
+++ trunk/libc/nptl/ChangeLog Tue Aug 19 10:24:09 2008
@@ -1,3 +1,33 @@
+2008-08-15  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* sysdeps/x86_64/pthreaddef.h: Remove ARCH_MAP_FLAGS and
+	ARCH_RETRY_MMAP definitions.
+	* allocatestack.c: Remove definition of ARCH_MAP_FLAGS.
+	Define MAP_STACK when not defined.
+	(allocate_stack): Use MAP_STACK instead of ARCH_MAP_FLAGS.  Remove
+	handling of ARCH_RETRY_MMAP.
+
+2008-07-30  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* tst-align2.c (f): Print message that f is reached.
+
+2008-04-28  Hiroki Kaminaga  <kaminaga@xxxxxxxxxxxxx>
+
+	[BZ #6740]
+	* sysdeps/powerpc/tcb-offsets.sym (PRIVATE_FUTEX_OFFSET): Guard symbol
+	definition with #ifndef __ASSUME_PRIVATE_FUTEX.
+
+2008-07-25  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/mq_notify.c (init_mq_netlink): Use
+	SOCK_CLOEXEC if possible.
+
+2008-05-29  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* Makefile (tests): Add tst-rwlock2a.
+	* tst-rwlock2.c: Use TYPE macro to decide what rwlock type to use.
+	* tst-rwlock2a.c: New file.
+
 2008-06-12  Ulrich Drepper  <drepper@xxxxxxxxxx>
 
 	* sysdeps/pthread/pthread.h: Remove inadvertant checkin.
@@ -76,7 +106,7 @@
 
 2008-03-27  Ulrich Drepper  <drepper@xxxxxxxxxx>
 
-	* sysdeps/unix/sysv/linux/bits/local_lim.h: Undefined ARG_MAX if
+	* sysdeps/unix/sysv/linux/bits/local_lim.h: Undefine ARG_MAX if
 	<linux/limits.h> has defined it.
 	* sysdeps/unix/sysv/linux/alpha/bits/local_lim.h: Likewise.
 	* sysdeps/unix/sysv/linux/ia64/bits/local_lim.h: Likewise.

Modified: trunk/libc/nptl/allocatestack.c
==============================================================================
--- trunk/libc/nptl/allocatestack.c (original)
+++ trunk/libc/nptl/allocatestack.c Tue Aug 19 10:24:09 2008
@@ -84,10 +84,10 @@
 #endif
 
 
-/* Let the architecture add some flags to the mmap() call used to
-   allocate stacks.  */
-#ifndef ARCH_MAP_FLAGS
-# define ARCH_MAP_FLAGS 0
+/* Newer kernels have the MAP_STACK flag to indicate a mapping is used for
+   a stack.  Use it when possible.  */
+#ifndef MAP_STACK
+# define MAP_STACK 0
 #endif
 
 /* This yields the pointer that TLS support code calls the thread pointer.  */
@@ -454,20 +454,14 @@
 #endif
 
 	  mem = mmap (NULL, size, prot,
-		      MAP_PRIVATE | MAP_ANONYMOUS | ARCH_MAP_FLAGS, -1, 0);
+		      MAP_PRIVATE | MAP_ANONYMOUS | MAP_STACK, -1, 0);
 
 	  if (__builtin_expect (mem == MAP_FAILED, 0))
 	    {
-#ifdef ARCH_RETRY_MMAP
-	      mem = ARCH_RETRY_MMAP (size, prot);
-	      if (__builtin_expect (mem == MAP_FAILED, 0))
-#endif
-		{
-		  if (errno == ENOMEM)
-		    errno = EAGAIN;
-
-		  return errno;
-		}
+	      if (errno == ENOMEM)
+		__set_errno (EAGAIN);
+
+	       return errno;
 	    }
 
 	  /* SIZE is guaranteed to be greater than zero.

Modified: trunk/libc/nptl/sysdeps/powerpc/tcb-offsets.sym
==============================================================================
--- trunk/libc/nptl/sysdeps/powerpc/tcb-offsets.sym (original)
+++ trunk/libc/nptl/sysdeps/powerpc/tcb-offsets.sym Tue Aug 19 10:24:09 2008
@@ -15,4 +15,6 @@
 PID				thread_offsetof (pid)
 TID				thread_offsetof (tid)
 POINTER_GUARD			(offsetof (tcbhead_t, pointer_guard) - TLS_TCB_OFFSET - sizeof (tcbhead_t))
+#ifndef __ASSUME_PRIVATE_FUTEX
 PRIVATE_FUTEX_OFFSET		thread_offsetof (header.private_futex)
+#endif

Modified: trunk/libc/nptl/sysdeps/unix/sysv/linux/mq_notify.c
==============================================================================
--- trunk/libc/nptl/sysdeps/unix/sysv/linux/mq_notify.c (original)
+++ trunk/libc/nptl/sysdeps/unix/sysv/linux/mq_notify.c Tue Aug 19 10:24:09 2008
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004, 2005 Free Software Foundation, Inc.
+/* Copyright (C) 2004, 2005, 2008 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contribute by Ulrich Drepper <drepper@xxxxxxxxxx>, 2004.
 
@@ -29,6 +29,7 @@
 #include <unistd.h>
 #include <sys/socket.h>
 #include <not-cancel.h>
+#include <kernel-features.h>
 
 
 #ifdef __NR_mq_notify
@@ -152,18 +153,40 @@
 static void
 init_mq_netlink (void)
 {
+#ifdef SOCK_CLOEXEC
+# ifndef __ASSUME_SOCK_CLOEXEC
+  static int have_sock_cloexec;
+# else
+#  define have_sock_cloexec 1
+# endif
+#else
+# define have_sock_cloexec -1
+# define SOCK_CLOEXEC 0
+#endif
+
   /* This code might be called a second time after fork().  The file
      descriptor is inherited from the parent.  */
   if (netlink_socket == -1)
     {
       /* Just a normal netlink socket, not bound.  */
-      netlink_socket = socket (AF_NETLINK, SOCK_RAW, 0);
+      if (have_sock_cloexec >= 0)
+	{
+	  netlink_socket = socket (AF_NETLINK, SOCK_RAW | SOCK_CLOEXEC, 0);
+#if defined SOCK_CLOEXEC && !defined __ASSUME_SOCK_CLOEXEC
+	  if (have_sock_cloexec == 0)
+	    have_sock_cloexec = (netlink_socket != -1 || errno != EINVAL
+				 ? 1 : -1);
+#endif
+	}
+      if (have_sock_cloexec < 0)
+	netlink_socket = socket (AF_NETLINK, SOCK_RAW, 0);
       /* No need to do more if we have no socket.  */
       if (netlink_socket == -1)
 	return;
 
       /* Make sure the descriptor is closed on exec.  */
-      if (fcntl (netlink_socket, F_SETFD, FD_CLOEXEC) != 0)
+      if (have_sock_cloexec < 0

[... 6670 lines stripped ...]