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

_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to