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

[commits] r12756 - in /branches/eglibc-2_11: libc/ libc/elf/ libc/include/ libc/io/ libc/malloc/ libc/nptl/ libc/nscd/ libc/nss/nss_fi...



Author: joseph
Date: Fri Feb  4 14:35:44 2011
New Revision: 12756

Log:
Merge changes between r12230 and r12755 from /fsf/glibc-2_11-branch.

Added:
    branches/eglibc-2_11/libc/stdio-common/tst-grouping.c
      - copied unchanged from r12755, fsf/glibc-2_11-branch/libc/stdio-common/tst-grouping.c
Modified:
    branches/eglibc-2_11/libc/ChangeLog
    branches/eglibc-2_11/libc/elf/dl-dst.h
    branches/eglibc-2_11/libc/elf/dl-runtime.c
    branches/eglibc-2_11/libc/include/alloca.h
    branches/eglibc-2_11/libc/include/atomic.h
    branches/eglibc-2_11/libc/io/fcntl.h
    branches/eglibc-2_11/libc/malloc/malloc.c
    branches/eglibc-2_11/libc/nptl/ChangeLog
    branches/eglibc-2_11/libc/nptl/Versions
    branches/eglibc-2_11/libc/nptl/alloca_cutoff.c
    branches/eglibc-2_11/libc/nscd/hstcache.c
    branches/eglibc-2_11/libc/nss/nss_files/files-hosts.c
    branches/eglibc-2_11/libc/posix/regexec.c
    branches/eglibc-2_11/libc/resolv/nss_dns/dns-host.c
    branches/eglibc-2_11/libc/shadow/sgetspent.c
    branches/eglibc-2_11/libc/stdio-common/Makefile
    branches/eglibc-2_11/libc/stdio-common/printf_fp.c
    branches/eglibc-2_11/libc/stdlib/msort.c
    branches/eglibc-2_11/libc/string/bits/string3.h
    branches/eglibc-2_11/libc/sysdeps/i386/Makefile
    branches/eglibc-2_11/libc/sysdeps/i386/fpu/libm-test-ulps
    branches/eglibc-2_11/libc/sysdeps/posix/getaddrinfo.c
    branches/eglibc-2_11/libc/sysdeps/unix/readdir_r.c
    branches/eglibc-2_11/libc/sysdeps/unix/sysv/linux/bits/socket.h
    branches/eglibc-2_11/libc/sysdeps/unix/sysv/linux/i386/bits/mman.h
    branches/eglibc-2_11/libc/sysdeps/unix/sysv/linux/ia64/bits/mman.h
    branches/eglibc-2_11/libc/sysdeps/unix/sysv/linux/mkdirat.c
    branches/eglibc-2_11/libc/sysdeps/unix/sysv/linux/powerpc/bits/mman.h
    branches/eglibc-2_11/libc/sysdeps/unix/sysv/linux/s390/bits/mman.h
    branches/eglibc-2_11/libc/sysdeps/unix/sysv/linux/sh/bits/mman.h
    branches/eglibc-2_11/libc/sysdeps/unix/sysv/linux/sparc/bits/mman.h
    branches/eglibc-2_11/libc/sysdeps/unix/sysv/linux/sparc/bits/socket.h
    branches/eglibc-2_11/libc/sysdeps/unix/sysv/linux/sparc/sparc64/fxstat.c
    branches/eglibc-2_11/libc/sysdeps/unix/sysv/linux/wordsize-64/readdir_r.c
    branches/eglibc-2_11/libc/sysdeps/unix/sysv/linux/x86_64/bits/mman.h
    branches/eglibc-2_11/libc/wcsmbs/bits/wchar2.h
    branches/eglibc-2_11/libc/wcsmbs/wchar.h
    branches/eglibc-2_11/ports/ChangeLog.arm
    branches/eglibc-2_11/ports/ChangeLog.m68k
    branches/eglibc-2_11/ports/ChangeLog.mips
    branches/eglibc-2_11/ports/sysdeps/unix/sysv/linux/arm/bits/mman.h
    branches/eglibc-2_11/ports/sysdeps/unix/sysv/linux/m68k/bits/mman.h
    branches/eglibc-2_11/ports/sysdeps/unix/sysv/linux/mips/bits/mman.h
    branches/eglibc-2_11/ports/sysdeps/unix/sysv/linux/mips/bits/socket.h

Modified: branches/eglibc-2_11/libc/ChangeLog
==============================================================================
--- branches/eglibc-2_11/libc/ChangeLog (original)
+++ branches/eglibc-2_11/libc/ChangeLog Fri Feb  4 14:35:44 2011
@@ -1,3 +1,131 @@
+2011-02-02  Ulrich Drepper  <drepper@xxxxxxxxx>
+
+	* elf/dl-runtime.c (_dl_call_pltexit): Pass correct address of the
+	function to the callback.
+	Patch partly by Jiri Olsa <jolsa@xxxxxxxxxx>.
+
+2011-02-02  Andreas Schwab  <schwab@xxxxxxxxxx>
+
+	* shadow/sgetspent.c: Check return value of __sgetspent_r instead
+	of errno.
+
+2010-10-01  Andreas Schwab  <schwab@xxxxxxxxxx>
+
+	* sysdeps/posix/getaddrinfo.c (gaih_inet): Don't discard result of
+	decoding ACE if AI_CANONIDN.
+
+2011-01-17  Ulrich Drepper  <drepper@xxxxxxxxx>
+
+	* io/fcntl.h: Define AT_NO_AUTOMOUNT.
+
+	* sysdeps/unix/sysv/linux/i386/bits/mman.h: Define MADV_HUGEPAGE and
+	MADV_NOHUGEPAGE.
+	* sysdeps/unix/sysv/linux/ia64/bits/mman.h: Likewise.
+	* sysdeps/unix/sysv/linux/powerpc/bits/mman.h: Likewise.
+	* sysdeps/unix/sysv/linux/s390/bits/mman.h: Likewise.
+	* sysdeps/unix/sysv/linux/sh/bits/mman.h: Likewise.
+	* sysdeps/unix/sysv/linux/sparc/bits/mman.h: Likewise.
+	* sysdeps/unix/sysv/linux/x86_64/bits/mman.h: Likewise.
+
+	* sysdeps/unix/sysv/linux/bits/socket.h: Define AF_CAIF, AF_ALG,
+	PF_CAIF, and PF_ALG.
+	* sysdeps/unix/sysv/linux/sparc/bits/socket.h: Likewise.
+
+2011-01-15  Ulrich Drepper  <drepper@xxxxxxxxx>
+
+	[BZ #6812]
+	* nscd/hstcache.c (tryagain): Define.
+	(cache_addhst): Return tryagain not notfound for temporary errors.
+	(addhstbyX): Also set h_errno to TRY_AGAIN when memory allocation
+	failed.
+
+2011-01-13  Ulrich Drepper  <drepper@xxxxxxxxx>
+
+	[BZ #12397]
+	* sysdeps/unix/sysv/linux/mkdirat.c (mkdirat): Fix handling of missing
+	syscall.
+
+	[BZ #10484]
+	* nss/nss_files/files-hosts.c (HOST_DB_LOOKUP): Handle overflows of
+	temporary buffer used to handle multi lookups locally.
+	* include/alloca.h: Add libc_hidden_proto for __libc_alloca_cutoff.
+
+2011-01-12  Ulrich Drepper  <drepper@xxxxxxxxx>
+
+	* elf/dl-dst.h (DL_DST_REQUIRED): Allow l_origin to be NULL when
+	loader is ld.so.
+
+2010-03-12  Andreas Schwab  <schwab@xxxxxxxxxx>
+
+	* elf/dl-dst.h: Include "trusted-dirs.h".
+	(DL_DST_REQUIRED): Take $LIB into account.
+
+2011-01-10  Paul Pluzhnikov  <ppluzhnikov@xxxxxxxxxx>
+
+	* sysdeps/i386/Makefile: stdlib/cxa_finalize.c needs 16-byte stack
+	alignment for SSE2.
+
+2011-01-12  Ulrich Drepper  <drepper@xxxxxxxxx>
+
+	[BZ #12394]
+	* stdio-common/printf_fp.c (__printf_fp): Add more room for grouping
+	characters.  When rounding increased number of integer digits recompute
+	number of groups.
+	* stdio-common/tst-grouping.c: New file.
+	* stdio-common/Makefile: Add rules to build and run tst-grouping.
+
+2011-01-04  David S. Miller  <davem@xxxxxxxxxxxxxxxxxxxx>
+
+	[BZ #11155]
+	* sysdeps/unix/sysv/linux/sparc/sparc64/fxstat.c: Use i386's
+	implementation just like for lxstat, fxstatat, et al.
+
+2010-12-27  Jim Meyering  <meyering@xxxxxxxxxx>
+
+	[BZ #12348]
+	* posix/regexec.c (build_trtable): Return failure indication upon
+	calloc failure.  Otherwise, re_search_internal could infloop on OOM.
+
+2010-12-25  Ulrich Drepper  <drepper@xxxxxxxxx>
+
+	[BZ #12207]
+	* malloc/malloc.c (do_check_malloc_state): Use fastbin macro.
+
+2010-12-19  Ulrich Drepper  <drepper@xxxxxxxxx>
+
+	* sysdeps/unix/readdir_r.c (__READDIR_R): Compute reclen more
+	accurately.
+	* sysdeps/unix/sysv/linux/wordsize-64/readdir_r.c: Define
+	GETDENTS_64BIT_ALIGNED.
+
+2010-12-10  Andreas Schwab  <schwab@xxxxxxxxxx>
+
+	* wcsmbs/wchar.h (wcpcpy, wcpncpy): Add __restrict.
+	* wcsmbs/bits/wchar2.h (__wmemmove_chk_warn, wmemmove, wmemset):
+	Remove __restrict.
+	(wcscpy, __wcpcpy_chk, __wcpcpy_alias, wcpcpy, wcsncpy, wcpncpy)
+	(wcscat, wcsncat, __wcrtomb_chk, wcrtomb): Add __restrict.
+
+2010-12-09  Ulrich Drepper  <drepper@xxxxxxxxx>
+
+	[BZ #11655]
+	* stdlib/msort.c (qsort_r): Make sure both phys_pages and pagesize
+	are initialized.
+
+2010-12-09  Jakub Jelinek  <jakub@xxxxxxxxxx>
+
+	* string/bits/string3.h (memmove, bcopy): Remove __restrict.
+
+2010-11-30  Ulrich Drepper  <drepper@xxxxxxxxx>
+
+	* sysdeps/i386/fpu/libm-test-ulps: Relax ynf(10,0.75) test expectations.
+
+2010-11-24  Andreas Schwab  <schwab@xxxxxxxxxx>
+
+	* resolv/nss_dns/dns-host.c (getanswer_r): Don't handle ttl == 0
+	specially.
+	(gaih_getanswer_slice): Likewise.
+
 2010-05-31  Petr Baudis  <pasky@xxxxxxx>
 
 	[BZ #11149]

Modified: branches/eglibc-2_11/libc/elf/dl-dst.h
==============================================================================
--- branches/eglibc-2_11/libc/elf/dl-dst.h (original)
+++ branches/eglibc-2_11/libc/elf/dl-dst.h Fri Feb  4 14:35:44 2011
@@ -1,6 +1,5 @@
 /* Handling of dynamic sring tokens.
-   Copyright (C) 1999,2001,2002,2003,2004,2006,2007
-   Free Software Foundation, Inc.
+   Copyright (C) 1999,2001-2004,2006,2007,2011 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
@@ -18,6 +17,8 @@
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
+#include "trusted-dirs.h"
+
 /* Determine the number of DST elements in the name.  Only if IS_PATH is
    nonzero paths are recognized (i.e., multiple, ':' separated filenames).  */
 #define DL_DST_COUNT(name, is_path) \
@@ -31,6 +32,11 @@
     __cnt; })
 
 
+#ifdef SHARED
+# define IS_RTLD(l) (l) == &GL(dl_rtld_map)
+#else
+# define IS_RTLD(l) 0
+#endif
 /* Guess from the number of DSTs the length of the result string.  */
 #define DL_DST_REQUIRED(l, name, len, cnt) \
   ({									      \
@@ -39,28 +45,32 @@
 									      \
     if (__cnt > 0)							      \
       {									      \
-	size_t origin_len;						      \
+	size_t dst_len;							      \
 	/* Now we make a guess how many extra characters on top of the	      \
 	   length of S we need to represent the result.  We know that	      \
 	   we have CNT replacements.  Each at most can use		      \
-	     MAX (strlen (ORIGIN), strlen (_dl_platform))		      \
-	   minus 7 (which is the length of "$ORIGIN").			      \
+	     MAX (MAX (strlen (ORIGIN), strlen (_dl_platform)),		      \
+		  strlen (DL_DST_LIB))					      \
+	   minus 4 (which is the length of "$LIB").			      \
 									      \
 	   First get the origin string if it is not available yet.	      \
-	   This can only happen for the map of the executable.  */	      \
+	   This can only happen for the map of the executable or, when	      \
+	   auditing, in ld.so.  */					      \
 	DL_DST_REQ_STATIC (l)						      \
 	if ((l)->l_origin == NULL)					      \
 	  {								      \
-	    assert ((l)->l_name[0] == '\0');				      \
+	    assert ((l)->l_name[0] == '\0' || IS_RTLD (l));		      \
 	    (l)->l_origin = _dl_get_origin ();				      \
-	    origin_len = ((l)->l_origin && (l)->l_origin != (char *) -1	      \
+	    dst_len = ((l)->l_origin && (l)->l_origin != (char *) -1	      \
 			  ? strlen ((l)->l_origin) : 0);		      \
 	  }								      \
 	else								      \
-	  origin_len = (l)->l_origin == (char *) -1			      \
+	  dst_len = (l)->l_origin == (char *) -1			      \
 	    ? 0 : strlen ((l)->l_origin);				      \
-									      \
-	__len += __cnt * (MAX (origin_len, GLRO(dl_platformlen)) - 7);	      \
+	dst_len = MAX (MAX (dst_len, GLRO(dl_platformlen)),		      \
+		       strlen (DL_DST_LIB));				      \
+	if (dst_len > 4)						      \
+	  __len += __cnt * (dst_len - 4);				      \
       }									      \
 									      \
     __len; })
@@ -72,7 +82,7 @@
   if ((l) == NULL)							      \
     {									      \
       const char *origin = _dl_get_origin ();				      \
-      origin_len = (origin && origin != (char *) -1 ? strlen (origin) : 0);   \
+      dst_len = (origin && origin != (char *) -1 ? strlen (origin) : 0);      \
     }									      \
   else
 #endif

Modified: branches/eglibc-2_11/libc/elf/dl-runtime.c
==============================================================================
--- branches/eglibc-2_11/libc/elf/dl-runtime.c (original)
+++ branches/eglibc-2_11/libc/elf/dl-runtime.c Fri Feb  4 14:35:44 2011
@@ -1,5 +1,5 @@
 /* On-demand PLT fixup for shared objects.
-   Copyright (C) 1995-2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 1995-2009, 2010, 2011 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
@@ -446,6 +446,7 @@
 
   /* Set up the sym parameter.  */
   ElfW(Sym) sym = *defsym;
+  sym.st_value = DL_FIXUP_VALUE_ADDR (reloc_result->addr);
 
   /* Get the symbol name.  */
   const char *strtab = (const void *) D_PTR (reloc_result->bound,

Modified: branches/eglibc-2_11/libc/include/alloca.h
==============================================================================
--- branches/eglibc-2_11/libc/include/alloca.h (original)
+++ branches/eglibc-2_11/libc/include/alloca.h Fri Feb  4 14:35:44 2011
@@ -14,6 +14,7 @@
 
 extern int __libc_use_alloca (size_t size) __attribute__ ((const));
 extern int __libc_alloca_cutoff (size_t size) __attribute__ ((const));
+libc_hidden_proto (__libc_alloca_cutoff)
 
 #define __MAX_ALLOCA_CUTOFF	65536
 

Modified: branches/eglibc-2_11/libc/include/atomic.h
==============================================================================
--- branches/eglibc-2_11/libc/include/atomic.h (original)
+++ branches/eglibc-2_11/libc/include/atomic.h Fri Feb  4 14:35:44 2011
@@ -33,7 +33,7 @@
      the multi-thread case.  The interfaces have the prefix
      "catomic_".
 
-   - support functions like barriers.  They also have the preifx
+   - support functions like barriers.  They also have the prefix
      "atomic_".
 
    Architectures must provide a few lowlevel macros (the compare

Modified: branches/eglibc-2_11/libc/io/fcntl.h
==============================================================================
--- branches/eglibc-2_11/libc/io/fcntl.h (original)
+++ branches/eglibc-2_11/libc/io/fcntl.h Fri Feb  4 14:35:44 2011
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991,1992,1994-2001,2003,2004,2005,2006,2007, 2009
+/* Copyright (C) 1991,1992,1994-2001,2003,2004,2005,2006,2007,2009,2010,2011
 	Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -64,6 +64,8 @@
 # define AT_REMOVEDIR		0x200	/* Remove directory instead of
 					   unlinking file.  */
 # define AT_SYMLINK_FOLLOW	0x400	/* Follow symbolic links.  */
+# define AT_NO_AUTOMOUNT	0x800	/* Suppress terminal automount
+					   traversal.  */
 # define AT_EACCESS		0x200	/* Test access permitted for
 					   effective IDs, not real IDs.  */
 #endif

Modified: branches/eglibc-2_11/libc/malloc/malloc.c
==============================================================================
--- branches/eglibc-2_11/libc/malloc/malloc.c (original)
+++ branches/eglibc-2_11/libc/malloc/malloc.c Fri Feb  4 14:35:44 2011
@@ -2832,7 +2832,7 @@
   max_fast_bin = fastbin_index(get_max_fast ());
 
   for (i = 0; i < NFASTBINS; ++i) {
-    p = av->fastbins[i];
+    p = fastbin (av, i);
 
     /* The following test can only be performed for the main arena.
        While mallopt calls malloc_consolidate to get rid of all fast

Modified: branches/eglibc-2_11/libc/nptl/ChangeLog
==============================================================================
--- branches/eglibc-2_11/libc/nptl/ChangeLog (original)
+++ branches/eglibc-2_11/libc/nptl/ChangeLog Fri Feb  4 14:35:44 2011
@@ -1,3 +1,9 @@
+2011-01-13  Ulrich Drepper  <drepper@xxxxxxxxx>
+
+	[BZ #10484]
+	* Versions [libc] (GLIBC_PRIVATE): Export __libc_alloca_cutoff.
+	* alloca_cutoff.c: Add libc_hidden_def.
+
 2010-08-12  H.J. Lu  <hongjiu.lu@xxxxxxxxx>
 
 	* nptl/sysdeps/unix/sysv/linux/i386/Makefile: New file.

Modified: branches/eglibc-2_11/libc/nptl/Versions
==============================================================================
--- branches/eglibc-2_11/libc/nptl/Versions (original)
+++ branches/eglibc-2_11/libc/nptl/Versions Fri Feb  4 14:35:44 2011
@@ -27,6 +27,7 @@
     pthread_cond_broadcast; pthread_cond_timedwait;
   }
   GLIBC_PRIVATE {
+    __libc_alloca_cutoff;
     # Internal libc interface to libpthread
     __libc_dl_error_tsd;
   }

Modified: branches/eglibc-2_11/libc/nptl/alloca_cutoff.c
==============================================================================
--- branches/eglibc-2_11/libc/nptl/alloca_cutoff.c (original)
+++ branches/eglibc-2_11/libc/nptl/alloca_cutoff.c Fri Feb  4 14:35:44 2011
@@ -1,5 +1,5 @@
 /* Determine whether block of given size can be allocated on the stack or not.
-   Copyright (C) 2002 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2011 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
@@ -34,3 +34,4 @@
 			  assume the maximum available stack space.  */
 		       ?: __MAX_ALLOCA_CUTOFF * 4));
 }
+libc_hidden_def (__libc_alloca_cutoff)

Modified: branches/eglibc-2_11/libc/nscd/hstcache.c
==============================================================================
--- branches/eglibc-2_11/libc/nscd/hstcache.c (original)
+++ branches/eglibc-2_11/libc/nscd/hstcache.c Fri Feb  4 14:35:44 2011
@@ -1,5 +1,5 @@
 /* Cache handling for host lookup.
-   Copyright (C) 1998-2008, 2009 Free Software Foundation, Inc.
+   Copyright (C) 1998-2008, 2009, 2011 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@xxxxxxxxxx>, 1998.
 
@@ -77,6 +77,20 @@
 };
 
 
+/* This is the standard reply in case there are temporary problems.  */
+static const hst_response_header tryagain =
+{
+  .version = NSCD_VERSION,
+  .found = 0,
+  .h_name_len = 0,
+  .h_aliases_cnt = 0,
+  .h_addrtype = -1,
+  .h_length = -1,
+  .h_addr_list_cnt = 0,
+  .error = TRY_AGAIN
+};
+
+
 static void
 cache_addhst (struct database_dyn *db, int fd, request_header *req,
 	      const void *key, struct hostent *hst, uid_t owner,
@@ -111,11 +125,15 @@
       else
 	{
 	  /* We have no data.  This means we send the standard reply for this
-	     case.  */
+	     case.  Possibly this is only temporary.  */
 	  ssize_t total = sizeof (notfound);
+	  assert (sizeof (notfound) == sizeof (tryagain));
+
+	  const hst_response_header *resp = (errval == EAGAIN
+					     ? &tryagain : &notfound);
 
 	  if (fd != -1 &&
-	      TEMP_FAILURE_RETRY (send (fd, &notfound, total,
+	      TEMP_FAILURE_RETRY (send (fd, resp, total,
 					MSG_NOSIGNAL)) != total)
 	    all_written = false;
 
@@ -135,7 +153,7 @@
 					   ? db->negtimeout : ttl);
 
 	      /* This is the reply.  */
-	      memcpy (&dataset->resp, &notfound, total);
+	      memcpy (&dataset->resp, resp, total);
 
 	      /* Copy the key data.  */
 	      memcpy (dataset->strdata, key, req->key_len);
@@ -490,6 +508,7 @@
 	      /* We set the error to indicate this is (possibly) a
 		 temporary error and that it does not mean the entry
 		 is not available at all.  */
+	      h_errno = TRY_AGAIN;
 	      errval = EAGAIN;
 	      break;
 	    }

Modified: branches/eglibc-2_11/libc/nss/nss_files/files-hosts.c
==============================================================================
--- branches/eglibc-2_11/libc/nss/nss_files/files-hosts.c (original)
+++ branches/eglibc-2_11/libc/nss/nss_files/files-hosts.c Fri Feb  4 14:35:44 2011
@@ -1,5 +1,5 @@
 /* Hosts file parser in nss_files module.
-   Copyright (C) 1996-2001, 2003-2008, 2009 Free Software Foundation, Inc.
+   Copyright (C) 1996-2001, 2003-2009, 2011 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
@@ -129,19 +129,22 @@
 	  && _res_hconf.flags & HCONF_FLAG_MULTI)			      \
 	{								      \
 	  /* We have to get all host entries from the file.  */		      \
-	  const size_t tmp_buflen = MIN (buflen, 4096);			      \
-	  char tmp_buffer[tmp_buflen]					      \
+	  size_t tmp_buflen = MIN (buflen, 4096);			      \
+	  char tmp_buffer_stack[tmp_buflen]				      \
 	    __attribute__ ((__aligned__ (__alignof__ (struct hostent_data))));\
+	  char *tmp_buffer = tmp_buffer_stack;				      \
 	  struct hostent tmp_result_buf;				      \
 	  int naddrs = 1;						      \
 	  int naliases = 0;						      \
 	  char *bufferend;						      \
+	  bool tmp_buffer_malloced = false;				      \
 									      \
 	  while (result->h_aliases[naliases] != NULL)			      \
 	    ++naliases;							      \
 									      \
 	  bufferend = (char *) &result->h_aliases[naliases + 1];	      \
 									      \
+	again:								      \
 	  while ((status = internal_getent (&tmp_result_buf, tmp_buffer,      \
 					    tmp_buflen, errnop H_ERRNO_ARG    \
 					    EXTRA_ARGS_VALUE))		      \
@@ -182,7 +185,7 @@
 		    }							      \
 		  /* If the real name is different add it also to the	      \
 		     aliases.  This means that there is a duplication	      \
-		     in the alias list but this is really the users	      \
+		     in the alias list but this is really the user's	      \
 		     problem.  */					      \
 		  if (strcmp (old_result->h_name,			      \
 			      tmp_result_buf.h_name) != 0)		      \
@@ -204,7 +207,7 @@
 		      *errnop = ERANGE;					      \
 		      *herrnop = NETDB_INTERNAL;			      \
 		      status = NSS_STATUS_TRYAGAIN;			      \
-		      break;						      \
+		      goto out;						      \
 		    }							      \
 									      \
 		  new_h_addr_list =					      \
@@ -268,8 +271,54 @@
 		}							      \
 	    }								      \
 									      \
-	  if (status != NSS_STATUS_TRYAGAIN)				      \
+	  if (status == NSS_STATUS_TRYAGAIN)				      \
+	    {								      \
+	      size_t newsize = 2 * tmp_buflen;				      \
+	      if (tmp_buffer_malloced)					      \
+		{							      \
+		  char *newp = realloc (tmp_buffer, newsize);		      \
+		  if (newp != NULL)					      \
+		    {							      \
+		      assert ((((uintptr_t) newp)			      \
+			       & (__alignof__ (struct hostent_data) - 1))     \
+			      == 0);					      \
+		      tmp_buffer = newp;				      \
+		      tmp_buflen = newsize;				      \
+		      goto again;					      \
+		    }							      \
+		}							      \
+	      else if (!__libc_use_alloca (buflen + newsize))		      \
+		{							      \
+		  tmp_buffer = malloc (newsize);			      \
+		  if (tmp_buffer != NULL)				      \
+		    {							      \
+		      assert ((((uintptr_t) tmp_buffer)			      \
+			       & (__alignof__ (struct hostent_data) - 1))     \
+			      == 0);					      \
+		      tmp_buffer_malloced = true;			      \
+		      tmp_buflen = newsize;				      \
+		      goto again;					      \
+		    }							      \
+		}							      \
+	      else							      \
+		{							      \
+		  tmp_buffer						      \
+		    = extend_alloca (tmp_buffer, tmp_buflen,		      \
+				     newsize				      \
+				     + __alignof__ (struct hostent_data));    \
+		  tmp_buffer = (char *) (((uintptr_t) tmp_buffer	      \
+					  + __alignof__ (struct hostent_data) \
+					  - 1)				      \
+					 & ~(__alignof__ (struct hostent_data)\
+					     - 1));			      \
+		  goto again;						      \
+		}							      \
+	    }								      \
+	  else								      \
 	    status = NSS_STATUS_SUCCESS;				      \
+	out:								      \
+	  if (tmp_buffer_malloced)					      \
+	    free (tmp_buffer);						      \
 	}								      \
 									      \
 									      \

Modified: branches/eglibc-2_11/libc/posix/regexec.c
==============================================================================
--- branches/eglibc-2_11/libc/posix/regexec.c (original)
+++ branches/eglibc-2_11/libc/posix/regexec.c Fri Feb  4 14:35:44 2011
@@ -3333,6 +3333,8 @@
 	{
 	  state->trtable = (re_dfastate_t **)
 	    calloc (sizeof (re_dfastate_t *), SBC_MAX);
+	  if (BE (state->trtable == NULL, 0))
+	    return 0;
 	  return 1;
 	}
       return 0;

Modified: branches/eglibc-2_11/libc/resolv/nss_dns/dns-host.c
==============================================================================
--- branches/eglibc-2_11/libc/resolv/nss_dns/dns-host.c (original)
+++ branches/eglibc-2_11/libc/resolv/nss_dns/dns-host.c Fri Feb  4 14:35:44 2011
@@ -599,7 +599,6 @@
   int (*name_ok) (const char *);
   u_char packtmp[NS_MAXCDNAME];
   int have_to_map = 0;
-  int32_t ttl = 0;
   uintptr_t pad = -(uintptr_t) buffer % __alignof__ (struct host_data);
   buffer += pad;
   if (__builtin_expect (buflen < sizeof (struct host_data) + pad, 0))
@@ -733,7 +732,7 @@
       cp += INT16SZ;			/* type */
       class = __ns_get16 (cp);
       cp += INT16SZ;			/* class */
-      ttl = __ns_get32 (cp);
+      int32_t ttl = __ns_get32 (cp);
       cp += INT32SZ;			/* TTL */
       n = __ns_get16 (cp);
       cp += INT16SZ;			/* len */
@@ -907,7 +906,7 @@
 	    {
 	      register int nn;
 
-	      if (ttlp != NULL && ttl != 0)
+	      if (ttlp != NULL)
 		*ttlp = ttl;
 	      if (canonp != NULL)
 		*canonp = bp;
@@ -1163,7 +1162,7 @@
 
       if (*firstp)
 	{
-	  if (ttl != 0 && ttlp != NULL)
+	  if (ttlp != NULL)
 	    *ttlp = ttl;
 
 	  (*pat)->name = canon ?: h_name;

Modified: branches/eglibc-2_11/libc/shadow/sgetspent.c
==============================================================================
--- branches/eglibc-2_11/libc/shadow/sgetspent.c (original)
+++ branches/eglibc-2_11/libc/shadow/sgetspent.c Fri Feb  4 14:35:44 2011
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 2011 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
@@ -49,8 +49,8 @@
     }
 
   while (buffer != NULL
-	 && __sgetspent_r (string, &resbuf, buffer, buffer_size, &result) != 0
-	 && errno == ERANGE)
+	 && (__sgetspent_r (string, &resbuf, buffer, buffer_size, &result)
+	     == ERANGE))
     {
       char *new_buf;
       buffer_size += BUFLEN_SPWD;

Modified: branches/eglibc-2_11/libc/stdio-common/Makefile
==============================================================================
--- branches/eglibc-2_11/libc/stdio-common/Makefile (original)
+++ branches/eglibc-2_11/libc/stdio-common/Makefile Fri Feb  4 14:35:44 2011
@@ -1,4 +1,4 @@
-# Copyright (C) 1991-2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+# Copyright (C) 1991-2009, 2011 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
@@ -70,7 +70,7 @@
 	 bug19 tst-popen2 scanf14 scanf15 bug21 bug22 scanf16 scanf17 \
 	 tst-setvbuf1
 tests-$(OPTION_EGLIBC_LOCALE_CODE) \
-      += tst-sscanf tst-swprintf bug15 test-vfprintf bug14 scanf13
+      += tst-sscanf tst-swprintf bug15 test-vfprintf bug14 scanf13 tst-grouping
 tests-$(OPTION_POSIX_WIDE_CHAR_DEVICE_IO) \
       += tst-perror bug19a bug20
 tests-$(OPTION_POSIX_C_LANG_WIDE_CHAR) \
@@ -142,6 +142,7 @@
 scanf13-ENV = LOCPATH=$(common-objpfx)localedata
 bug14-ENV = LOCPATH=$(common-objpfx)localedata
 bug15-ENV = LOCPATH=$(common-objpfx)localedata
+tst-grouping-ENV = LOCPATH=$(common-objpfx)localedata
 
 ifneq (,$(filter %REENTRANT, $(defines)))
 CPPFLAGS += -D_IO_MTSAFE_IO

Modified: branches/eglibc-2_11/libc/stdio-common/printf_fp.c
==============================================================================
--- branches/eglibc-2_11/libc/stdio-common/printf_fp.c (original)
+++ branches/eglibc-2_11/libc/stdio-common/printf_fp.c Fri Feb  4 14:35:44 2011
@@ -1,5 +1,5 @@
 /* Floating point output for `printf'.
-   Copyright (C) 1995-2003, 2006, 2007, 2008 Free Software Foundation, Inc.
+   Copyright (C) 1995-2003, 2006-2008, 2011 Free Software Foundation, Inc.
 
    This file is part of the GNU C Library.
    Written by Ulrich Drepper <drepper@xxxxxxxxxxxxxx>, 1995.
@@ -906,7 +906,9 @@
 	/* Guess the number of groups we will make, and thus how
 	   many spaces we need for separator characters.  */
 	ngroups = __guess_grouping (intdig_max, grouping);
-	chars_needed += ngroups;
+	/* Allocate one more character in case rounding increases the
+	   number of groups.  */
+	chars_needed += ngroups + 1;
       }
 
     /* Allocate buffer for output.  We need two more because while rounding
@@ -1110,9 +1112,16 @@
       --wcp;
 
     if (grouping)
-      /* Add in separator characters, overwriting the same buffer.  */
-      wcp = group_number (wstartp, wcp, intdig_no, grouping, thousands_sepwc,
-			  ngroups);
+      {
+	/* Rounding might have changed the number of groups.  We allocated
+	   enough memory but we need here the correct number of groups.  */
+	if (intdig_no != intdig_max)
+	  ngroups = __guess_grouping (intdig_no, grouping);
+
+	/* Add in separator characters, overwriting the same buffer.  */
+	wcp = group_number (wstartp, wcp, intdig_no, grouping, thousands_sepwc,
+			    ngroups);
+      }
 
     /* Write the exponent if it is needed.  */
     if (type != 'f')
@@ -1232,7 +1241,7 @@
 
       tmpptr = buffer;
       if (__builtin_expect (info->i18n, 0))
-        {
+	{
 #ifdef COMPILE_WPRINTF
 	  wstartp = _i18n_number_rewrite (wstartp, wcp,
 					  wbuffer + wbuffer_to_alloc);
@@ -1246,7 +1255,7 @@
 	  assert ((uintptr_t) buffer <= (uintptr_t) tmpptr);
 	  assert ((uintptr_t) tmpptr < (uintptr_t) buffer_end);
 #endif
-        }
+	}
 
       PRINT (tmpptr, wstartp, wide ? wcp - wstartp : cp - tmpptr);
 

Modified: branches/eglibc-2_11/libc/stdlib/msort.c
==============================================================================
--- branches/eglibc-2_11/libc/stdlib/msort.c (original)
+++ branches/eglibc-2_11/libc/stdlib/msort.c Fri Feb  4 14:35:44 2011
@@ -25,6 +25,7 @@
 #include <unistd.h>
 #include <memcopy.h>
 #include <errno.h>
+#include <atomic.h>
 
 struct msort_param
 {
@@ -182,7 +183,7 @@
       static long int phys_pages;
       static int pagesize;
 
-      if (phys_pages == 0)
+      if (pagesize == 0)
 	{
 	  phys_pages = __sysconf (_SC_PHYS_PAGES);
 
@@ -196,6 +197,9 @@
 	  /* The following determines that we will never use more than
 	     a quarter of the physical memory.  */
 	  phys_pages /= 4;
+
+	  /* Make sure phys_pages is written to memory.  */
+	  atomic_write_barrier ();
 
 	  pagesize = __sysconf (_SC_PAGESIZE);
 	}

Modified: branches/eglibc-2_11/libc/string/bits/string3.h
==============================================================================
--- branches/eglibc-2_11/libc/string/bits/string3.h (original)
+++ branches/eglibc-2_11/libc/string/bits/string3.h Fri Feb  4 14:35:44 2011
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc.
+/* Copyright (C) 2004, 2005, 2007, 2009, 2010 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
@@ -53,8 +53,7 @@
 }
 
 __extern_always_inline void *
-__NTH (memmove (void *__restrict __dest, __const void *__restrict __src,
-		size_t __len))
+__NTH (memmove (void *__dest, __const void *__src, size_t __len))
 {
   return __builtin___memmove_chk (__dest, __src, __len, __bos0 (__dest));
 }
@@ -88,8 +87,7 @@
 
 #ifdef __USE_BSD
 __extern_always_inline void
-__NTH (bcopy (__const void *__restrict __src, void *__restrict __dest,
-	      size_t __len))
+__NTH (bcopy (__const void *__src, void *__dest, size_t __len))
 {
   (void) __builtin___memmove_chk (__dest, __src, __len, __bos0 (__dest));
 }

Modified: branches/eglibc-2_11/libc/sysdeps/i386/Makefile
==============================================================================
--- branches/eglibc-2_11/libc/sysdeps/i386/Makefile (original)
+++ branches/eglibc-2_11/libc/sysdeps/i386/Makefile Fri Feb  4 14:35:44 2011
@@ -51,6 +51,7 @@
 # And a couple of other routines
 ifeq ($(subdir),stdlib)
 CFLAGS-exit.c += -mpreferred-stack-boundary=4
+CFLAGS-cxa_finalize.c += -mpreferred-stack-boundary=4
 endif
 ifeq ($(subdir),elf)
 CFLAGS-dl-init.c += -mpreferred-stack-boundary=4

Modified: branches/eglibc-2_11/libc/sysdeps/i386/fpu/libm-test-ulps
==============================================================================
--- branches/eglibc-2_11/libc/sysdeps/i386/fpu/libm-test-ulps (original)
+++ branches/eglibc-2_11/libc/sysdeps/i386/fpu/libm-test-ulps Fri Feb  4 14:35:44 2011
@@ -857,8 +857,8 @@
 ildouble: 2
 ldouble: 2
 Test "yn (10, 0.75) == -2133501638.90573424452445412893839236":
-float: 1
-ifloat: 1
+float: 2
+ifloat: 2
 ildouble: 4
 ldouble: 4
 Test "yn (10, 1.0) == -121618014.278689189288130426667971145":

Modified: branches/eglibc-2_11/libc/sysdeps/posix/getaddrinfo.c
==============================================================================
--- branches/eglibc-2_11/libc/sysdeps/posix/getaddrinfo.c (original)
+++ branches/eglibc-2_11/libc/sysdeps/posix/getaddrinfo.c Fri Feb  4 14:35:44 2011
@@ -963,6 +963,7 @@
 		   make a copy.  */
 		if (out == canon)
 		  goto make_copy;
+		canon = out;
 	      }
 	    else
 #endif

Modified: branches/eglibc-2_11/libc/sysdeps/unix/readdir_r.c
==============================================================================
--- branches/eglibc-2_11/libc/sysdeps/unix/readdir_r.c (original)
+++ branches/eglibc-2_11/libc/sysdeps/unix/readdir_r.c Fri Feb  4 14:35:44 2011
@@ -117,7 +117,8 @@
 #ifdef GETDENTS_64BIT_ALIGNED
       /* The d_reclen value might include padding which is not part of
 	 the DIRENT_TYPE data structure.  */
-      reclen = MIN (reclen, sizeof (DIRENT_TYPE));
+      reclen = MIN (reclen,
+		    offsetof (DIRENT_TYPE, d_name) + sizeof (dp->d_name));
 #endif
       *result = memcpy (entry, dp, reclen);
 #ifdef GETDENTS_64BIT_ALIGNED

Modified: branches/eglibc-2_11/libc/sysdeps/unix/sysv/linux/bits/socket.h
==============================================================================
--- branches/eglibc-2_11/libc/sysdeps/unix/sysv/linux/bits/socket.h (original)
+++ branches/eglibc-2_11/libc/sysdeps/unix/sysv/linux/bits/socket.h Fri Feb  4 14:35:44 2011
@@ -1,5 +1,5 @@
 /* System-specific socket constants and types.  Linux version.
-   Copyright (C) 1991, 1992, 1994-2001, 2004, 2006, 2007, 2008, 2009
+   Copyright (C) 1991, 1992, 1994-2001, 2004, 2006-2010, 2011
    Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -109,7 +109,9 @@
 #define PF_ISDN		34	/* mISDN sockets.  */
 #define PF_PHONET	35	/* Phonet sockets.  */
 #define PF_IEEE802154	36	/* IEEE 802.15.4 sockets.  */
-#define	PF_MAX		37	/* For now..  */
+#define PF_CAIF		37	/* CAIF sockets.  */
+#define PF_ALG		38	/* Algorithm sockets.  */
+#define	PF_MAX		39	/* For now..  */
 
 /* Address families.  */
 #define	AF_UNSPEC	PF_UNSPEC
@@ -150,6 +152,8 @@
 #define AF_ISDN		PF_ISDN
 #define AF_PHONET	PF_PHONET
 #define AF_IEEE802154	PF_IEEE802154
+#define AF_CAIF		PF_CAIF
+#define AF_ALG		PF_ALG
 #define	AF_MAX		PF_MAX
 
 /* Socket level values.  Others are defined in the appropriate headers.

Modified: branches/eglibc-2_11/libc/sysdeps/unix/sysv/linux/i386/bits/mman.h
==============================================================================
--- branches/eglibc-2_11/libc/sysdeps/unix/sysv/linux/i386/bits/mman.h (original)
+++ branches/eglibc-2_11/libc/sysdeps/unix/sysv/linux/i386/bits/mman.h Fri Feb  4 14:35:44 2011
@@ -1,5 +1,5 @@
 /* Definitions for POSIX memory map interface.  Linux/i386 version.
-   Copyright (C) 1997,2000,2003,2005,2006,2009,2010
+   Copyright (C) 1997,2000,2003,2005,2006,2009,2010,2011
    Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -96,6 +96,8 @@
 # define MADV_DOFORK	  11	/* Do inherit across fork.  */
 # define MADV_MERGEABLE	  12	/* KSM may merge identical pages.  */
 # define MADV_UNMERGEABLE 13	/* KSM may not merge identical pages.  */
+# define MADV_HUGEPAGE	  14	/* Worth backing with hugepages.  */
+# define MADV_NOHUGEPAGE  15	/* Not worth backing with hugepages.  */
 # define MADV_HWPOISON	  100	/* Poison a page for testing.  */
 #endif
 

Modified: branches/eglibc-2_11/libc/sysdeps/unix/sysv/linux/ia64/bits/mman.h
==============================================================================
--- branches/eglibc-2_11/libc/sysdeps/unix/sysv/linux/ia64/bits/mman.h (original)
+++ branches/eglibc-2_11/libc/sysdeps/unix/sysv/linux/ia64/bits/mman.h Fri Feb  4 14:35:44 2011
@@ -1,5 +1,5 @@
 /* Definitions for POSIX memory map interface.  Linux/ia64 version.
-   Copyright (C) 1997,1998,2000,2003,2005,2006,2009
+   Copyright (C) 1997,1998,2000,2003,2005,2006,2009,2011
    Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -95,6 +95,8 @@
 # define MADV_DOFORK	  11	/* Do inherit across fork.  */
 # define MADV_MERGEABLE	  12	/* KSM may merge identical pages.  */
 # define MADV_UNMERGEABLE 13	/* KSM may not merge identical pages.  */
+# define MADV_HUGEPAGE	  14	/* Worth backing with hugepages.  */
+# define MADV_NOHUGEPAGE  15	/* Not worth backing with hugepages.  */
 # define MADV_HWPOISON	  100	/* Poison a page for testing.  */
 #endif
 

Modified: branches/eglibc-2_11/libc/sysdeps/unix/sysv/linux/mkdirat.c
==============================================================================
--- branches/eglibc-2_11/libc/sysdeps/unix/sysv/linux/mkdirat.c (original)
+++ branches/eglibc-2_11/libc/sysdeps/unix/sysv/linux/mkdirat.c Fri Feb  4 14:35:44 2011
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005, 2006, 2009 Free Software Foundation, Inc.
+/* Copyright (C) 2005, 2006, 2009, 2011 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
@@ -43,7 +43,7 @@
     {
       res = INLINE_SYSCALL (mkdirat, 3, fd, file, mode);
 # ifndef __ASSUME_ATFCTS
-      if (res == -1 && res == ENOSYS)
+      if (res == -1 && errno == ENOSYS)
 	__have_atfcts = -1;
       else
 # endif

Modified: branches/eglibc-2_11/libc/sysdeps/unix/sysv/linux/powerpc/bits/mman.h
==============================================================================
--- branches/eglibc-2_11/libc/sysdeps/unix/sysv/linux/powerpc/bits/mman.h (original)
+++ branches/eglibc-2_11/libc/sysdeps/unix/sysv/linux/powerpc/bits/mman.h Fri Feb  4 14:35:44 2011
@@ -1,5 +1,5 @@
 /* Definitions for POSIX memory map interface.  Linux/PowerPC version.
-   Copyright (C) 1997,2000,2003,2005,2006,2008,2009
+   Copyright (C) 1997,2000,2003,2005,2006,2008,2009,2011
    Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -96,6 +96,8 @@
 # define MADV_DOFORK	  11	/* Do inherit across fork.  */
 # define MADV_MERGEABLE	  12	/* KSM may merge identical pages.  */
 # define MADV_UNMERGEABLE 13	/* KSM may not merge identical pages.  */
+# define MADV_HUGEPAGE	  14	/* Worth backing with hugepages.  */
+# define MADV_NOHUGEPAGE  15	/* Not worth backing with hugepages.  */
 # define MADV_HWPOISON	  100	/* Poison a page for testing.  */
 #endif
 

Modified: branches/eglibc-2_11/libc/sysdeps/unix/sysv/linux/s390/bits/mman.h
==============================================================================
--- branches/eglibc-2_11/libc/sysdeps/unix/sysv/linux/s390/bits/mman.h (original)
+++ branches/eglibc-2_11/libc/sysdeps/unix/sysv/linux/s390/bits/mman.h Fri Feb  4 14:35:44 2011
@@ -1,5 +1,5 @@
 /* Definitions for POSIX memory map interface.  Linux/s390 version.
-   Copyright (C) 2000-2003,2005,2006,2009 Free Software Foundation, Inc.
+   Copyright (C) 2000-2003,2005,2006,2009,2011 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
@@ -94,6 +94,8 @@
 # define MADV_DOFORK	  11	/* Do inherit across fork.  */
 # define MADV_MERGEABLE	  12	/* KSM may merge identical pages.  */
 # define MADV_UNMERGEABLE 13	/* KSM may not merge identical pages.  */
+# define MADV_HUGEPAGE	  14	/* Worth backing with hugepages.  */
+# define MADV_NOHUGEPAGE  15	/* Not worth backing with hugepages.  */
 # define MADV_HWPOISON	  100	/* Poison a page for testing.  */
 #endif
 

Modified: branches/eglibc-2_11/libc/sysdeps/unix/sysv/linux/sh/bits/mman.h
==============================================================================
--- branches/eglibc-2_11/libc/sysdeps/unix/sysv/linux/sh/bits/mman.h (original)
+++ branches/eglibc-2_11/libc/sysdeps/unix/sysv/linux/sh/bits/mman.h Fri Feb  4 14:35:44 2011
@@ -1,5 +1,5 @@
 /* Definitions for POSIX memory map interface.  Linux/SH version.
-   Copyright (C) 1997,1999,2000,2003,2005,2006,2009
+   Copyright (C) 1997,1999,2000,2003,2005,2006,2009,2011
    Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -94,6 +94,8 @@
 # define MADV_DOFORK	  11	/* Do inherit across fork.  */
 # define MADV_MERGEABLE	  12	/* KSM may merge identical pages.  */
 # define MADV_UNMERGEABLE 13	/* KSM may not merge identical pages.  */
+# define MADV_HUGEPAGE	  14	/* Worth backing with hugepages.  */
+# define MADV_NOHUGEPAGE  15	/* Not worth backing with hugepages.  */
 # define MADV_HWPOISON	  100	/* Poison a page for testing.  */
 #endif
 

Modified: branches/eglibc-2_11/libc/sysdeps/unix/sysv/linux/sparc/bits/mman.h
==============================================================================
--- branches/eglibc-2_11/libc/sysdeps/unix/sysv/linux/sparc/bits/mman.h (original)
+++ branches/eglibc-2_11/libc/sysdeps/unix/sysv/linux/sparc/bits/mman.h Fri Feb  4 14:35:44 2011
@@ -1,5 +1,5 @@
 /* Definitions for POSIX memory map interface.  Linux/SPARC version.
-   Copyright (C) 1997,1999,2000,2003,2005,2006,2009
+   Copyright (C) 1997,1999,2000,2003,2005,2006,2009,2011
    Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -97,6 +97,8 @@
 # define MADV_DOFORK	  11	/* Do inherit across fork.  */
 # define MADV_MERGEABLE	  12	/* KSM may merge identical pages.  */
 # define MADV_UNMERGEABLE 13	/* KSM may not merge identical pages.  */
+# define MADV_HUGEPAGE	  14	/* Worth backing with hugepages.  */
+# define MADV_NOHUGEPAGE  15	/* Not worth backing with hugepages.  */
 # define MADV_HWPOISON	  100	/* Poison a page for testing.  */
 #endif
 

Modified: branches/eglibc-2_11/libc/sysdeps/unix/sysv/linux/sparc/bits/socket.h
==============================================================================
--- branches/eglibc-2_11/libc/sysdeps/unix/sysv/linux/sparc/bits/socket.h (original)
+++ branches/eglibc-2_11/libc/sysdeps/unix/sysv/linux/sparc/bits/socket.h Fri Feb  4 14:35:44 2011
@@ -1,5 +1,5 @@
 /* System-specific socket constants and types.  Linux/SPARC version.
-   Copyright (C) 1991, 1992, 1994-2001, 2004, 2006, 2007, 2008, 2009
+   Copyright (C) 1991, 1992, 1994-2001, 2004, 2006, 2007, 2008, 2009, 2011
    Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -108,7 +108,9 @@
 #define PF_ISDN		34	/* mISDN sockets.  */
 #define PF_PHONET	35	/* Phonet sockets.  */
 #define PF_IEEE802154	36	/* IEEE 802.15.4 sockets.  */
-#define	PF_MAX		37	/* For now..  */
+#define PF_CAIF		37	/* CAIF sockets.  */
+#define PF_ALG		38	/* Algorithm sockets.  */
+#define	PF_MAX		39	/* For now..  */
 
 /* Address families.  */
 #define	AF_UNSPEC	PF_UNSPEC
@@ -149,6 +151,8 @@
 #define AF_ISDN		PF_ISDN
 #define AF_PHONET	PF_PHONET
 #define AF_IEEE802154	PF_IEEE802154
+#define AF_CAIF		PF_CAIF
+#define AF_ALG		PF_ALG
 #define	AF_MAX		PF_MAX
 
 /* Socket level values.  Others are defined in the appropriate headers.
@@ -233,8 +237,8 @@
 #define	MSG_MORE	MSG_MORE
 
     MSG_CMSG_CLOEXEC	= 0x40000000	/* Set close_on_exit for file
-                                           descriptor received through
-                                           SCM_RIGHTS.  */
+					   descriptor received through
+					   SCM_RIGHTS.  */
 #define MSG_CMSG_CLOEXEC MSG_CMSG_CLOEXEC
   };
 

Modified: branches/eglibc-2_11/libc/sysdeps/unix/sysv/linux/sparc/sparc64/fxstat.c
==============================================================================
--- branches/eglibc-2_11/libc/sysdeps/unix/sysv/linux/sparc/sparc64/fxstat.c (original)
+++ branches/eglibc-2_11/libc/sysdeps/unix/sysv/linux/sparc/sparc64/fxstat.c Fri Feb  4 14:35:44 2011
@@ -1,1 +1,1 @@
-#include "../../fxstat.c"
+#include "../../i386/fxstat.c"

Modified: branches/eglibc-2_11/libc/sysdeps/unix/sysv/linux/wordsize-64/readdir_r.c
==============================================================================
--- branches/eglibc-2_11/libc/sysdeps/unix/sysv/linux/wordsize-64/readdir_r.c (original)
+++ branches/eglibc-2_11/libc/sysdeps/unix/sysv/linux/wordsize-64/readdir_r.c Fri Feb  4 14:35:44 2011
@@ -1,4 +1,5 @@
 #define readdir64_r __no_readdir64_r_decl
+#define GETDENTS_64BIT_ALIGNED 1
 #include <sysdeps/unix/readdir_r.c>
 #undef readdir64_r
 weak_alias (__readdir_r, readdir64_r)

Modified: branches/eglibc-2_11/libc/sysdeps/unix/sysv/linux/x86_64/bits/mman.h
==============================================================================
--- branches/eglibc-2_11/libc/sysdeps/unix/sysv/linux/x86_64/bits/mman.h (original)
+++ branches/eglibc-2_11/libc/sysdeps/unix/sysv/linux/x86_64/bits/mman.h Fri Feb  4 14:35:44 2011
@@ -1,5 +1,6 @@
 /* Definitions for POSIX memory map interface.  Linux/x86_64 version.
-   Copyright (C) 2001,2003,2005,2006,2009,2010 Free Software Foundation, Inc.
+   Copyright (C) 2001,2003,2005,2006,2009,2010,2011
+   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
@@ -96,6 +97,8 @@
 # define MADV_DOFORK	  11	/* Do inherit across fork.  */
 # define MADV_MERGEABLE	  12	/* KSM may merge identical pages.  */
 # define MADV_UNMERGEABLE 13	/* KSM may not merge identical pages.  */
+# define MADV_HUGEPAGE	  14	/* Worth backing with hugepages.  */
+# define MADV_NOHUGEPAGE  15	/* Not worth backing with hugepages.  */
 # define MADV_HWPOISON	  100	/* Poison a page for testing.  */
 #endif
 

Modified: branches/eglibc-2_11/libc/wcsmbs/bits/wchar2.h
==============================================================================
--- branches/eglibc-2_11/libc/wcsmbs/bits/wchar2.h (original)
+++ branches/eglibc-2_11/libc/wcsmbs/bits/wchar2.h Fri Feb  4 14:35:44 2011
@@ -1,5 +1,5 @@
 /* Checking macros for wchar functions.
-   Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
+   Copyright (C) 2005, 2006, 2007, 2010 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
@@ -60,15 +60,13 @@
 						   __const wchar_t *__s2,
 						   size_t __n), wmemmove);
 extern wchar_t *__REDIRECT_NTH (__wmemmove_chk_warn,
-				(wchar_t *__restrict __s1,
-				 __const wchar_t *__restrict __s2, size_t __n,
-				 size_t __ns1), __wmemmove_chk)
+				(wchar_t *__s1, __const wchar_t *__s2,
+				 size_t __n, size_t __ns1), __wmemmove_chk)
      __warnattr ("wmemmove called with length bigger than size of destination "
 		 "buffer");
 
 __extern_always_inline wchar_t *
-__NTH (wmemmove (wchar_t *__restrict __s1, __const wchar_t *__restrict __s2,
-		 size_t __n))
+__NTH (wmemmove (wchar_t *__s1, __const wchar_t *__s2, size_t __n))
 {
   if (__bos0 (__s1) != (size_t) -1)
     {
@@ -129,7 +127,7 @@
 		 "buffer");
 
 __extern_always_inline wchar_t *
-__NTH (wmemset (wchar_t *__restrict __s, wchar_t __c, size_t __n))
+__NTH (wmemset (wchar_t *__s, wchar_t __c, size_t __n))
 {
   if (__bos0 (__s) != (size_t) -1)
     {
@@ -152,7 +150,7 @@
 				 __const wchar_t *__restrict __src), wcscpy);
 
 __extern_always_inline wchar_t *
-__NTH (wcscpy (wchar_t *__dest, __const wchar_t *__src))
+__NTH (wcscpy (wchar_t *__restrict __dest, __const wchar_t *__restrict __src))
 {
   if (__bos (__dest) != (size_t) -1)
     return __wcscpy_chk (__dest, __src, __bos (__dest) / sizeof (wchar_t));
@@ -160,14 +158,15 @@
 }
 
 
-extern wchar_t *__wcpcpy_chk (wchar_t *__dest, __const wchar_t *__src,
+extern wchar_t *__wcpcpy_chk (wchar_t *__restrict __dest,
+			      __const wchar_t *__restrict __src,
 			      size_t __destlen) __THROW;
-extern wchar_t *__REDIRECT_NTH (__wcpcpy_alias, (wchar_t *__dest,
-						 __const wchar_t *__src),
-				wcpcpy);
-
-__extern_always_inline wchar_t *
-__NTH (wcpcpy (wchar_t *__dest, __const wchar_t *__src))
+extern wchar_t *__REDIRECT_NTH (__wcpcpy_alias,
+				(wchar_t *__restrict __dest,
+				 __const wchar_t *__restrict __src), wcpcpy);
+
+__extern_always_inline wchar_t *
+__NTH (wcpcpy (wchar_t *__restrict __dest, __const wchar_t *__restrict __src))
 {
   if (__bos (__dest) != (size_t) -1)
     return __wcpcpy_chk (__dest, __src, __bos (__dest) / sizeof (wchar_t));
@@ -190,7 +189,8 @@
 		 "buffer");
 
 __extern_always_inline wchar_t *
-__NTH (wcsncpy (wchar_t *__dest, __const wchar_t *__src, size_t __n))
+__NTH (wcsncpy (wchar_t *__restrict __dest, __const wchar_t *__restrict __src,
+		size_t __n))
 {
   if (__bos (__dest) != (size_t) -1)
     {
@@ -220,7 +220,8 @@
 		 "buffer");
 
 __extern_always_inline wchar_t *
-__NTH (wcpncpy (wchar_t *__dest, __const wchar_t *__src, size_t __n))
+__NTH (wcpncpy (wchar_t *__restrict __dest, __const wchar_t *__restrict __src,
+		size_t __n))
 {
   if (__bos (__dest) != (size_t) -1)
     {
@@ -243,7 +244,7 @@
 				 __const wchar_t *__restrict __src), wcscat);
 
 __extern_always_inline wchar_t *
-__NTH (wcscat (wchar_t *__dest, __const wchar_t *__src))
+__NTH (wcscat (wchar_t *__restrict __dest, __const wchar_t *__restrict __src))
 {
   if (__bos (__dest) != (size_t) -1)
     return __wcscat_chk (__dest, __src, __bos (__dest) / sizeof (wchar_t));
@@ -260,7 +261,8 @@
 				 size_t __n), wcsncat);
 
 __extern_always_inline wchar_t *
-__NTH (wcsncat (wchar_t *__dest, __const wchar_t *__src, size_t __n))
+__NTH (wcsncat (wchar_t *__restrict __dest, __const wchar_t *__restrict __src,
+		size_t __n))
 {
   if (__bos (__dest) != (size_t) -1)
     return __wcsncat_chk (__dest, __src, __n,
@@ -428,14 +430,16 @@
 #endif
 
 
-extern size_t __wcrtomb_chk (char *__s, wchar_t __wchar, mbstate_t *__p,
-			  size_t __buflen) __THROW __wur;
+extern size_t __wcrtomb_chk (char *__restrict __s, wchar_t __wchar,
+			     mbstate_t *__restrict __p,
+			     size_t __buflen) __THROW __wur;
 extern size_t __REDIRECT_NTH (__wcrtomb_alias,
 			      (char *__restrict __s, wchar_t __wchar,
 			       mbstate_t *__restrict __ps), wcrtomb) __wur;
 
 __extern_always_inline __wur size_t
-__NTH (wcrtomb (char *__s, wchar_t __wchar, mbstate_t *__ps))
+__NTH (wcrtomb (char *__restrict __s, wchar_t __wchar,
+		mbstate_t *__restrict __ps))
 {
   /* We would have to include <limits.h> to get a definition of MB_LEN_MAX.
      But this would only disturb the namespace.  So we define our own

Modified: branches/eglibc-2_11/libc/wcsmbs/wchar.h
==============================================================================
--- branches/eglibc-2_11/libc/wcsmbs/wchar.h (original)
+++ branches/eglibc-2_11/libc/wcsmbs/wchar.h Fri Feb  4 14:35:44 2011
@@ -561,11 +561,13 @@
 #ifdef	__USE_XOPEN2K8
 /* Copy SRC to DEST, returning the address of the terminating L'\0' in
    DEST.  */
-extern wchar_t *wcpcpy (wchar_t *__dest, __const wchar_t *__src) __THROW;
+extern wchar_t *wcpcpy (wchar_t *__restrict __dest,
+			__const wchar_t *__restrict __src) __THROW;
 
 /* Copy no more than N characters of SRC to DEST, returning the address of
    the last character written into DEST.  */
-extern wchar_t *wcpncpy (wchar_t *__dest, __const wchar_t *__src, size_t __n)
+extern wchar_t *wcpncpy (wchar_t *__restrict __dest,
+			 __const wchar_t *__restrict __src, size_t __n)
      __THROW;
 #endif	/* use GNU */
 

Modified: branches/eglibc-2_11/ports/ChangeLog.arm
==============================================================================
--- branches/eglibc-2_11/ports/ChangeLog.arm (original)
+++ branches/eglibc-2_11/ports/ChangeLog.arm Fri Feb  4 14:35:44 2011
@@ -1,3 +1,8 @@
+2011-01-25  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/arm/bits/mman.h (MADV_HUGEPAGE,
+	MADV_NOHUGEPAGE): Define.
+
 2009-11-19  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
 
 	* sysdeps/unix/sysv/linux/arm/kernel-features.h (__ASSUME_PSELECT,

Modified: branches/eglibc-2_11/ports/ChangeLog.m68k
==============================================================================
--- branches/eglibc-2_11/ports/ChangeLog.m68k (original)
+++ branches/eglibc-2_11/ports/ChangeLog.m68k Fri Feb  4 14:35:44 2011
@@ -1,3 +1,8 @@
+2011-01-18  Andreas Schwab  <schwab@xxxxxxxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/m68k/bits/mman.h (MADV_HUGEPAGE)
+	(MADV_NOHUGEPAGE): Define.
+
 2009-11-17  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
 
 	[BZ #10972]

Modified: branches/eglibc-2_11/ports/ChangeLog.mips
==============================================================================
--- branches/eglibc-2_11/ports/ChangeLog.mips (original)
+++ branches/eglibc-2_11/ports/ChangeLog.mips Fri Feb  4 14:35:44 2011
@@ -1,3 +1,13 @@
+2011-01-25  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/mips/bits/mman.h (MADV_HUGEPAGE,
+	MADV_NOHUGEPAGE): Define.
+
+2011-01-25  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/mips/bits/socket.h (AF_CAIF, AF_ALG,
+	PF_CAIF, PF_ALG): Define.
+
 2009-12-16  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
 
 	* sysdeps/mips/dl-lookup.c: Update from generic version.

Modified: branches/eglibc-2_11/ports/sysdeps/unix/sysv/linux/arm/bits/mman.h
==============================================================================
--- branches/eglibc-2_11/ports/sysdeps/unix/sysv/linux/arm/bits/mman.h (original)
+++ branches/eglibc-2_11/ports/sysdeps/unix/sysv/linux/arm/bits/mman.h Fri Feb  4 14:35:44 2011
@@ -1,5 +1,5 @@
 /* Definitions for POSIX memory map interface.  Linux/ARM version.
-   Copyright (C) 1997, 2000, 2003, 2005, 2006, 2009
+   Copyright (C) 1997, 2000, 2003, 2005, 2006, 2009, 2011
    Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -94,6 +94,8 @@
 # define MADV_DOFORK	  11	/* Do inherit across fork.  */
 # define MADV_MERGEABLE	  12	/* KSM may merge identical pages.  */
 # define MADV_UNMERGEABLE 13	/* KSM may not merge identical pages.  */
+# define MADV_HUGEPAGE	  14	/* Worth backing with hugepages.  */
+# define MADV_NOHUGEPAGE  15	/* Not worth backing with hugepages.  */
 # define MADV_HWPOISON	  100	/* Poison a page for testing.  */
 #endif
 

Modified: branches/eglibc-2_11/ports/sysdeps/unix/sysv/linux/m68k/bits/mman.h
==============================================================================
--- branches/eglibc-2_11/ports/sysdeps/unix/sysv/linux/m68k/bits/mman.h (original)
+++ branches/eglibc-2_11/ports/sysdeps/unix/sysv/linux/m68k/bits/mman.h Fri Feb  4 14:35:44 2011
@@ -1,5 +1,5 @@
 /* Definitions for POSIX memory map interface.  Linux/m68k version.
-   Copyright (C) 1997, 2000, 2003, 2005, 2008, 2009
+   Copyright (C) 1997, 2000, 2003, 2005, 2008, 2009, 2011
    Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -94,6 +94,8 @@
 # define MADV_DOFORK	  11	/* Do inherit across fork.  */
 # define MADV_MERGEABLE	  12	/* KSM may merge identical pages.  */
 # define MADV_UNMERGEABLE 13	/* KSM may not merge identical pages.  */
+# define MADV_HUGEPAGE	  14	/* Worth backing with hugepages.  */
+# define MADV_NOHUGEPAGE  15	/* Not worth backing with hugepages.  */
 # define MADV_HWPOISON	  100	/* Poison a page for testing.  */
 #endif
 

Modified: branches/eglibc-2_11/ports/sysdeps/unix/sysv/linux/mips/bits/mman.h
==============================================================================
--- branches/eglibc-2_11/ports/sysdeps/unix/sysv/linux/mips/bits/mman.h (original)
+++ branches/eglibc-2_11/ports/sysdeps/unix/sysv/linux/mips/bits/mman.h Fri Feb  4 14:35:44 2011
@@ -1,5 +1,5 @@
 /* Definitions for POSIX memory map interface.  Linux/MIPS version.
-   Copyright (C) 1997, 2000, 2003, 2004, 2005, 2006, 2009
+   Copyright (C) 1997, 2000, 2003, 2004, 2005, 2006, 2009, 2011
    Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -96,6 +96,8 @@
 # define MADV_DOFORK	  11	/* Do inherit across fork.  */
 # define MADV_MERGEABLE	  12	/* KSM may merge identical pages.  */
 # define MADV_UNMERGEABLE 13	/* KSM may not merge identical pages.  */
+# define MADV_HUGEPAGE	  14	/* Worth backing with hugepages.  */
+# define MADV_NOHUGEPAGE  15	/* Not worth backing with hugepages.  */
 # define MADV_HWPOISON	  100	/* Poison a page for testing.  */
 #endif
 

Modified: branches/eglibc-2_11/ports/sysdeps/unix/sysv/linux/mips/bits/socket.h
==============================================================================
--- branches/eglibc-2_11/ports/sysdeps/unix/sysv/linux/mips/bits/socket.h (original)
+++ branches/eglibc-2_11/ports/sysdeps/unix/sysv/linux/mips/bits/socket.h Fri Feb  4 14:35:44 2011
@@ -1,6 +1,6 @@
 /* System-specific socket constants and types.  Linux/MIPS version.
    Copyright (C) 1991, 92, 1994-1999, 2000, 2001, 2004, 2005, 2006, 2007, 2008,
-   2009 Free Software Foundation, Inc.
+   2009, 2010, 2011 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
@@ -109,7 +109,9 @@
 #define PF_ISDN		34	/* mISDN sockets.  */
 #define PF_PHONET	35	/* Phonet sockets.  */
 #define PF_IEEE802154	36	/* IEEE 802.15.4 sockets.  */
-#define	PF_MAX		37	/* For now..  */
+#define PF_CAIF		37	/* CAIF sockets.  */
+#define PF_ALG		38	/* Algorithm sockets.  */
+#define	PF_MAX		39	/* For now..  */
 
 /* Address families.  */
 #define	AF_UNSPEC	PF_UNSPEC
@@ -150,6 +152,8 @@
 #define AF_ISDN		PF_ISDN
 #define AF_PHONET	PF_PHONET
 #define AF_IEEE802154	PF_IEEE802154
+#define AF_CAIF		PF_CAIF
+#define AF_ALG		PF_ALG
 #define	AF_MAX		PF_MAX
 
 /* Socket level values.  Others are defined in the appropriate headers.