aboutsummaryrefslogtreecommitdiffstats
path: root/make
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2017-08-22 16:51:21 +0200
committerJay Berkenbilt <ejb@ql.org>2017-08-22 20:13:10 +0200
commit83ec09f66c4548d356423894708e6727aaa39c88 (patch)
tree6eeda68288a72a8a1d90a908d5a624e55e3c43fc /make
parent85ef2cb6fd3d3e9dbeee013eceeb19b9f3c7f731 (diff)
downloadqpdf-83ec09f66c4548d356423894708e6727aaa39c88.tar.zst
Do memory checks
Slightly improve memory cleanup in Pl_DCT Make it easier to test with valgrind
Diffstat (limited to 'make')
-rwxr-xr-xmake/exec-z24
-rw-r--r--make/libtool.mk1
-rwxr-xr-xmake/valgrind-wrap10
3 files changed, 35 insertions, 0 deletions
diff --git a/make/exec-z b/make/exec-z
new file mode 100755
index 00000000..dc21dbc1
--- /dev/null
+++ b/make/exec-z
@@ -0,0 +1,24 @@
+#!/bin/sh
+# This script is used for valgrind testing. See README.maintainer.
+
+# Create a suppressions file. This can be updated by running valgrind
+# with --gen-suppressions=yes.
+test -f /tmp/a.supp || cat > /tmp/a.supp <<EOF
+{
+ zlib1
+ Memcheck:Cond
+ fun:inflateReset2
+ fun:inflateInit2_
+}
+{
+ index
+ Memcheck:Cond
+ fun:index
+ fun:expand_dynamic_string_token
+ fun:_dl_map_object
+ fun:map_doit
+}
+EOF
+
+exec valgrind --suppressions=/tmp/a.supp -q \
+ `dirname $0`/z/`basename $0` ${1+"$@"}
diff --git a/make/libtool.mk b/make/libtool.mk
index c6cf4e4d..c3af7b9f 100644
--- a/make/libtool.mk
+++ b/make/libtool.mk
@@ -102,6 +102,7 @@ endef
# Usage: $(call makebin,objs,binary,ldflags,libs)
define makebin
$(LIBTOOL) --mode=link $(CXX) $(CXXFLAGS) $(1) -o $(2) $(4) $(3)
+ if [ "$(VALGRIND)" = 1 ]; then make/valgrind-wrap $(2); fi
endef
# Install target
diff --git a/make/valgrind-wrap b/make/valgrind-wrap
new file mode 100755
index 00000000..40785bf1
--- /dev/null
+++ b/make/valgrind-wrap
@@ -0,0 +1,10 @@
+#!/bin/sh
+set -e
+pwd
+dir=$(dirname $1)
+if [ ! -x $dir/exec-z ]; then
+ ln -f make/exec-z $dir/exec-z
+fi
+mkdir -p $dir/z
+mv $1 $dir/z
+ln -f $dir/exec-z $1