packages: glibc/glibc.spec, glibc/glibc-dl.patch (NEW) - rel 3; Don't crash...

arekm arekm at pld-linux.org
Sat May 22 21:26:48 CEST 2010


Author: arekm                        Date: Sat May 22 19:26:48 2010 GMT
Module: packages                      Tag: HEAD
---- Log message:
- rel 3; Don't crash on unresolved weak symbol reference.

---- Files affected:
packages/glibc:
   glibc.spec (1.871 -> 1.872) , glibc-dl.patch (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: packages/glibc/glibc.spec
diff -u packages/glibc/glibc.spec:1.871 packages/glibc/glibc.spec:1.872
--- packages/glibc/glibc.spec:1.871	Sat May 22 11:38:59 2010
+++ packages/glibc/glibc.spec	Sat May 22 21:26:42 2010
@@ -34,7 +34,7 @@
 Summary(uk.UTF-8):	GNU libc версії
 Name:		glibc
 Version:	2.12
-Release:	2
+Release:	3
 Epoch:		6
 License:	LGPL v2.1+
 Group:		Libraries
@@ -72,6 +72,7 @@
 Patch25:	%{name}-cv_gnu89_inline.patch
 Patch26:	%{name}-posix-sh.patch
 Patch27:	%{name}-i686.patch
+Patch28:	%{name}-dl.patch
 URL:		http://www.gnu.org/software/libc/
 %{?with_selinux:BuildRequires:	audit-libs-devel}
 BuildRequires:	autoconf
@@ -912,6 +913,7 @@
 %patch25 -p1
 %patch26 -p1
 %patch27 -p1
+%patch28 -p1
 
 # cleanup backups after patching
 find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
@@ -1670,6 +1672,9 @@
 All persons listed below can be reached at <cvs_login>@pld-linux.org
 
 $Log$
+Revision 1.872  2010/05/22 19:26:42  arekm
+- rel 3; Don't crash on unresolved weak symbol reference.
+
 Revision 1.871  2010/05/22 09:38:59  arekm
 - release 2
 

================================================================
Index: packages/glibc/glibc-dl.patch
diff -u /dev/null packages/glibc/glibc-dl.patch:1.1
--- /dev/null	Sat May 22 21:26:48 2010
+++ packages/glibc/glibc-dl.patch	Sat May 22 21:26:42 2010
@@ -0,0 +1,42 @@
+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)
+ 	    {
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/glibc/glibc.spec?r1=1.871&r2=1.872&f=u



More information about the pld-cvs-commit mailing list