You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							167 lines
						
					
					
						
							6.2 KiB
						
					
					
				
			
		
		
	
	
							167 lines
						
					
					
						
							6.2 KiB
						
					
					
				# --- SDE-COPYRIGHT-NOTE-BEGIN --- | 
						|
# This copyright note is auto-generated by ./scripts/Create-CopyPatch. | 
						|
# | 
						|
# Filename: package/.../glibc/glibc-2.11-branch-update.patch | 
						|
# Copyright (C) 2010 The OpenSDE Project | 
						|
# | 
						|
# More information can be found in the files COPYING and README. | 
						|
# | 
						|
# This patch file is dual-licensed. It is available under the license the | 
						|
# patched project is licensed under, as long as it is an OpenSource license | 
						|
# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms | 
						|
# of the GNU General Public License as published by the Free Software | 
						|
# Foundation; either version 2 of the License, or (at your option) any later | 
						|
# version. | 
						|
# --- SDE-COPYRIGHT-NOTE-END --- | 
						|
 | 
						|
diff --git a/ChangeLog b/ChangeLog | 
						|
index bb4e4d5..b03035f 100644 | 
						|
--- a/ChangeLog | 
						|
+++ b/ChangeLog | 
						|
@@ -1,3 +1,29 @@ | 
						|
+2010-05-26  H.J. Lu  <[email protected]> | 
						|
+ | 
						|
+	[BZ #11640] | 
						|
+	* sysdeps/x86_64/multiarch/init-arch.c (__init_cpu_features): | 
						|
+	Properly check family and model. | 
						|
+ | 
						|
+2010-05-26  Takashi Yoshii  <[email protected]> | 
						|
+ | 
						|
+	* sysdeps/unix/sysv/linux/sh/sh4/register-dump.h: Fix iov[] size. | 
						|
+ | 
						|
+2010-05-21  Ulrich Drepper  <[email protected]> | 
						|
+ | 
						|
+	* elf/dl-runtime.c (_dl_profile_fixup): Don't crash on unresolved weak | 
						|
+	symbol reference. | 
						|
+ | 
						|
+2010-05-19  Andreas Schwab  <[email protected]> | 
						|
+ | 
						|
+	* elf/dl-runtime.c (_dl_fixup): Don't crash on unresolved weak | 
						|
+	symbol reference. | 
						|
+ | 
						|
+2010-05-21  Andreas Schwab  <[email protected]> | 
						|
+ | 
						|
+	* sunrpc/clnt_tcp.c (clnttcp_control): Add missing break. | 
						|
+	* sunrpc/clnt_udp.c (clntudp_control): Likewise. | 
						|
+	* sunrpc/clnt_unix.c (clntunix_control): Likewise. | 
						|
+ | 
						|
 2010-05-12  Andrew Stubbs  <[email protected]> | 
						|
  | 
						|
 	* sysdeps/sh/sh4/fpu/feholdexcpt.c (feholdexcept): Really disable all | 
						|
diff --git a/elf/dl-runtime.c b/elf/dl-runtime.c | 
						|
index a52120d..6847eda 100644 | 
						|
--- a/elf/dl-runtime.c | 
						|
+++ b/elf/dl-runtime.c | 
						|
@@ -1,5 +1,5 @@ | 
						|
 /* On-demand PLT fixup for shared objects. | 
						|
-   Copyright (C) 1995-2006, 2007, 2008, 2009 Free Software Foundation, Inc. | 
						|
+   Copyright (C) 1995-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 | 
						|
@@ -144,7 +144,8 @@ _dl_fixup ( | 
						|
   /* And now perhaps the relocation addend.  */ | 
						|
   value = elf_machine_plt_value (l, reloc, value); | 
						|
  | 
						|
-  if (__builtin_expect (ELFW(ST_TYPE) (sym->st_info) == STT_GNU_IFUNC, 0)) | 
						|
+  if (sym != NULL | 
						|
+      && __builtin_expect (ELFW(ST_TYPE) (sym->st_info) == STT_GNU_IFUNC, 0)) | 
						|
     value = ((DL_FIXUP_VALUE_TYPE (*) (void)) DL_FIXUP_VALUE_ADDR (value)) (); | 
						|
  | 
						|
   /* Finally, fix up the plt itself.  */ | 
						|
@@ -231,8 +232,9 @@ _dl_profile_fixup ( | 
						|
 				       ? LOOKUP_VALUE_ADDRESS (result) | 
						|
 					 + defsym->st_value : 0); | 
						|
  | 
						|
-	  if (__builtin_expect (ELFW(ST_TYPE) (defsym->st_info) | 
						|
-				== STT_GNU_IFUNC, 0)) | 
						|
+	  if (defsym != NULL | 
						|
+	      && __builtin_expect (ELFW(ST_TYPE) (defsym->st_info) | 
						|
+				   == STT_GNU_IFUNC, 0)) | 
						|
 	    value = ((DL_FIXUP_VALUE_TYPE (*) (void)) | 
						|
 		     DL_FIXUP_VALUE_ADDR (value)) (); | 
						|
 	} | 
						|
@@ -369,7 +371,7 @@ _dl_profile_fixup ( | 
						|
       struct audit_ifaces *afct = GLRO(dl_audit); | 
						|
       for (unsigned int cnt = 0; cnt < GLRO(dl_naudit); ++cnt) | 
						|
 	{ | 
						|
- 	  if (afct->ARCH_LA_PLTENTER != NULL | 
						|
+	  if (afct->ARCH_LA_PLTENTER != NULL | 
						|
 	      && (reloc_result->enterexit | 
						|
 		  & (LA_SYMB_NOPLTENTER << (2 * (cnt + 1)))) == 0) | 
						|
 	    { | 
						|
diff --git a/sunrpc/clnt_tcp.c b/sunrpc/clnt_tcp.c | 
						|
index 1552be8..d26a126 100644 | 
						|
--- a/sunrpc/clnt_tcp.c | 
						|
+++ b/sunrpc/clnt_tcp.c | 
						|
@@ -399,6 +399,7 @@ clnttcp_control (CLIENT *cl, int request, char *info) | 
						|
       /* This will set the xid of the NEXT call */ | 
						|
       *(u_long *)ct->ct_mcall =  htonl (*(u_long *)info - 1); | 
						|
       /* decrement by 1 as clnttcp_call() increments once */ | 
						|
+      break; | 
						|
     case CLGET_VERS: | 
						|
       /* | 
						|
        * This RELIES on the information that, in the call body, | 
						|
diff --git a/sunrpc/clnt_udp.c b/sunrpc/clnt_udp.c | 
						|
index 62ee3a1..360e26a 100644 | 
						|
--- a/sunrpc/clnt_udp.c | 
						|
+++ b/sunrpc/clnt_udp.c | 
						|
@@ -582,6 +582,7 @@ clntudp_control (CLIENT *cl, int request, char *info) | 
						|
       /* This will set the xid of the NEXT call */ | 
						|
       *(u_long *)cu->cu_outbuf =  htonl(*(u_long *)info - 1); | 
						|
       /* decrement by 1 as clntudp_call() increments once */ | 
						|
+      break; | 
						|
     case CLGET_VERS: | 
						|
       /* | 
						|
        * This RELIES on the information that, in the call body, | 
						|
diff --git a/sunrpc/clnt_unix.c b/sunrpc/clnt_unix.c | 
						|
index db3ea31..bca1273 100644 | 
						|
--- a/sunrpc/clnt_unix.c | 
						|
+++ b/sunrpc/clnt_unix.c | 
						|
@@ -376,6 +376,7 @@ clntunix_control (CLIENT *cl, int request, char *info) | 
						|
       /* This will set the xid of the NEXT call */ | 
						|
       *(u_long *) ct->ct_mcall =  htonl (*(u_long *)info - 1); | 
						|
       /* decrement by 1 as clntunix_call() increments once */ | 
						|
+      break; | 
						|
     case CLGET_VERS: | 
						|
       /* | 
						|
        * This RELIES on the information that, in the call body, | 
						|
diff --git a/sysdeps/unix/sysv/linux/sh/sh4/register-dump.h b/sysdeps/unix/sysv/linux/sh/sh4/register-dump.h | 
						|
index e3c9c0e..92df085 100644 | 
						|
--- a/sysdeps/unix/sysv/linux/sh/sh4/register-dump.h | 
						|
+++ b/sysdeps/unix/sysv/linux/sh/sh4/register-dump.h | 
						|
@@ -1,5 +1,5 @@ | 
						|
 /* Dump registers. | 
						|
-   Copyright (C) 1999, 2000, 2009 Free Software Foundation, Inc. | 
						|
+   Copyright (C) 1999, 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 | 
						|
@@ -58,7 +58,7 @@ register_dump (int fd, struct sigcontext *ctx) | 
						|
 { | 
						|
   char regs[22][8]; | 
						|
   char fpregs[34][8]; | 
						|
-  struct iovec iov[112]; | 
						|
+  struct iovec iov[22 * 2 + 34 * 2 + 2]; | 
						|
   size_t nr = 0; | 
						|
  | 
						|
 #define ADD_STRING(str) \ | 
						|
diff --git a/sysdeps/x86_64/multiarch/init-arch.c b/sysdeps/x86_64/multiarch/init-arch.c | 
						|
index 0fe2f86..198fcaa 100644 | 
						|
--- a/sysdeps/x86_64/multiarch/init-arch.c | 
						|
+++ b/sysdeps/x86_64/multiarch/init-arch.c | 
						|
@@ -62,12 +62,12 @@ __init_cpu_features (void) | 
						|
       unsigned int eax = __cpu_features.cpuid[COMMON_CPUID_INDEX_1].eax; | 
						|
       unsigned int extended_family = (eax >> 20) & 0xff; | 
						|
       unsigned int extended_model = (eax >> 12) & 0xf0; | 
						|
-      if (__cpu_features.family == 0x0f) | 
						|
+      if (family == 0x0f) | 
						|
 	{ | 
						|
 	  family += extended_family; | 
						|
 	  model += extended_model; | 
						|
 	} | 
						|
-      else if (__cpu_features.family == 0x06) | 
						|
+      else if (family == 0x06) | 
						|
 	model += extended_model; | 
						|
     } | 
						|
   /* This spells out "AuthenticAMD".  */
 | 
						|
 |