[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...
- To: commits@xxxxxxxxxx
- Subject: [commits] r6785 - in /trunk: libc/ libc/elf/ libc/hurd/ libc/hurd/hurd/ libc/include/ libc/include/arpa/ libc/include/rpc/ libc/includ...
- From: joseph@xxxxxxxxxx
- Date: Tue, 19 Aug 2008 17:24:10 -0000
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 ...]