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