From bca0a70374d69b43a678532be011127af6769e16 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Jul 04 2014 23:13:11 +0000 Subject: 3.9.0-17.svn20140513r13961 - Remove ppc multilib support (#1116110) - Add valgrind-3.9.0-ppc64-ifunc.patch --- 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 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 - 1:3.9.0-16.svn20140513r13961 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild