1
1
mirror of https://github.com/profanity-im/profanity.git synced 2025-02-02 15:08:15 -05:00

Add make target my-prof.supp

This creates a "as personal as possible" Valgrind suppressions file.

Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
This commit is contained in:
Steffen Jaeckel 2024-11-21 15:32:34 +01:00
parent 46b788846c
commit f67c76c032
5 changed files with 80 additions and 1 deletions

1
.gitignore vendored
View File

@ -73,6 +73,7 @@ toc_fragment.html
# valgrind files
valgrind.out
my-prof.supp
# Generate docs
apidocs/python/_build/

View File

@ -110,6 +110,12 @@ We provide a suppressions file `prof.supp`. It is a combination of the suppressi
`G_DEBUG=gc-friendly G_SLICE=always-malloc valgrind --tool=memcheck --track-origins=yes --leak-check=full --leak-resolution=high --num-callers=30 --show-leak-kinds=definite --log-file=profval --suppressions=prof.supp ./profanity`
There's also the option to create a "personalized" suppression file with the up-to-date glib2 and python suppressions.
`make my-prof.supp`
After executing this, you can replace the `--suppressions=prof.supp` argument in the above call, by `--suppressions=my-prof.supp`.
### clang
Running the clang static code analyzer helps improving the quality too.

View File

@ -343,6 +343,14 @@ clean-local:
rm -f $(git_include) $(git_include).in
endif
.PHONY: my-prof.supp
my-prof.supp:
@sed '/^# AUTO-GENERATED START/q' prof.supp > $@
@cat /usr/share/glib-2.0/valgrind/glib.supp >> $@
@wget -O- https://raw.githubusercontent.com/python/cpython/refs/tags/v`python3 --version | cut -d' ' -f2`/Misc/valgrind-python.supp >> $@
@test -z "@GTK_VERSION@" || wget -O- https://raw.githubusercontent.com/GNOME/gtk/refs/tags/@GTK_VERSION@/gtk.supp >> $@
@test -z "@GTK_VERSION@" || cat /usr/share/gtk-3.0/valgrind/gtk.supp >> $@
check-unit: tests/unittests/unittests
tests/unittests/unittests

View File

@ -237,7 +237,8 @@ AS_IF([test "x$PLATFORM" = xosx],
dnl feature: icons-and-clipboard
AS_IF([test "x$enable_icons_and_clipboard" != xno],
[PKG_CHECK_MODULES([GTK], [gtk+-3.0 >= 3.24.0],
[AC_DEFINE([HAVE_GTK], [1], [libgtk module])],
[AC_DEFINE([HAVE_GTK], [1], [libgtk module])
GTK_VERSION=`pkg-config --modversion gtk+-3.0`],
[AS_IF([test "x$enable_icons_and_clipboard" = xyes],
[PKG_CHECK_MODULES([GTK], [gtk+-2.0 >= 2.24.10],
[AC_DEFINE([HAVE_GTK], [1], [libgtk module])],
@ -389,6 +390,7 @@ LIBS="$glib_LIBS $gio_LIBS $PTHREAD_LIBS $curl_LIBS $libnotify_LIBS $python_LIBS
AC_SUBST(AM_LDFLAGS)
AC_SUBST(AM_CFLAGS)
AC_SUBST(AM_CPPFLAGS)
AC_SUBST(GTK_VERSION)
## Output
AC_CONFIG_FILES([Makefile])
@ -397,6 +399,7 @@ AC_OUTPUT
AC_MSG_NOTICE([Summary of build options:
PLATFORM : $target_os
PACKAGE_STATUS : $PACKAGE_STATUS
GTK_VERSION : $GTK_VERSION
LIBS : $LIBS
Install themes : $THEMES_INSTALL
Themes path : $THEMES_PATH

View File

@ -23,6 +23,13 @@
fun:gtk_init_check
...
}
{
gtk_module_init
Memcheck:Leak
...
fun:gtk_module_init
...
}
# glib
@ -43,7 +50,61 @@
fun:omemo_crypto_init
...
}
{
gcry_mpi_scan
Memcheck:Leak
...
fun:gcry_mpi_scan
...
}
# libreadline related
{
leak readline
Memcheck:Leak
...
fun:readline
}
{
leak add_history
Memcheck:Leak
...
fun:add_history
}
{
leak rl_make_bare_keymap
Memcheck:Leak
...
fun:rl_make_bare_keymap
}
{
leak rl_add_funmap_entry
Memcheck:Leak
...
fun:rl_add_funmap_entry
}
{
leak rl_initialize
Memcheck:Leak
...
fun:rl_initialize
}
# Python related
{
Handle PyMalloc confusing valgrind (possibly leaked)
Memcheck:Leak
...
fun:_PyObject_GC_New
}
{
Handle PyMalloc confusing valgrind (possibly leaked)
Memcheck:Leak
...
fun:PyType_Ready
}
# AUTO-GENERATED START
# GLib Valgrind suppressions file
#