[valgrind] 3.9.0-17.svn20140513r13961

Mark Wielaard mjw at fedoraproject.org
Fri Jul 4 23:13:16 UTC 2014


commit bca0a70374d69b43a678532be011127af6769e16
Author: Mark Wielaard <mjw at redhat.com>
Date:   Sat Jul 5 01:12:09 2014 +0200

    3.9.0-17.svn20140513r13961
    
    - Remove ppc multilib support (#1116110)
    - Add valgrind-3.9.0-ppc64-ifunc.patch

 valgrind-3.9.0-ppc64-ifunc.patch |   32 ++++++++++++++++++++++++++++++++
 valgrind.spec                    |   16 ++++++++++++----
 2 files changed, 44 insertions(+), 4 deletions(-)
---
diff --git a/valgrind-3.9.0-ppc64-ifunc.patch b/valgrind-3.9.0-ppc64-ifunc.patch
new file mode 100644
index 0000000..2bc9be7
--- /dev/null
+++ b/valgrind-3.9.0-ppc64-ifunc.patch
@@ -0,0 +1,32 @@
+--- valgrind/coregrind/vg_preloaded.c	(revision 14128)
++++ valgrind/coregrind/vg_preloaded.c	(working copy)
+@@ -77,17 +77,28 @@
+ {
+     OrigFn fn;
+     Addr result = 0;
++    Addr fnentry;
+ 
+     /* Call the original indirect function and get it's result */
+     VALGRIND_GET_ORIG_FN(fn);
+     CALL_FN_W_v(result, fn);
+ 
++#if defined(VGP_ppc64_linux)
++   /* ppc64 uses function descriptors, so get the actual function entry
++      address for the client request, but return the function descriptor
++      from this function. */
++    UWord *descr = (UWord*)result;
++    fnentry = (void*)(descr[0]);
++#else
++    fnentry = result;
++#endif
++
+     /* Ask the valgrind core running on the real CPU (as opposed to this
+        code which runs on the emulated CPU) to update the redirection that
+        led to this function. This client request eventually gives control to
+        the function VG_(redir_add_ifunc_target) in m_redir.c  */
+     VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__ADD_IFUNC_TARGET,
+-                                    fn.nraddr, result, 0, 0, 0);
++                                    fn.nraddr, fnentry, 0, 0, 0);
+     return (void*)result;
+ }
+ 
diff --git a/valgrind.spec b/valgrind.spec
index 0cd8680..103bb30 100644
--- a/valgrind.spec
+++ b/valgrind.spec
@@ -6,7 +6,7 @@
 Summary: Tool for finding memory management bugs in programs
 Name: %{?scl_prefix}valgrind
 Version: 3.9.0
-Release: 16.svn%{?svn_date}r%{?svn_rev}%{?dist}
+Release: 17.svn%{?svn_date}r%{?svn_rev}%{?dist}
 Epoch: 1
 License: GPLv2+
 URL: http://www.valgrind.org/
@@ -15,9 +15,9 @@ Group: Development/Debuggers
 # Only necessary for RHEL, will be ignored on Fedora
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
-# Note that s390x and aarch64 are not multilib.
-# Only x86_64 and ppc64 support 32bit too.
-%ifarch x86_64 ppc64
+# Only arches that are supported upstream as multilib and that fedora
+# has multilib builds for should set build_multilib 1.
+%ifarch x86_64
 %global build_multilib 1
 %else
 %global build_multilib 0
@@ -65,6 +65,9 @@ Patch7: valgrind-3.9.0-format-security.patch
 
 Patch8: valgrind-3.9.0-aarch64-glibc-2.19.90-gcc-4.9.patch
 
+# KDE#337094 - ifunc wrapper is broken on ppc64
+Patch9: valgrind-3.9.0-ppc64-ifunc.patch
+
 %if %{build_multilib}
 # Ensure glibc{,-devel} is installed for both multilib arches
 BuildRequires: /lib/libc.so.6 /usr/lib/libc.so /lib64/libc.so.6 /usr/lib64/libc.so
@@ -172,6 +175,7 @@ Valgrind User Manual for details.
 %patch6 -p1
 %patch7 -p1
 %patch8 -p1
+%patch9 -p1
 
 %build
 # We need to use the software collection compiler and binutils if available.
@@ -326,6 +330,10 @@ echo ===============END TESTING===============
 %endif
 
 %changelog
+* Fri Jul  4 2014 Mark Wielaard <mjw at redhat.com> 3.9.0-17.svn20140513r13961
+- Remove ppc multilib support (#1116110)
+- Add valgrind-3.9.0-ppc64-ifunc.patch
+
 * Sun Jun 08 2014 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 1:3.9.0-16.svn20140513r13961
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
 


More information about the scm-commits mailing list