summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--development/valgrind/valgrind-r11856.patch86
-rw-r--r--development/valgrind/valgrind-r11904.patch19
-rw-r--r--development/valgrind/valgrind.SlackBuild11
3 files changed, 113 insertions, 3 deletions
diff --git a/development/valgrind/valgrind-r11856.patch b/development/valgrind/valgrind-r11856.patch
new file mode 100644
index 0000000000..2d6035befe
--- /dev/null
+++ b/development/valgrind/valgrind-r11856.patch
@@ -0,0 +1,86 @@
+Index: coregrind/m_debuginfo/readdwarf.c
+===================================================================
+--- coregrind/m_debuginfo/readdwarf.c (revision 11855)
++++ coregrind/m_debuginfo/readdwarf.c (revision 11856)
+@@ -2899,6 +2899,22 @@
+ op = Cop_And; opname = "and"; goto binop;
+ case DW_OP_mul:
+ op = Cop_Mul; opname = "mul"; goto binop;
++ case DW_OP_shl:
++ op = Cop_Shl; opname = "shl"; goto binop;
++ case DW_OP_shr:
++ op = Cop_Shr; opname = "shr"; goto binop;
++ case DW_OP_eq:
++ op = Cop_Eq; opname = "eq"; goto binop;
++ case DW_OP_ge:
++ op = Cop_Ge; opname = "ge"; goto binop;
++ case DW_OP_gt:
++ op = Cop_Gt; opname = "gt"; goto binop;
++ case DW_OP_le:
++ op = Cop_Le; opname = "le"; goto binop;
++ case DW_OP_lt:
++ op = Cop_Lt; opname = "lt"; goto binop;
++ case DW_OP_ne:
++ op = Cop_Ne; opname = "ne"; goto binop;
+ binop:
+ POP( ix );
+ POP( ix2 );
+Index: coregrind/m_debuginfo/debuginfo.c
+===================================================================
+--- coregrind/m_debuginfo/debuginfo.c (revision 11855)
++++ coregrind/m_debuginfo/debuginfo.c (revision 11856)
+@@ -1880,6 +1880,14 @@
+ case Cop_Sub: return wL - wR;
+ case Cop_And: return wL & wR;
+ case Cop_Mul: return wL * wR;
++ case Cop_Shl: return wL << wR;
++ case Cop_Shr: return wL >> wR;
++ case Cop_Eq: return wL == wR ? 1 : 0;
++ case Cop_Ge: return wL >= wR ? 1 : 0;
++ case Cop_Gt: return wL > wR ? 1 : 0;
++ case Cop_Le: return wL <= wR ? 1 : 0;
++ case Cop_Lt: return wL < wR ? 1 : 0;
++ case Cop_Ne: return wL != wR ? 1 : 0;
+ default: goto unhandled;
+ }
+ /*NOTREACHED*/
+Index: coregrind/m_debuginfo/storage.c
+===================================================================
+--- coregrind/m_debuginfo/storage.c (revision 11855)
++++ coregrind/m_debuginfo/storage.c (revision 11856)
+@@ -603,6 +603,14 @@
+ case Cop_Sub: VG_(printf)("-"); break;
+ case Cop_And: VG_(printf)("&"); break;
+ case Cop_Mul: VG_(printf)("*"); break;
++ case Cop_Shl: VG_(printf)("<<"); break;
++ case Cop_Shr: VG_(printf)(">>"); break;
++ case Cop_Eq: VG_(printf)("=="); break;
++ case Cop_Ge: VG_(printf)(">="); break;
++ case Cop_Gt: VG_(printf)(">"); break;
++ case Cop_Le: VG_(printf)("<="); break;
++ case Cop_Lt: VG_(printf)("<"); break;
++ case Cop_Ne: VG_(printf)("!="); break;
+ default: vg_assert(0);
+ }
+ }
+Index: coregrind/m_debuginfo/priv_storage.h
+===================================================================
+--- coregrind/m_debuginfo/priv_storage.h (revision 11855)
++++ coregrind/m_debuginfo/priv_storage.h (revision 11856)
+@@ -249,7 +249,15 @@
+ Cop_Add=0x321,
+ Cop_Sub,
+ Cop_And,
+- Cop_Mul
++ Cop_Mul,
++ Cop_Shl,
++ Cop_Shr,
++ Cop_Eq,
++ Cop_Ge,
++ Cop_Gt,
++ Cop_Le,
++ Cop_Lt,
++ Cop_Ne
+ }
+ CfiOp;
+
diff --git a/development/valgrind/valgrind-r11904.patch b/development/valgrind/valgrind-r11904.patch
new file mode 100644
index 0000000000..55c6d15ea1
--- /dev/null
+++ b/development/valgrind/valgrind-r11904.patch
@@ -0,0 +1,19 @@
+Index: coregrind/m_debuginfo/debuginfo.c
+===================================================================
+--- coregrind/m_debuginfo/debuginfo.c (revision 11903)
++++ coregrind/m_debuginfo/debuginfo.c (revision 11904)
+@@ -1883,10 +1883,10 @@
+ case Cop_Shl: return wL << wR;
+ case Cop_Shr: return wL >> wR;
+ case Cop_Eq: return wL == wR ? 1 : 0;
+- case Cop_Ge: return wL >= wR ? 1 : 0;
+- case Cop_Gt: return wL > wR ? 1 : 0;
+- case Cop_Le: return wL <= wR ? 1 : 0;
+- case Cop_Lt: return wL < wR ? 1 : 0;
++ case Cop_Ge: return (Word) wL >= (Word) wR ? 1 : 0;
++ case Cop_Gt: return (Word) wL > (Word) wR ? 1 : 0;
++ case Cop_Le: return (Word) wL <= (Word) wR ? 1 : 0;
++ case Cop_Lt: return (Word) wL < (Word) wR ? 1 : 0;
+ case Cop_Ne: return wL != wR ? 1 : 0;
+ default: goto unhandled;
+ }
diff --git a/development/valgrind/valgrind.SlackBuild b/development/valgrind/valgrind.SlackBuild
index 74baa814e0..120d422e77 100644
--- a/development/valgrind/valgrind.SlackBuild
+++ b/development/valgrind/valgrind.SlackBuild
@@ -6,7 +6,7 @@
PRGNAM=valgrind
VERSION=3.6.1
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
TAG=${TAG:-_SBo}
# Automatically determine the architecture we're building on:
@@ -36,7 +36,7 @@ elif [ "$ARCH" = "x86_64" ]; then
else
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
-fi
+fi
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
@@ -47,6 +47,11 @@ cd $PRGNAM-$VERSION || exit 1
chown -R root:root .
chmod -R u+w,go+r-w,a-s .
+# Apply upstream patches to fix https://bugs.kde.org/show_bug.cgi?id=277045
+# Thanks to Ricardo Nabinger Sanchez for reporting the solution.
+patch -p0 < $CWD/valgrind-r11856.patch || exit 1
+patch -p0 < $CWD/valgrind-r11904.patch || exit 1
+
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
@@ -70,7 +75,7 @@ cp -a AUTHORS COPYING FAQ.txt NEWS README* \
$PKG/usr/doc/$PRGNAM-$VERSION
mv $PKG/usr/share/doc/valgrind/html $PKG/usr/doc/$PRGNAM-$VERSION
# The doc directory is the only thing in $PKG/usr/share, and the only things
-# left in it now are pdf and a ps doc files. They are large, so we won't keep
+# left in it now are pdf and a ps doc files. They are large, so we won't keep
# them around. If you still want them, uncomment the line below.
# mv $PKG/usr/share/doc/valgrind/*.{ps,pdf} $PKG/usr/doc/$PRGNAM-$VERSION
rm -rf $PKG/usr/share