GNU C Library master sources branch, release/2.12/master, updated. glibc-2.12.2

schwab@sourceware.org schwab@sourceware.org
Mon Dec 13 13:55:00 GMT 2010


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, release/2.12/master has been updated
       via  3a33e487eeb65e2f1f633581c56bee2c60d0ca43 (commit)
       via  a8f09f4347b9496b6b838211e82f596d13304044 (commit)
       via  255eab5f5ef8fec5187f4a611a89cc28f0ed7d1b (commit)
       via  92111c633273b228bbce9564108a50499435c5ee (commit)
       via  04d5ab182b780d12092711627ceac464b711bb00 (commit)
       via  9796df9ff2bc74bbb2bbce62628eb50265a5aa78 (commit)
       via  745cb72f04667f7551e86e87fffd08bb316aae13 (commit)
       via  5657e17a40c738f6dbd675abc3dd666256fddc16 (commit)
      from  1489c92cf2192242fc7390ef020acde8922b384d (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=3a33e487eeb65e2f1f633581c56bee2c60d0ca43

commit 3a33e487eeb65e2f1f633581c56bee2c60d0ca43
Author: Andreas Schwab <schwab@redhat.com>
Date:   Mon Dec 13 11:45:50 2010 +0100

    glibc 2.12.2 release

diff --git a/ChangeLog b/ChangeLog
index 2122312..afd9059 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2010-12-13  Andreas Schwab  <schwab@redhat.com>
+
+	* version.h (VERSION): Bump for 2.12.2 release.
+
 2010-12-10  Andreas Schwab  <schwab@redhat.com>
 
 	* wcsmbs/wchar.h (wcpcpy, wcpncpy): Only declare under
diff --git a/version.h b/version.h
index 2f4c7ec..c06dd9e 100644
--- a/version.h
+++ b/version.h
@@ -1,4 +1,4 @@
 /* This file just defines the current version number of libc.  */
 
 #define RELEASE "stable"
-#define VERSION "2.12.1"
+#define VERSION "2.12.2"

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=a8f09f4347b9496b6b838211e82f596d13304044

commit a8f09f4347b9496b6b838211e82f596d13304044
Author: Andreas Schwab <schwab@redhat.com>
Date:   Mon Dec 13 11:44:56 2010 +0100

    NEWS for 2.12.2

diff --git a/NEWS b/NEWS
index c0c74be..a186c92 100644
--- a/NEWS
+++ b/NEWS
@@ -1,10 +1,24 @@
-GNU C Library NEWS -- history of user-visible changes.  2010-5-4
+GNU C Library NEWS -- history of user-visible changes.  2010-12-13
 Copyright (C) 1992-2009, 2010 Free Software Foundation, Inc.
 See the end for copying conditions.
 
 Please send GNU C library bug reports via <http://sources.redhat.com/bugzilla/>
 using `glibc' in the "product" field.
 
+Version 2.12.2
+
+* The following bugs are resolved with this release:
+
+  12077, 12092, 12113, 12159, 12167, 12191, 11840, 11856, 10851, 7066,
+  11968, 12005, 12093, 12078, 12140, 11904, 12194, 11883, 11611,
+  10085, 11149, 11903, 11655
+
+Version 2.12.1
+
+* The following bugs are resolved with this release:
+
+  11571, 11640
+
 Version 2.12
 
 * The following bugs are resolved with this release:

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=255eab5f5ef8fec5187f4a611a89cc28f0ed7d1b

commit 255eab5f5ef8fec5187f4a611a89cc28f0ed7d1b
Author: Andreas Schwab <schwab@redhat.com>
Date:   Fri Dec 10 09:16:12 2010 -0500

    Declare wcpcpy and wcpncpy only under _GNU_SOURCE
    (cherry picked from commit dbb0472f054a4241feec09af30db850dd4d18a7b)

diff --git a/ChangeLog b/ChangeLog
index 18023b9..2122312 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2010-12-10  Andreas Schwab  <schwab@redhat.com>
 
+	* wcsmbs/wchar.h (wcpcpy, wcpncpy): Only declare under
+	_GNU_SOURCE.
+
+2010-12-10  Andreas Schwab  <schwab@redhat.com>
+
 	* wcsmbs/wchar.h (wcpcpy, wcpncpy): Add __restrict.
 	* wcsmbs/bits/wchar2.h (__wmemmove_chk_warn, wmemmove, wmemset):
 	Remove __restrict.
diff --git a/wcsmbs/wchar.h b/wcsmbs/wchar.h
index ca8ba80..5f341f3 100644
--- a/wcsmbs/wchar.h
+++ b/wcsmbs/wchar.h
@@ -555,10 +555,8 @@ extern float wcstof_l (__const wchar_t *__restrict __nptr,
 extern long double wcstold_l (__const wchar_t *__restrict __nptr,
 			      wchar_t **__restrict __endptr,
 			      __locale_t __loc) __THROW;
-#endif /* GNU */
 
 
-#ifdef	__USE_XOPEN2K8
 /* Copy SRC to DEST, returning the address of the terminating L'\0' in
    DEST.  */
 extern wchar_t *wcpcpy (wchar_t *__restrict __dest,

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=92111c633273b228bbce9564108a50499435c5ee

commit 92111c633273b228bbce9564108a50499435c5ee
Author: Andreas Schwab <schwab@redhat.com>
Date:   Fri Dec 10 09:15:01 2010 -0500

    Fix use of restrict in wchar.h
    (cherry picked from commit 4f1972374a080e823c4ead7c0496827dfc013837)

diff --git a/ChangeLog b/ChangeLog
index ebb5342..18023b9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2010-12-10  Andreas Schwab  <schwab@redhat.com>
+
+	* 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@gmail.com>
 
 	[BZ #11655]
diff --git a/wcsmbs/bits/wchar2.h b/wcsmbs/bits/wchar2.h
index 2ec4ce1..c38eaa3 100644
--- a/wcsmbs/bits/wchar2.h
+++ b/wcsmbs/bits/wchar2.h
@@ -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 @@ extern wchar_t *__REDIRECT_NTH (__wmemmove_alias, (wchar_t *__s1,
 						   __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 @@ extern wchar_t *__REDIRECT_NTH (__wmemset_chk_warn,
 		 "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 @@ extern wchar_t *__REDIRECT_NTH (__wcscpy_alias,
 				 __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 @@ __NTH (wcscpy (wchar_t *__dest, __const wchar_t *__src))
 }
 
 
-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 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 *__dest, __const wchar_t *__src))
+__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 @@ extern wchar_t *__REDIRECT_NTH (__wcsncpy_chk_warn,
 		 "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 @@ extern wchar_t *__REDIRECT_NTH (__wcpncpy_chk_warn,
 		 "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 @@ extern wchar_t *__REDIRECT_NTH (__wcscat_alias,
 				 __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 @@ extern wchar_t *__REDIRECT_NTH (__wcsncat_alias,
 				 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 @@ fgetws_unlocked (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream)
 #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
diff --git a/wcsmbs/wchar.h b/wcsmbs/wchar.h
index 061b105..ca8ba80 100644
--- a/wcsmbs/wchar.h
+++ b/wcsmbs/wchar.h
@@ -561,11 +561,13 @@ extern long double wcstold_l (__const wchar_t *__restrict __nptr,
 #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 */
 

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=04d5ab182b780d12092711627ceac464b711bb00

commit 04d5ab182b780d12092711627ceac464b711bb00
Author: Ulrich Drepper <drepper@gmail.com>
Date:   Thu Dec 9 12:12:58 2010 -0500

    Fix race in qsort_r initialization.
    (cherry picked from commit fb88ac72c2dcbbd979c8798e4ea497818bb3e171)

diff --git a/ChangeLog b/ChangeLog
index 6a86ea7..ebb5342 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2010-12-09  Ulrich Drepper  <drepper@gmail.com>
+
+	[BZ #11655]
+	* stdlib/msort.c (qsort_r): Make sure both phys_pages and pagesize
+	are initialized.
+
 2010-12-09  Jakub Jelinek  <jakub@redhat.com>
 
 	* string/bits/string3.h (memmove, bcopy): Remove __restrict.
diff --git a/stdlib/msort.c b/stdlib/msort.c
index 35cd4d0..fc58f0d 100644
--- a/stdlib/msort.c
+++ b/stdlib/msort.c
@@ -25,6 +25,7 @@
 #include <unistd.h>
 #include <memcopy.h>
 #include <errno.h>
+#include <atomic.h>
 
 struct msort_param
 {
@@ -182,7 +183,7 @@ qsort_r (void *b, size_t n, size_t s, __compar_d_fn_t cmp, void *arg)
       static long int phys_pages;
       static int pagesize;
 
-      if (phys_pages == 0)
+      if (pagesize == 0)
 	{
 	  phys_pages = __sysconf (_SC_PHYS_PAGES);
 
@@ -197,6 +198,9 @@ qsort_r (void *b, size_t n, size_t s, __compar_d_fn_t cmp, void *arg)
 	     a quarter of the physical memory.  */
 	  phys_pages /= 4;
 
+	  /* Make sure phys_pages is written to memory.  */
+	  atomic_write_barrier ();
+
 	  pagesize = __sysconf (_SC_PAGESIZE);
 	}
 

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=9796df9ff2bc74bbb2bbce62628eb50265a5aa78

commit 9796df9ff2bc74bbb2bbce62628eb50265a5aa78
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Thu Dec 9 10:38:18 2010 -0500

    Fix -D_FORTIFY_SOURCE memmove and bcop
    (cherry picked from commit 42acbb92c861e97a6e1293ea853db88342a1bf53)

diff --git a/ChangeLog b/ChangeLog
index a78f96d..6a86ea7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2010-12-09  Jakub Jelinek  <jakub@redhat.com>
+
+	* string/bits/string3.h (memmove, bcopy): Remove __restrict.
+
 2010-08-11  Ulrich Drepper  <drepper@redhat.com>
 
 	[BZ #11903]
diff --git a/string/bits/string3.h b/string/bits/string3.h
index 1d759f1..1647725 100644
--- a/string/bits/string3.h
+++ b/string/bits/string3.h
@@ -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 @@ __NTH (memcpy (void *__restrict __dest, __const void *__restrict __src,
 }
 
 __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 @@ __NTH (memset (void *__dest, int __ch, size_t __len))
 
 #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));
 }

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=745cb72f04667f7551e86e87fffd08bb316aae13

commit 745cb72f04667f7551e86e87fffd08bb316aae13
Author: Ulrich Drepper <drepper@redhat.com>
Date:   Wed Aug 11 07:44:03 2010 -0700

    Fix IPTOS_CLASS definition.
    (cherry picked from commit 15bac72bac03faeb3b725b1d208c62160f0c3ad7)

diff --git a/ChangeLog b/ChangeLog
index dc80bd3..a78f96d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2010-08-11  Ulrich Drepper  <drepper@redhat.com>
+
+	[BZ #11903]
+	* sysdeps/generic/netinet/ip.h (IPTOS_CLASS): Fix definition.
+	Patch by Evgeni Bikov <bikovevg@iitp.ru>.
+
 2010-08-21  Mike Frysinger  <vapier@gentoo.org>
 
 	* configure.in: Move assembler checks to before sysdep dir checking.
diff --git a/sysdeps/generic/netinet/ip.h b/sysdeps/generic/netinet/ip.h
index a837b98..4955fee 100644
--- a/sysdeps/generic/netinet/ip.h
+++ b/sysdeps/generic/netinet/ip.h
@@ -1,5 +1,4 @@
-/* Copyright (C) 1991,92,93,95,96,97,98,99,2000,2009 Free Software
-   Foundation, Inc.
+/* Copyright (C) 1991-1993,1995-2000,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
@@ -194,7 +193,7 @@ struct ip_timestamp
  */
 
 #define	IPTOS_CLASS_MASK		0xe0
-#define	IPTOS_CLASS(class)		((tos) & IPTOS_CLASS_MASK)
+#define	IPTOS_CLASS(class)		((class) & IPTOS_CLASS_MASK)
 #define	IPTOS_CLASS_CS0			0x00
 #define	IPTOS_CLASS_CS1			0x20
 #define	IPTOS_CLASS_CS2			0x40

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=5657e17a40c738f6dbd675abc3dd666256fddc16

commit 5657e17a40c738f6dbd675abc3dd666256fddc16
Author: Mike Frysinger <vapier@gentoo.org>
Date:   Mon Aug 23 07:51:49 2010 -0700

    Remove multiarch dirs when gnu indirect is not supported
    (cherry picked from commit 84b9230c404aed4fd3a7bb3d045ca367043dde8c)

diff --git a/ChangeLog b/ChangeLog
index 7635848..dc80bd3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2010-08-21  Mike Frysinger  <vapier@gentoo.org>
+
+	* configure.in: Move assembler checks to before sysdep dir checking.
+
 2010-11-24  Andreas Schwab  <schwab@redhat.com>
 
 	* resolv/nss_dns/dns-host.c (getanswer_r): Don't handle ttl == 0
diff --git a/configure b/configure
index 2af27a5..8c9413b 100755
--- a/configure
+++ b/configure
@@ -3805,9 +3805,6 @@ else
   multi_arch=default
 fi
 
-if test x"$multi_arch" != xno; then
-  multi_arch_d=/multiarch
-fi
 
 # Check whether --enable-experimental-malloc was given.
 if test "${enable_experimental_malloc+set}" = set; then
@@ -4241,6 +4238,140 @@ _ACEOF
 
 fi
 
+# For the multi-arch option we need support in the assembler.
+{ $as_echo "$as_me:$LINENO: checking for assembler gnu_indirect_function symbol type support" >&5
+$as_echo_n "checking for assembler gnu_indirect_function symbol type support... " >&6; }
+if test "${libc_cv_asm_gnu_indirect_function+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  cat > conftest.s <<EOF
+.type foo,%gnu_indirect_function
+EOF
+if ${CC-cc} -c $ASFLAGS conftest.s 1>&5 2>&5;
+then
+  libc_cv_asm_gnu_indirect_function=yes
+else
+  libc_cv_asm_gnu_indirect_function=no
+fi
+rm -f conftest*
+fi
+{ $as_echo "$as_me:$LINENO: result: $libc_cv_asm_gnu_indirect_function" >&5
+$as_echo "$libc_cv_asm_gnu_indirect_function" >&6; }
+
+{ $as_echo "$as_me:$LINENO: checking whether .text pseudo-op must be used" >&5
+$as_echo_n "checking whether .text pseudo-op must be used... " >&6; }
+if test "${libc_cv_dot_text+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  cat > conftest.s <<EOF
+.text
+EOF
+libc_cv_dot_text=
+if { ac_try='${CC-cc} $ASFLAGS -c conftest.s 1>&5'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  libc_cv_dot_text=.text
+fi
+rm -f conftest*
+fi
+
+if test -z "$libc_cv_dot_text"; then
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+else
+  { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+fi
+
+{ $as_echo "$as_me:$LINENO: checking for assembler global-symbol directive" >&5
+$as_echo_n "checking for assembler global-symbol directive... " >&6; }
+if test "${libc_cv_asm_global_directive+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  libc_cv_asm_global_directive=UNKNOWN
+for ac_globl in .globl .global .EXPORT; do
+  cat > conftest.s <<EOF
+	${libc_cv_dot_text}
+	${ac_globl} foo
+foo:
+EOF
+  if { ac_try='${CC-cc} $ASFLAGS -c conftest.s 1>&5'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+    libc_cv_asm_global_directive=${ac_globl}
+  fi
+  rm -f conftest*
+  test $libc_cv_asm_global_directive != UNKNOWN && break
+done
+fi
+{ $as_echo "$as_me:$LINENO: result: $libc_cv_asm_global_directive" >&5
+$as_echo "$libc_cv_asm_global_directive" >&6; }
+if test $libc_cv_asm_global_directive = UNKNOWN; then
+  { { $as_echo "$as_me:$LINENO: error: cannot determine asm global directive" >&5
+$as_echo "$as_me: error: cannot determine asm global directive" >&2;}
+   { (exit 1); exit 1; }; }
+else
+  cat >>confdefs.h <<_ACEOF
+#define ASM_GLOBAL_DIRECTIVE ${libc_cv_asm_global_directive}
+_ACEOF
+
+fi
+
+{ $as_echo "$as_me:$LINENO: checking for assembler .type directive prefix" >&5
+$as_echo_n "checking for assembler .type directive prefix... " >&6; }
+if test "${libc_cv_asm_type_prefix+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  libc_cv_asm_type_prefix=no
+for ac_try_prefix in '@' '%' '#'; do
+  cat > conftest.s <<EOF
+	${libc_cv_dot_text}
+	${libc_cv_asm_global_directive} foo
+	.type foo, ${ac_try_prefix}object
+	.size foo, 1
+foo:
+	.byte 1
+EOF
+  if { ac_try='${CC-cc} $ASFLAGS -c conftest.s 1>&5'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+    libc_cv_asm_type_prefix=${ac_try_prefix}
+  fi
+  rm -f conftest*
+  test "x$libc_cv_asm_type_prefix" != xno && break
+done
+fi
+{ $as_echo "$as_me:$LINENO: result: $libc_cv_asm_type_prefix" >&5
+$as_echo "$libc_cv_asm_type_prefix" >&6; }
+if test "x$libc_cv_asm_type_prefix" != xno; then
+  cat >>confdefs.h <<_ACEOF
+#define ASM_TYPE_DIRECTIVE_PREFIX ${libc_cv_asm_type_prefix}
+_ACEOF
+
+fi
+
+if test x"$libc_cv_asm_gnu_indirect_function" != xyes -a x"$libc_cv_asm_type_prefix" = xno; then
+  if test x"$multi_arch" = xyes; then
+    { { $as_echo "$as_me:$LINENO: error: --enable-multi-arch support requires assembler and linker support" >&5
+$as_echo "$as_me: error: --enable-multi-arch support requires assembler and linker support" >&2;}
+   { (exit 1); exit 1; }; }
+  else
+    multi_arch=no
+  fi
+fi
+if test x"$multi_arch" != xno; then
+  multi_arch_d=/multiarch
+fi
+
 # Compute the list of sysdep directories for this configuration.
 # This can take a while to compute.
 sysdep_dir=$srcdir/sysdeps
@@ -4357,35 +4488,14 @@ done
 
 # If the assembler supports gnu_indirect_function symbol type and the
 # architecture supports multi-arch, we enable multi-arch by default.
-if test "$multi_arch" = default; then
-{ $as_echo "$as_me:$LINENO: checking for assembler gnu_indirect_function symbol type support" >&5
-$as_echo_n "checking for assembler gnu_indirect_function symbol type support... " >&6; }
-if test "${libc_cv_asm_gnu_indirect_function+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat > conftest.s <<EOF
-.type foo,%gnu_indirect_function
-EOF
-if ${CC-cc} -c $ASFLAGS conftest.s 1>&5 2>&5;
-then
-  libc_cv_asm_gnu_indirect_function=yes
-else
-  libc_cv_asm_gnu_indirect_function=no
-fi
-rm -f conftest*
-fi
-{ $as_echo "$as_me:$LINENO: result: $libc_cv_asm_gnu_indirect_function" >&5
-$as_echo "$libc_cv_asm_gnu_indirect_function" >&6; }
+case $sysnames_add_ons$sysnames in
+*"$multi_arch_d"*)
+  ;;
+*)
   multi_arch=no
-  if test "$libc_cv_asm_gnu_indirect_function" = yes; then
-    case $sysnames_add_ons$sysnames in
-    *"$multi_arch_d"*)
-       multi_arch=yes
-      ;;
-    esac
-  fi
-fi
-if test x"$multi_arch" = xyes; then
+  ;;
+esac
+if test x"$multi_arch" != xno; then
   cat >>confdefs.h <<\_ACEOF
 #define USE_MULTIARCH 1
 _ACEOF
@@ -5916,71 +6026,6 @@ if test $libc_cv_need_minus_P = yes; then
 asm-CPPFLAGS = -P # The assembler can't grok cpp's # line directives."
 fi
 
-{ $as_echo "$as_me:$LINENO: checking whether .text pseudo-op must be used" >&5
-$as_echo_n "checking whether .text pseudo-op must be used... " >&6; }
-if test "${libc_cv_dot_text+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat > conftest.s <<EOF
-.text
-EOF
-libc_cv_dot_text=
-if { ac_try='${CC-cc} $ASFLAGS -c conftest.s 1>&5'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  libc_cv_dot_text=.text
-fi
-rm -f conftest*
-fi
-
-if test -z "$libc_cv_dot_text"; then
-  { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-else
-  { $as_echo "$as_me:$LINENO: result: yes" >&5
-$as_echo "yes" >&6; }
-fi
-
-{ $as_echo "$as_me:$LINENO: checking for assembler global-symbol directive" >&5
-$as_echo_n "checking for assembler global-symbol directive... " >&6; }
-if test "${libc_cv_asm_global_directive+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  libc_cv_asm_global_directive=UNKNOWN
-for ac_globl in .globl .global .EXPORT; do
-  cat > conftest.s <<EOF
-	${libc_cv_dot_text}
-	${ac_globl} foo
-foo:
-EOF
-  if { ac_try='${CC-cc} $ASFLAGS -c conftest.s 1>&5'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-    libc_cv_asm_global_directive=${ac_globl}
-  fi
-  rm -f conftest*
-  test $libc_cv_asm_global_directive != UNKNOWN && break
-done
-fi
-{ $as_echo "$as_me:$LINENO: result: $libc_cv_asm_global_directive" >&5
-$as_echo "$libc_cv_asm_global_directive" >&6; }
-if test $libc_cv_asm_global_directive = UNKNOWN; then
-  { { $as_echo "$as_me:$LINENO: error: cannot determine asm global directive" >&5
-$as_echo "$as_me: error: cannot determine asm global directive" >&2;}
-   { (exit 1); exit 1; }; }
-else
-  cat >>confdefs.h <<_ACEOF
-#define ASM_GLOBAL_DIRECTIVE ${libc_cv_asm_global_directive}
-_ACEOF
-
-fi
-
 { $as_echo "$as_me:$LINENO: checking for .set assembler directive" >&5
 $as_echo_n "checking for .set assembler directive... " >&6; }
 if test "${libc_cv_asm_set_directive+set}" = set; then
@@ -6016,42 +6061,6 @@ _ACEOF
 
 fi
 
-{ $as_echo "$as_me:$LINENO: checking for assembler .type directive prefix" >&5
-$as_echo_n "checking for assembler .type directive prefix... " >&6; }
-if test "${libc_cv_asm_type_prefix+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  libc_cv_asm_type_prefix=no
-for ac_try_prefix in '@' '%' '#'; do
-  cat > conftest.s <<EOF
-	${libc_cv_dot_text}
-	${libc_cv_asm_global_directive} foo
-	.type foo, ${ac_try_prefix}object
-	.size foo, 1
-foo:
-	.byte 1
-EOF
-  if { ac_try='${CC-cc} $ASFLAGS -c conftest.s 1>&5'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-    libc_cv_asm_type_prefix=${ac_try_prefix}
-  fi
-  rm -f conftest*
-  test "x$libc_cv_asm_type_prefix" != xno && break
-done
-fi
-{ $as_echo "$as_me:$LINENO: result: $libc_cv_asm_type_prefix" >&5
-$as_echo "$libc_cv_asm_type_prefix" >&6; }
-if test "x$libc_cv_asm_type_prefix" != xno; then
-  cat >>confdefs.h <<_ACEOF
-#define ASM_TYPE_DIRECTIVE_PREFIX ${libc_cv_asm_type_prefix}
-_ACEOF
-
-fi
-
 { $as_echo "$as_me:$LINENO: checking for assembler gnu_unique_object symbol type" >&5
 $as_echo_n "checking for assembler gnu_unique_object symbol type... " >&6; }
 if test "${libc_cv_asm_unique_object+set}" = set; then
@@ -6078,37 +6087,6 @@ _ACEOF
 
 fi
 
-# For the multi-arch option we need support in the assembler.
-if test "$multi_arch" = yes; then
-  if test "x$libc_cv_asm_type_prefix" != xno; then
-{ $as_echo "$as_me:$LINENO: checking for assembler gnu_indirect_function symbol type support" >&5
-$as_echo_n "checking for assembler gnu_indirect_function symbol type support... " >&6; }
-if test "${libc_cv_asm_gnu_indirect_function+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat > conftest.s <<EOF
-.type foo,%gnu_indirect_function
-EOF
-if ${CC-cc} -c $ASFLAGS conftest.s 1>&5 2>&5;
-then
-  libc_cv_asm_gnu_indirect_function=yes
-else
-  libc_cv_asm_gnu_indirect_function=no
-fi
-rm -f conftest*
-fi
-{ $as_echo "$as_me:$LINENO: result: $libc_cv_asm_gnu_indirect_function" >&5
-$as_echo "$libc_cv_asm_gnu_indirect_function" >&6; }
-  else
-    libc_cv_asm_gnu_indirect_function=no
-  fi
-  if test x"$libc_cv_asm_gnu_indirect_function" != xyes; then
-    { { $as_echo "$as_me:$LINENO: error: --enable-multi-arch support requires assembler and linker support" >&5
-$as_echo "$as_me: error: --enable-multi-arch support requires assembler and linker support" >&2;}
-   { (exit 1); exit 1; }; }
-  fi
-fi
-
 { $as_echo "$as_me:$LINENO: checking for .symver assembler directive" >&5
 $as_echo_n "checking for .symver assembler directive... " >&6; }
 if test "${libc_cv_asm_symver_directive+set}" = set; then
diff --git a/configure.in b/configure.in
index 036a950..098adf4 100644
--- a/configure.in
+++ b/configure.in
@@ -273,9 +273,6 @@ AC_ARG_ENABLE([multi-arch],
 			     [enable single DSO with optimizations for multiple architectures]),
 	      [multi_arch=$enableval],
 	      [multi_arch=default])
-if test x"$multi_arch" != xno; then
-  multi_arch_d=/multiarch
-fi
 
 AC_ARG_ENABLE([experimental-malloc],
 	      AC_HELP_STRING([--enable-experimental-malloc],
@@ -603,6 +600,90 @@ if test "$base_machine" = "i386"; then
   AC_DEFINE(USE_REGPARMS)
 fi
 
+# For the multi-arch option we need support in the assembler.
+AC_CACHE_CHECK([for assembler gnu_indirect_function symbol type support],
+               libc_cv_asm_gnu_indirect_function, [dnl
+cat > conftest.s <<EOF
+.type foo,%gnu_indirect_function
+EOF
+if ${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD;
+then
+  libc_cv_asm_gnu_indirect_function=yes
+else
+  libc_cv_asm_gnu_indirect_function=no
+fi
+rm -f conftest*])
+
+AC_MSG_CHECKING(whether .text pseudo-op must be used)
+AC_CACHE_VAL(libc_cv_dot_text, [dnl
+cat > conftest.s <<EOF
+.text
+EOF
+libc_cv_dot_text=
+if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
+  libc_cv_dot_text=.text
+fi
+rm -f conftest*])
+if test -z "$libc_cv_dot_text"; then
+  AC_MSG_RESULT(no)
+else
+  AC_MSG_RESULT(yes)
+fi
+
+AC_CACHE_CHECK(for assembler global-symbol directive,
+	       libc_cv_asm_global_directive, [dnl
+libc_cv_asm_global_directive=UNKNOWN
+for ac_globl in .globl .global .EXPORT; do
+  cat > conftest.s <<EOF
+	${libc_cv_dot_text}
+	${ac_globl} foo
+foo:
+EOF
+  if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
+    libc_cv_asm_global_directive=${ac_globl}
+  fi
+  rm -f conftest*
+  test $libc_cv_asm_global_directive != UNKNOWN && break
+done])
+if test $libc_cv_asm_global_directive = UNKNOWN; then
+  AC_MSG_ERROR(cannot determine asm global directive)
+else
+  AC_DEFINE_UNQUOTED(ASM_GLOBAL_DIRECTIVE, ${libc_cv_asm_global_directive})
+fi
+
+AC_CACHE_CHECK(for assembler .type directive prefix,
+	       libc_cv_asm_type_prefix, [dnl
+libc_cv_asm_type_prefix=no
+for ac_try_prefix in '@' '%' '#'; do
+  cat > conftest.s <<EOF
+	${libc_cv_dot_text}
+	${libc_cv_asm_global_directive} foo
+	.type foo, ${ac_try_prefix}object
+	.size foo, 1
+foo:
+	.byte 1
+EOF
+  if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
+    libc_cv_asm_type_prefix=${ac_try_prefix}
+  fi
+  rm -f conftest*
+  test "x$libc_cv_asm_type_prefix" != xno && break
+done])
+if test "x$libc_cv_asm_type_prefix" != xno; then
+  AC_DEFINE_UNQUOTED(ASM_TYPE_DIRECTIVE_PREFIX, ${libc_cv_asm_type_prefix})
+fi
+
+if test x"$libc_cv_asm_gnu_indirect_function" != xyes -a x"$libc_cv_asm_type_prefix" = xno; then
+  if test x"$multi_arch" = xyes; then
+    AC_MSG_ERROR([--enable-multi-arch support requires assembler and linker support])
+  else
+    multi_arch=no
+  fi
+fi
+if test x"$multi_arch" != xno; then
+  multi_arch_d=/multiarch
+fi
+
 # Compute the list of sysdep directories for this configuration.
 # This can take a while to compute.
 sysdep_dir=$srcdir/sysdeps
@@ -722,29 +803,14 @@ done
 
 # If the assembler supports gnu_indirect_function symbol type and the
 # architecture supports multi-arch, we enable multi-arch by default.
-if test "$multi_arch" = default; then
-AC_CACHE_CHECK([for assembler gnu_indirect_function symbol type support],
-               libc_cv_asm_gnu_indirect_function, [dnl
-cat > conftest.s <<EOF
-.type foo,%gnu_indirect_function
-EOF
-if ${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD;
-then
-  libc_cv_asm_gnu_indirect_function=yes
-else
-  libc_cv_asm_gnu_indirect_function=no
-fi
-rm -f conftest*])
+case $sysnames_add_ons$sysnames in
+*"$multi_arch_d"*)
+  ;;
+*)
   multi_arch=no
-  if test "$libc_cv_asm_gnu_indirect_function" = yes; then
-    case $sysnames_add_ons$sysnames in
-    *"$multi_arch_d"*)
-       multi_arch=yes
-      ;;
-    esac
-  fi
-fi
-if test x"$multi_arch" = xyes; then
+  ;;
+esac
+if test x"$multi_arch" != xno; then
   AC_DEFINE(USE_MULTIARCH)
 fi
 AC_SUBST(multi_arch)
@@ -1172,43 +1238,6 @@ if test $libc_cv_need_minus_P = yes; then
 asm-CPPFLAGS = -P # The assembler can't grok cpp's # line directives."
 fi
 
-AC_MSG_CHECKING(whether .text pseudo-op must be used)
-AC_CACHE_VAL(libc_cv_dot_text, [dnl
-cat > conftest.s <<EOF
-.text
-EOF
-libc_cv_dot_text=
-if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
-  libc_cv_dot_text=.text
-fi
-rm -f conftest*])
-if test -z "$libc_cv_dot_text"; then
-  AC_MSG_RESULT(no)
-else
-  AC_MSG_RESULT(yes)
-fi
-
-AC_CACHE_CHECK(for assembler global-symbol directive,
-	       libc_cv_asm_global_directive, [dnl
-libc_cv_asm_global_directive=UNKNOWN
-for ac_globl in .globl .global .EXPORT; do
-  cat > conftest.s <<EOF
-	${libc_cv_dot_text}
-	${ac_globl} foo
-foo:
-EOF
-  if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
-    libc_cv_asm_global_directive=${ac_globl}
-  fi
-  rm -f conftest*
-  test $libc_cv_asm_global_directive != UNKNOWN && break
-done])
-if test $libc_cv_asm_global_directive = UNKNOWN; then
-  AC_MSG_ERROR(cannot determine asm global directive)
-else
-  AC_DEFINE_UNQUOTED(ASM_GLOBAL_DIRECTIVE, ${libc_cv_asm_global_directive})
-fi
-
 AC_CACHE_CHECK(for .set assembler directive, libc_cv_asm_set_directive, [dnl
 cat > conftest.s <<EOF
 ${libc_cv_dot_text}
@@ -1234,28 +1263,6 @@ if test $libc_cv_asm_set_directive = yes; then
   AC_DEFINE(HAVE_ASM_SET_DIRECTIVE)
 fi
 
-AC_CACHE_CHECK(for assembler .type directive prefix,
-	       libc_cv_asm_type_prefix, [dnl
-libc_cv_asm_type_prefix=no
-for ac_try_prefix in '@' '%' '#'; do
-  cat > conftest.s <<EOF
-	${libc_cv_dot_text}
-	${libc_cv_asm_global_directive} foo
-	.type foo, ${ac_try_prefix}object
-	.size foo, 1
-foo:
-	.byte 1
-EOF
-  if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
-    libc_cv_asm_type_prefix=${ac_try_prefix}
-  fi
-  rm -f conftest*
-  test "x$libc_cv_asm_type_prefix" != xno && break
-done])
-if test "x$libc_cv_asm_type_prefix" != xno; then
-  AC_DEFINE_UNQUOTED(ASM_TYPE_DIRECTIVE_PREFIX, ${libc_cv_asm_type_prefix})
-fi
-
 AC_CACHE_CHECK(for assembler gnu_unique_object symbol type,
 	       libc_cv_asm_unique_object, [dnl
 cat > conftest.s <<EOF
@@ -1273,29 +1280,6 @@ if test $libc_cv_asm_unique_object = yes; then
   AC_DEFINE(HAVE_ASM_UNIQUE_OBJECT)
 fi
 
-# For the multi-arch option we need support in the assembler.
-if test "$multi_arch" = yes; then
-  if test "x$libc_cv_asm_type_prefix" != xno; then
-AC_CACHE_CHECK([for assembler gnu_indirect_function symbol type support],
-               libc_cv_asm_gnu_indirect_function, [dnl
-cat > conftest.s <<EOF
-.type foo,%gnu_indirect_function
-EOF
-if ${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD;
-then
-  libc_cv_asm_gnu_indirect_function=yes
-else
-  libc_cv_asm_gnu_indirect_function=no
-fi
-rm -f conftest*])
-  else
-    libc_cv_asm_gnu_indirect_function=no
-  fi
-  if test x"$libc_cv_asm_gnu_indirect_function" != xyes; then
-    AC_MSG_ERROR([--enable-multi-arch support requires assembler and linker support])
-  fi
-fi
-
 AC_CACHE_CHECK(for .symver assembler directive, libc_cv_asm_symver_directive,
 [cat > conftest.s <<EOF
 ${libc_cv_dot_text}

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                    |   37 +++++
 NEWS                         |   16 ++-
 configure                    |  304 +++++++++++++++++++----------------------
 configure.in                 |  198 +++++++++++++---------------
 stdlib/msort.c               |    6 +-
 string/bits/string3.h        |    8 +-
 sysdeps/generic/netinet/ip.h |    5 +-
 version.h                    |    2 +-
 wcsmbs/bits/wchar2.h         |   44 ++++---
 wcsmbs/wchar.h               |    8 +-
 10 files changed, 323 insertions(+), 305 deletions(-)


hooks/post-receive
-- 
GNU C Library master sources



More information about the Glibc-cvs mailing list