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

[commits] r646 - in /fsf/trunk/libc: ./ elf/ include/ posix/ string/ sysdeps/gnu/ sysdeps/posix/ sysdeps/unix/sysv/linux/i386/ sysdeps...



Author: eglibc
Date: Fri Nov 10 00:01:24 2006
New Revision: 646

Log:
Import glibc-mainline for 2006-11-10

Added:
    fsf/trunk/libc/string/tst-strxfrm2.c
Modified:
    fsf/trunk/libc/ChangeLog
    fsf/trunk/libc/elf/dl-debug.c
    fsf/trunk/libc/elf/dl-load.c
    fsf/trunk/libc/include/libc-symbols.h
    fsf/trunk/libc/posix/unistd.h
    fsf/trunk/libc/string/Makefile
    fsf/trunk/libc/string/strxfrm_l.c
    fsf/trunk/libc/sysdeps/gnu/errlist-compat.awk
    fsf/trunk/libc/sysdeps/gnu/siglist.c
    fsf/trunk/libc/sysdeps/posix/getaddrinfo.c
    fsf/trunk/libc/sysdeps/unix/sysv/linux/i386/sysconf.c
    fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/sysconf.c

Modified: fsf/trunk/libc/ChangeLog
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- fsf/trunk/libc/ChangeLog (original)
+++ fsf/trunk/libc/ChangeLog Fri Nov 10 00:01:24 2006
@@ -1,3 +1,56 @@
+2006-11-09  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/x86_64/sysconf.c (intel_check_word): Add
+	noinline attribute.
+
+2006-11-10  Jakub Jelinek  <jakub@xxxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/i386/sysconf.c (intel_check_word): Add
+	noinline attribute.
+
+	* sysdeps/gnu/siglist.c (__old_sys_siglist, __old_sys_sigabbrev):
+	Use __new_sys_siglist instead of _sys_siglist_internal as
+	second macro argument.
+	(_old_sys_siglist): Use declare_symbol_alias macro instead of
+	strong_alias.
+
+2006-11-09  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	[BZ #3493]
+	* posix/unistd.h (sysconf): Remove const attribute.
+
+	* sysdeps/posix/getaddrinfo.c (getaddrinfo): Fix test for
+	temporary or deprecated addresses.
+	Patch by Sridhar Samudrala <sri@xxxxxxxxxx>.
+
+	* string/Makefile (tests): Add tst-strxfrm2.
+	* string/tst-strxfrm2.c: New file.
+
+2006-10-09  Jakub Jelinek  <jakub@xxxxxxxxxx>
+
+	* elf/dl-debug.c (_dl_debug_initialize): Check r->r_map for 0
+	rather than r->r_brk.
+
+2006-11-08  Jakub Jelinek  <jakub@xxxxxxxxxx>
+
+	* string/strxfrm_l.c (STRXFRM): Do the trailing \1 removal
+	optimization even if needed > n.
+
+	* elf/dl-load.c (decompose_rpath): Return bool rather than void.
+	If l->l_name is on inhibit_rpath list, set sps->dirs to -1 and
+	return false, otherwise return true.
+	(cache_rpath): Return decompose_rpath return value.
+
+2006-11-07  Jakub Jelinek  <jakub@xxxxxxxxxx>
+
+	* include/libc-symbols.h (declare_symbol): Rename to...
+	(declare_symbol_alias): ... this.  Add ORIGINAL argument, imply
+	strong_alias (ORIGINAL, SYMBOL) in asm to make sure it preceedes
+	.size directive.
+	* sysdeps/gnu/errlist-compat.awk: Adjust for declare_symbol_alias
+	changes.
+	* sysdeps/gnu/siglist.c: Likewise.
+
 2006-11-03  Steven Munroe  <sjmunroe@xxxxxxxxxx>
 =

 	* sysdeps/powerpc/fpu/bits/mathinline.h

Modified: fsf/trunk/libc/elf/dl-debug.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- fsf/trunk/libc/elf/dl-debug.c (original)
+++ fsf/trunk/libc/elf/dl-debug.c Fri Nov 10 00:01:24 2006
@@ -54,7 +54,7 @@
   else
     r =3D &GL(dl_ns)[ns]._ns_debug;
 =

-  if (r->r_brk =3D=3D 0 || ldbase !=3D 0)
+  if (r->r_map =3D=3D NULL || ldbase !=3D 0)
     {
       /* Tell the debugger where to find the map of loaded objects.  */
       r->r_version =3D 1	/* R_DEBUG_VERSION XXX */;

Modified: fsf/trunk/libc/elf/dl-load.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- fsf/trunk/libc/elf/dl-load.c (original)
+++ fsf/trunk/libc/elf/dl-load.c Fri Nov 10 00:01:24 2006
@@ -511,7 +511,7 @@
 }
 =

 =

-static void
+static bool
 internal_function
 decompose_rpath (struct r_search_path_struct *sps,
 		 const char *rpath, struct link_map *l, const char *what)
@@ -546,19 +546,8 @@
 	    {
 	      /* This object is on the list of objects for which the
 		 RUNPATH and RPATH must not be used.  */
-	      result =3D calloc (1, sizeof *result);
-	      if (result =3D=3D NULL)
-		{
-		signal_error_cache:
-		  errstring =3D N_("cannot create cache for search path");
-		signal_error:
-		  _dl_signal_error (ENOMEM, NULL, NULL, errstring);
-		}
-
-	      sps->dirs =3D result;
-	      sps->malloced =3D 1;
-
-	      return;
+	      sps->dirs =3D (void *) -1;
+	      return false;
 	    }
 =

 	  while (*inhp !=3D '\0')
@@ -588,7 +577,11 @@
   result =3D (struct r_search_path_elem **) malloc ((nelems + 1 + 1)
 						  * sizeof (*result));
   if (result =3D=3D NULL)
-    goto signal_error_cache;
+    {
+      errstring =3D N_("cannot create cache for search path");
+    signal_error:
+      _dl_signal_error (ENOMEM, NULL, NULL, errstring);
+    }
 =

   fillin_rpath (copy, result, ":", 0, what, where);
 =

@@ -599,6 +592,7 @@
   sps->dirs =3D result;
   /* The caller will change this value if we haven't used a real malloc.  =
*/
   sps->malloced =3D 1;
+  return true;
 }
 =

 /* Make sure cached path information is stored in *SP
@@ -623,10 +617,9 @@
     }
 =

   /* Make sure the cache information is available.  */
-  decompose_rpath (sp, (const char *) (D_PTR (l, l_info[DT_STRTAB])
-				       + l->l_info[tag]->d_un.d_val),
-		   l, what);
-  return true;
+  return decompose_rpath (sp, (const char *) (D_PTR (l, l_info[DT_STRTAB])
+					      + l->l_info[tag]->d_un.d_val),
+			  l, what);
 }
 =

 =


Modified: fsf/trunk/libc/include/libc-symbols.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- fsf/trunk/libc/include/libc-symbols.h (original)
+++ fsf/trunk/libc/include/libc-symbols.h Fri Nov 10 00:01:24 2006
@@ -294,27 +294,42 @@
 for linking")
 #endif
 =

-/* Declare SYMBOL to be TYPE (`function' or `object') and of SIZE bytes,
-   when the assembler supports such declarations (such as in ELF).
+/* Declare SYMBOL to be TYPE (`function' or `object') of SIZE bytes
+   alias to ORIGINAL, when the assembler supports such declarations
+   (such as in ELF).
    This is only necessary when defining something in assembly, or playing
    funny alias games where the size should be other than what the compiler
    thinks it is.  */
-#define declare_symbol(symbol, type, size) \
-  declare_symbol_1 (symbol, type, size)
+#define declare_symbol_alias(symbol, original, type, size) \
+  declare_symbol_alias_1 (symbol, original, type, size)
 #ifdef ASM_TYPE_DIRECTIVE_PREFIX
 # ifdef __ASSEMBLER__
-#  define declare_symbol_1(symbol, type, size) \
+#  define declare_symbol_alias_1(symbol, original, type, size) \
+    strong_alias (original, symbol); \
     .type C_SYMBOL_NAME (symbol), \
-	  declare_symbol_1_paste (ASM_TYPE_DIRECTIVE_PREFIX, type), size
-#  define declare_symbol_1_paste(a, b)	declare_symbol_1_paste_1 (a,b)
-#  define declare_symbol_1_paste_1(a,b)	a##b
+	  declare_symbol_alias_1_paste (ASM_TYPE_DIRECTIVE_PREFIX, type); \
+    .size C_SYMBOL_NAME (symbol), size
+#  define declare_symbol_alias_1_paste(a, b) \
+  declare_symbol_alias_1_paste_1 (a,b)
+#  define declare_symbol_alias_1_paste_1(a,b)	a##b
 # else /* Not __ASSEMBLER__.  */
-#  define declare_symbol_1(symbol, type, size) \
-    asm (".type " __SYMBOL_PREFIX #symbol ", " \
-	 declare_symbol_1_stringify (ASM_TYPE_DIRECTIVE_PREFIX) #type \
+#  define declare_symbol_alias_1(symbol, original, type, size) \
+    asm (declare_symbol_alias_1_stringify (ASM_GLOBAL_DIRECTIVE) \
+	 " " __SYMBOL_PREFIX #symbol \
+	 "\n\t" declare_symbol_alias_1_alias (symbol, original) \
+	 "\n\t.type " __SYMBOL_PREFIX #symbol ", " \
+	 declare_symbol_alias_1_stringify (ASM_TYPE_DIRECTIVE_PREFIX) #type \
 	 "\n\t.size " __SYMBOL_PREFIX #symbol ", " #size);
-#  define declare_symbol_1_stringify(x) declare_symbol_1_stringify_1 (x)
-#  define declare_symbol_1_stringify_1(x) #x
+#  define declare_symbol_alias_1_stringify(x) \
+  declare_symbol_alias_1_stringify_1 (x)
+#  define declare_symbol_alias_1_stringify_1(x) #x
+#  ifdef HAVE_ASM_SET_DIRECTIVE
+#   define declare_symbol_alias_1_alias(symbol, original) \
+	 ".set " __SYMBOL_PREFIX #symbol ", " __SYMBOL_PREFIX #original
+#  else
+#   define declare_symbol_alias_1_alias(symbol, original) \
+	 __SYMBOL_PREFIX #symbol " =3D " __SYMBOL_PREFIX #original
+#  endif /* HAVE_ASM_SET_DIRECTIVE */
 # endif /* __ASSEMBLER__ */
 #else
 # define declare_symbol_1(symbol, type, size) /* Nothing.  */

Modified: fsf/trunk/libc/posix/unistd.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- fsf/trunk/libc/posix/unistd.h (original)
+++ fsf/trunk/libc/posix/unistd.h Fri Nov 10 00:01:24 2006
@@ -559,7 +559,7 @@
 extern long int fpathconf (int __fd, int __name) __THROW;
 =

 /* Get the value of the system variable NAME.  */
-extern long int sysconf (int __name) __THROW __attribute__ ((__const__));
+extern long int sysconf (int __name) __THROW;
 =

 #ifdef	__USE_POSIX2
 /* Get the value of the string-valued system variable NAME.  */

Modified: fsf/trunk/libc/string/Makefile
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- fsf/trunk/libc/string/Makefile (original)
+++ fsf/trunk/libc/string/Makefile Fri Nov 10 00:01:24 2006
@@ -54,7 +54,7 @@
 		   bug-strncat1 bug-strspn1 bug-strpbrk1 tst-bswap	\
 		   tst-strtok tst-strxfrm bug-strcoll1 tst-strfry	\
 		   bug-strtok1 $(addprefix test-,$(strop-tests))	\
-		   bug-envz1
+		   bug-envz1 tst-strxfrm2
 distribute	:=3D memcopy.h pagecopy.h tst-svc.expect test-string.h
 =

 =


Modified: fsf/trunk/libc/string/strxfrm_l.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- fsf/trunk/libc/string/strxfrm_l.c (original)
+++ fsf/trunk/libc/string/strxfrm_l.c Fri Nov 10 00:01:24 2006
@@ -1,4 +1,5 @@
-/* Copyright (C) 1995,96,97,2002, 2004, 2005 Free Software Foundation, Inc.
+/* Copyright (C) 1995, 1996, 1997, 2002, 2004, 2005, 2006
+   Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Written by Ulrich Drepper <drepper@xxxxxxx>, 1995.
 =

@@ -96,6 +97,7 @@
   const int32_t *indirect;
   uint_fast32_t pass;
   size_t needed;
+  size_t last_needed;
   const USTRING_TYPE *usrc;
   size_t srclen =3D STRLEN (src);
   int32_t *idxarr;
@@ -197,6 +199,7 @@
 	 this is true for all of them.  */
       int position =3D rule & sort_position;
 =

+      last_needed =3D needed;
       if (position =3D=3D 0)
 	{
 	  for (idxcnt =3D 0; idxcnt < idxmax; ++idxcnt)
@@ -426,11 +429,11 @@
      a `position' rule at the end and if no non-ignored character
      is found the last \1 byte is immediately followed by a \0 byte
      signalling this.  We can avoid the \1 byte(s).  */
-  if (needed <=3D n && needed > 2 && dest[needed - 2] =3D=3D L('\1'))
+  if (needed > 2 && needed =3D=3D last_needed + 1)
     {
       /* Remove the \1 byte.  */
-      --needed;
-      dest[needed - 1] =3D L('\0');
+      if (--needed < n)
+	dest[needed - 1] =3D L('\0');
     }
 =

   /* Free the memory if needed.  */

Added: fsf/trunk/libc/string/tst-strxfrm2.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- fsf/trunk/libc/string/tst-strxfrm2.c (added)
+++ fsf/trunk/libc/string/tst-strxfrm2.c Fri Nov 10 00:01:24 2006
@@ -1,0 +1,43 @@
+#include <locale.h>
+#include <stdio.h>
+#include <string.h>
+
+static int
+do_test (void)
+{
+  int res =3D 0;
+
+  char buf[10];
+  size_t l1 =3D strxfrm (NULL, "ab", 0);
+  size_t l2 =3D strxfrm (buf, "ab", 1);
+  size_t l3 =3D strxfrm (buf, "ab", sizeof (buf));
+
+  if (l1 !=3D l2 || l1 !=3D l3)
+    {
+      puts ("C locale test failed");
+      res =3D 1;
+    }
+
+  if (setlocale (LC_ALL, "de_DE.UTF-8") =3D=3D NULL)
+    {
+      puts ("setlocale failed");
+      res =3D 1;
+    }
+  else
+    {
+      l1 =3D strxfrm (NULL, "ab", 0);
+      l2 =3D strxfrm (buf, "ab", 1);
+      l3 =3D strxfrm (buf, "ab", sizeof (buf));
+
+      if (l1 !=3D l2 || l1 !=3D l3)
+	{
+	  puts ("UTF-8 locale test failed");
+	  res =3D 1;
+	}
+    }
+
+  return res;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"

Modified: fsf/trunk/libc/sysdeps/gnu/errlist-compat.awk
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- fsf/trunk/libc/sysdeps/gnu/errlist-compat.awk (original)
+++ fsf/trunk/libc/sysdeps/gnu/errlist-compat.awk Fri Nov 10 00:01:24 2006
@@ -1,5 +1,5 @@
 # awk script to generate errlist-compat.c
-# Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+# Copyright (C) 2002, 2004, 2006 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
@@ -92,16 +92,18 @@
     printf "# include <bits/wordsize.h>\n";
     printf "extern const char *const __sys_errlist_%s[NERR];\n", old;
     printf "const int __sys_nerr_%s =3D %d;\n", old, n;
-    printf "strong_alias (_sys_errlist_internal, __sys_errlist_%s)\n", old;
-    printf "declare_symbol (__sys_errlist_%s, object, __WORDSIZE/8*%d)\n",=
 \
-      old, n;
+    printf "declare_symbol_alias (__sys_errlist_%s, _sys_errlist_internal,=
", \
+      old;
+    printf " object, __WORDSIZE/8*%d)\n", n;
     printf "compat_symbol (libc, __sys_errlist_%s, sys_errlist, %s);\n", \
       old, old;
     printf "compat_symbol (libc, __sys_nerr_%s, sys_nerr, %s);\n", old, ol=
d;
 =

     printf "extern const char *const ___sys_errlist_%s[NERR];\n", old;
     printf "extern const int __sys_nerr_%s;\n", old;
-    printf "strong_alias (__sys_errlist_%s, ___sys_errlist_%s)\n", old, ol=
d;
+    printf "declare_symbol_alias (___sys_errlist_%s, _sys_errlist_internal=
,", \
+      old;
+    printf " object, __WORDSIZE/8*%d)\n", n;
     printf "strong_alias (__sys_nerr_%s, ___sys_nerr_%s)\n", old, old;
     printf "compat_symbol (libc, ___sys_errlist_%s, _sys_errlist, %s);\n",=
 \
       old, old;

Modified: fsf/trunk/libc/sysdeps/gnu/siglist.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- fsf/trunk/libc/sysdeps/gnu/siglist.c (original)
+++ fsf/trunk/libc/sysdeps/gnu/siglist.c Fri Nov 10 00:01:24 2006
@@ -1,5 +1,5 @@
 /* Define list of all signal numbers and their names.
-   Copyright (C) 1997-2000, 2002, 2003 Free Software Foundation, Inc.
+   Copyright (C) 1997-2000, 2002, 2003, 2006 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
@@ -40,27 +40,30 @@
 strong_alias (__new_sys_sigabbrev, _sys_sigabbrev_internal)
 =

 #if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
-strong_alias (_sys_siglist_internal, __old_sys_siglist)
-declare_symbol (__old_sys_siglist, object, OLD_SIGLIST_SIZE * __WORDSIZE /=
 8)
+declare_symbol_alias (__old_sys_siglist, __new_sys_siglist, object,
+		      OLD_SIGLIST_SIZE * __WORDSIZE / 8)
 =

-strong_alias (_sys_sigabbrev_internal, __old_sys_sigabbrev)
-declare_symbol (__old_sys_sigabbrev, object, OLD_SIGLIST_SIZE * __WORDSIZE=
 / 8)
+declare_symbol_alias (__old_sys_sigabbrev, __new_sys_sigabbrev, object,
+		      OLD_SIGLIST_SIZE * __WORDSIZE / 8)
 =

-strong_alias (__old_sys_siglist, _old_sys_siglist)
+declare_symbol_alias (_old_sys_siglist, __new_sys_siglist, object,
+		      OLD_SIGLIST_SIZE * __WORDSIZE / 8)
+
 compat_symbol (libc, __old_sys_siglist, _sys_siglist, GLIBC_2_0);
 compat_symbol (libc, _old_sys_siglist, sys_siglist, GLIBC_2_0);
 compat_symbol (libc, __old_sys_sigabbrev, sys_sigabbrev, GLIBC_2_0);
 #endif
 =

 #if SHLIB_COMPAT (libc, GLIBC_2_1, GLIBC_2_3_3) && defined OLD2_SIGLIST_SI=
ZE
-strong_alias (_sys_siglist_internal, __old2_sys_siglist)
-declare_symbol (__old2_sys_siglist, object, OLD2_SIGLIST_SIZE * __WORDSIZE=
 / 8)
+declare_symbol_alias (__old2_sys_siglist, __new_sys_siglist, object,
+		      OLD2_SIGLIST_SIZE * __WORDSIZE / 8)
 =

-strong_alias (_sys_sigabbrev_internal, __old2_sys_sigabbrev)
-declare_symbol (__old2_sys_sigabbrev, object,
-		OLD2_SIGLIST_SIZE * __WORDSIZE / 8)
+declare_symbol_alias (__old2_sys_sigabbrev, __new_sys_sigabbrev, object,
+		      OLD2_SIGLIST_SIZE * __WORDSIZE / 8)
 =

-strong_alias (__old2_sys_siglist, _old2_sys_siglist)
+declare_symbol_alias (_old2_sys_siglist, __new_sys_siglist, object,
+		      OLD2_SIGLIST_SIZE * __WORDSIZE / 8)
+
 compat_symbol (libc, __old2_sys_siglist, _sys_siglist, GLIBC_2_1);
 compat_symbol (libc, _old2_sys_siglist, sys_siglist, GLIBC_2_1);
 compat_symbol (libc, __old2_sys_sigabbrev, sys_sigabbrev, GLIBC_2_1);

Modified: fsf/trunk/libc/sysdeps/posix/getaddrinfo.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- fsf/trunk/libc/sysdeps/posix/getaddrinfo.c (original)
+++ fsf/trunk/libc/sysdeps/posix/getaddrinfo.c Fri Nov 10 00:01:24 2006
@@ -2085,10 +2085,12 @@
 =

 		  if (q->ai_family =3D=3D PF_INET6 && in6ai !=3D NULL)
 		    {
-		      /* See whether the address is the list of deprecated
-			 or temporary addresses.  */
+		      /* See whether the source address is the list of
+			 deprecated or temporary addresses.  */
 		      struct in6addrinfo tmp;
-		      memcpy (tmp.addr, q->ai_addr, IN6ADDRSZ);
+		      struct sockaddr_in6 *sin6p
+			=3D (struct sockaddr_in6 *) &results[i].source_addr;
+		      memcpy (tmp.addr, &sin6p->sin6_addr, IN6ADDRSZ);
 =

 		      struct in6addrinfo *found
 			=3D bsearch (&tmp, in6ai, in6ailen, sizeof (*in6ai),

Modified: fsf/trunk/libc/sysdeps/unix/sysv/linux/i386/sysconf.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/i386/sysconf.c (original)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/i386/sysconf.c Fri Nov 10 00:01:=
24 2006
@@ -140,6 +140,7 @@
 =

 =

 static long int
+__attribute__ ((noinline))
 intel_check_word (int name, unsigned int value, bool *has_level_2,
 		  bool *no_level_2_or_3)
 {

Modified: fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/sysconf.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/sysconf.c (original)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/sysconf.c Fri Nov 10 00:0=
1:24 2006
@@ -101,6 +101,7 @@
 =

 =

 static long int
+__attribute__ ((noinline))
 intel_check_word (int name, unsigned int value, bool *has_level_2,
 		  bool *no_level_2_or_3)
 {