diff options
-rw-r--r-- | development/valgrind/valgrind-r11856.patch | 86 | ||||
-rw-r--r-- | development/valgrind/valgrind-r11904.patch | 19 | ||||
-rw-r--r-- | development/valgrind/valgrind.SlackBuild | 11 |
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 0000000000000..2d6035befea23 --- /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 0000000000000..55c6d15ea1aab --- /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 74baa814e0c25..120d422e77fdf 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 |