diff --git a/Makefile.am b/Makefile.am index 622c290fe3..94a397fec0 100644 --- a/Makefile.am +++ b/Makefile.am @@ -28,7 +28,9 @@ EXTRA_DIST += \ po/meson.build \ po-properties/meson.build \ build-aux/meson/post-install.py \ - config.h.meson + config.h.meson \ + gtk.supp \ + gtk64.supp MAINTAINERCLEANFILES = \ $(GITIGNORE_MAINTAINERCLEANFILES_TOPLEVEL) \ @@ -40,6 +42,10 @@ MAINTAINERCLEANFILES = \ $(srcdir)/gtk-doc.make \ $(srcdir)/ChangeLog +if OS_UNIX +valgrinddir = $(datadir)/gtk-3.0/valgrind +valgrind_DATA = gtk.supp gtk64.supp +endif ## Copy .pc files to target-specific names gtk+-x11-3.0.pc gtk+-win32-3.0.pc gtk+-quartz-3.0.pc gtk+-broadway-3.0.pc gtk+-wayland-3.0.pc: gtk+-3.0.pc diff --git a/gtk.supp b/gtk.supp new file mode 100644 index 0000000000..f2f0d0d406 --- /dev/null +++ b/gtk.supp @@ -0,0 +1,267 @@ +# Actual GTK things +{ + GtkWidgetClass action GPtrArray + Memcheck:Leak + fun:malloc + fun:g_malloc + fun:g_slice_alloc + fun:g_ptr_array_sized_new + fun:g_ptr_array_new + fun:gtk_widget_class_add_action +} + +{ + GTK media extension gio modules + Memcheck:Leak + match-leak-kinds: definite + fun:malloc + fun:g_malloc + fun:g_slice_alloc + fun:g_slice_alloc0 + fun:g_type_create_instance + fun:g_object_new_internal + fun:g_object_new_with_properties + fun:g_object_new + fun:g_io_module_new + fun:g_io_modules_scan_all_in_directory_with_scope + fun:gtk_media_file_extension_init +} + +{ + gtk-style-context + Memcheck:Leak + match-leak-kinds: possible + fun:malloc + fun:g_malloc + ... + fun:gtk_css_node_declaration_make_writable + ... + fun:gtk_style_constructed +} + +{ + gtk-style-context2 + Memcheck:Leak + match-leak-kinds: possible + fun:malloc + fun:g_malloc + ... + fun:gtk_css_node_declaration_make_writable_resize + ... + fun:gtk_style_constructed +} + +# AMD driver +{ + radeonsi_dri general + Memcheck:Leak + fun:calloc + ... + obj:/usr/lib/dri/radeonsi_dri.so +} + +# mesa driver stuff +{ + i965 addr4 + Memcheck:Addr4 + obj:/usr/lib/dri/i965_dri.so* +} + +{ + i965 addr8 + Memcheck:Addr8 + obj:/usr/lib/dri/i965_dri.so* +} + +{ + i965 memcpy + Memcheck:Addr8 + fun:memcpy* + obj:/usr/lib/dri/i965_dri.so* +} + +{ + i965 memcpy + Memcheck:Addr2 + fun:memcpy* + obj:/usr/lib/dri/i965_dri.so* +} + +{ + mesa memcmp 8 + Memcheck:Addr8 + fun:*memcmp* + obj:/usr/lib/dri/i965_dri.so* +} + +{ + mesa memcmp 1 + Memcheck:Addr1 + fun:*memcmp* + obj:/usr/lib/dri/i965_dri.so* +} + +{ + mesa memset 8 + Memcheck:Addr8 + fun:*memset* + obj:/usr/lib/dri/i965_dri.so +} + +{ + mesa realpath + Memcheck:Leak + match-leak-kinds: definite + fun:malloc + fun:realpath@@GLIBC_2.3 + obj:* + obj:* + obj:* + obj:* + obj:* + obj:* + obj:* + obj:* + fun:epoxy_eglInitialize_global_rewrite_ptr +} + +{ + mesa calloc + Memcheck:Leak + match-leak-kinds: definite + fun:calloc + obj:* + obj:* + obj:* + obj:* + obj:* + obj:* + obj:* + obj:* + obj:* + fun:epoxy_eglInitialize_global_rewrite_ptr +} + +{ + mesa malloc + Memcheck:Leak + match-leak-kinds: definite + fun:malloc + obj:/usr/lib/dri/i965_dri.so* +} + +{ + mesa glReadPixels + Memcheck:Addr16 + obj:* + obj:* + obj:* + obj:* + obj:* + fun:epoxy_glReadPixels_global_rewrite_ptr +} + +{ + epoxy glxQueryServerString 1 + Memcheck:Leak + fun:malloc + fun:XextAddDisplay + obj:* + obj:* + obj:* + obj:* + obj:* + fun:epoxy_glXQueryServerString_global_rewrite_ptr + +} + +{ + epoxy glxQueryServerString 2 + Memcheck:Leak + match-leak-kinds: definite + fun:malloc + fun:realpath* + obj:* + obj:* + obj:* + obj:* + obj:* + obj:* + obj:* + fun:epoxy_glXQueryServerString_global_rewrite_ptr +} + +{ + epoxy glGetTexImage + Memcheck:Addr16 + obj:* + obj:* + obj:* + obj:* + obj:* + fun:epoxy_glGetTexImage_global_rewrite_ptr +} + + + + +# Fontconfig +{ + FcFontSetList + Memcheck:Leak + match-leak-kinds: definite + fun:malloc + obj:/usr/lib/libfontconfig.so* + obj:/usr/lib/libfontconfig.so* + fun:FcFontSetList +} + +{ + FcFontRenderPrepare + Memcheck:Leak + match-leak-kinds: definite + fun:realloc + obj:/usr/lib/libfontconfig.so* + obj:/usr/lib/libfontconfig.so* + fun:FcFontRenderPrepare +} + +{ + FcDefaultSubstitute + Memcheck:Leak + match-leak-kinds: definite + fun:realloc + obj:/usr/lib/libfontconfig.so* + obj:/usr/lib/libfontconfig.so* + fun:FcDefaultSubstitute +} + +# Pixman +{ + pixman_image_composite32 + Memcheck:Cond + obj:/usr/lib/libpixman-1.so* + obj:/usr/lib/libpixman-1.so* + fun:pixman_image_composite32 +} + +# Pango +{ + pango 1 + Memcheck:Leak + match-leak-kinds: definite + fun:realloc + obj:/usr/lib/libfontconfig.so* + obj:/usr/lib/libfontconfig.so* + obj:/usr/lib/libcairo.so* + fun:pango_cairo_fc_font_map_fontset_key_substitute +} + +{ + pango 2 + Memcheck:Leak + fun:realloc + obj:/usr/lib/libfontconfig.so* + obj:/usr/lib/libfontconfig.so* + fun:_cairo_ft_font_options_substitute +} diff --git a/gtk64.supp b/gtk64.supp new file mode 100644 index 0000000000..39f4f525b1 --- /dev/null +++ b/gtk64.supp @@ -0,0 +1,277 @@ +# Actual GTK things +{ + GtkWidgetClass action GPtrArray + Memcheck:Leak + fun:malloc + fun:g_malloc + fun:g_slice_alloc + fun:g_ptr_array_sized_new + fun:g_ptr_array_new + fun:gtk_widget_class_add_action +} + +{ + GTK media extension gio modules + Memcheck:Leak + match-leak-kinds: definite + fun:malloc + fun:g_malloc + fun:g_slice_alloc + fun:g_slice_alloc0 + fun:g_type_create_instance + fun:g_object_new_internal + fun:g_object_new_with_properties + fun:g_object_new + fun:g_io_module_new + fun:g_io_modules_scan_all_in_directory_with_scope + fun:gtk_media_file_extension_init +} + +{ + gtk-style-context + Memcheck:Leak + match-leak-kinds: possible + fun:malloc + fun:g_malloc + ... + fun:gtk_css_node_declaration_make_writable + ... + fun:gtk_style_constructed +} + +{ + gtk-style-context2 + Memcheck:Leak + match-leak-kinds: possible + fun:malloc + fun:g_malloc + ... + fun:gtk_css_node_declaration_make_writable_resize + ... + fun:gtk_style_constructed +} + +# AMD driver +{ + radeonsi_dri general + Memcheck:Leak + fun:calloc + ... + obj:/usr/lib64/dri/radeonsi_dri.so +} + +# mesa driver stuff +{ + i965 addr4 + Memcheck:Addr4 + obj:/usr/lib64/dri/i965_dri.so* +} + +{ + i965 addr8 + Memcheck:Addr8 + obj:/usr/lib64/dri/i965_dri.so* +} + +{ + i965 memcpy + Memcheck:Addr8 + fun:memcpy* + obj:/usr/lib64/dri/i965_dri.so* +} + +{ + i965 memcpy + Memcheck:Addr2 + fun:memcpy* + obj:/usr/lib64/dri/i965_dri.so* +} + +{ + mesa memcmp 8 + Memcheck:Addr8 + fun:*memcmp* + obj:/usr/lib64/dri/i965_dri.so* +} + +{ + mesa memcmp 1 + Memcheck:Addr1 + fun:*memcmp* + obj:/usr/lib64/dri/i965_dri.so* +} + +{ + mesa memset 8 + Memcheck:Addr8 + fun:*memset* + obj:/usr/lib64/dri/i965_dri.so +} + +{ + mesa realpath + Memcheck:Leak + match-leak-kinds: definite + fun:malloc + fun:realpath@@GLIBC_2.3 + obj:* + obj:* + obj:* + obj:* + obj:* + obj:* + obj:* + obj:* + fun:epoxy_eglInitialize_global_rewrite_ptr +} + +{ + mesa calloc + Memcheck:Leak + match-leak-kinds: definite + fun:calloc + obj:* + obj:* + obj:* + obj:* + obj:* + obj:* + obj:* + obj:* + obj:* + fun:epoxy_eglInitialize_global_rewrite_ptr +} + +{ + mesa malloc + Memcheck:Leak + match-leak-kinds: definite + fun:malloc + obj:/usr/lib64/dri/i965_dri.so* +} + +{ + mesa glReadPixels + Memcheck:Addr16 + obj:* + obj:* + obj:* + obj:* + obj:* + fun:epoxy_glReadPixels_global_rewrite_ptr +} + +{ + epoxy glxQueryServerString 1 + Memcheck:Leak + fun:malloc + fun:XextAddDisplay + obj:* + obj:* + obj:* + obj:* + obj:* + fun:epoxy_glXQueryServerString_global_rewrite_ptr + +} + +{ + epoxy glxQueryServerString 2 + Memcheck:Leak + match-leak-kinds: definite + fun:malloc + fun:realpath* + obj:* + obj:* + obj:* + obj:* + obj:* + obj:* + obj:* + fun:epoxy_glXQueryServerString_global_rewrite_ptr +} + +{ + epoxy glGetTexImage + Memcheck:Addr16 + obj:* + obj:* + obj:* + obj:* + obj:* + fun:epoxy_glGetTexImage_global_rewrite_ptr +} + + + + +# Fontconfig +{ + FcFontSetList + Memcheck:Leak + match-leak-kinds: definite + fun:malloc + obj:/usr/lib64/libfontconfig.so* + obj:/usr/lib64/libfontconfig.so* + fun:FcFontSetList +} + +{ + FcFontRenderPrepare + Memcheck:Leak + match-leak-kinds: definite + fun:realloc + obj:/usr/lib64/libfontconfig.so* + obj:/usr/lib64/libfontconfig.so* + fun:FcFontRenderPrepare +} + +{ + FcDefaultSubstitute + Memcheck:Leak + match-leak-kinds: definite + fun:realloc + obj:/usr/lib64/libfontconfig.so* + obj:/usr/lib64/libfontconfig.so* + fun:FcDefaultSubstitute +} + +# Pixman +{ + pixman_image_composite32 + Memcheck:Cond + obj:/usr/lib64/libpixman-1.so* + obj:/usr/lib64/libpixman-1.so* + fun:pixman_image_composite32 +} + +# Pango +{ + pango 1 + Memcheck:Leak + match-leak-kinds: definite + fun:realloc + obj:/usr/lib64/libfontconfig.so* + obj:/usr/lib64/libfontconfig.so* + obj:/usr/lib64/libcairo.so* + fun:pango_cairo_fc_font_map_fontset_key_substitute +} + +{ + pango 2 + Memcheck:Leak + fun:realloc + obj:/usr/lib64/libfontconfig.so* + obj:/usr/lib64/libfontconfig.so* + fun:_cairo_ft_font_options_substitute +} + +# GLib +{ + glib 1 + Memcheck:Leak + match-leak-kinds: definite + fun:malloc + fun:g_malloc + fun:g_quark_init +} diff --git a/meson.build b/meson.build index 7efe30999d..bd61f6664c 100644 --- a/meson.build +++ b/meson.build @@ -980,6 +980,13 @@ meson.add_install_script('build-aux/meson/post-install.py', gtk_libdir, gtk_datadir) +if host_machine.system() != 'windows' + # Install Valgrind suppression files (except on Windows, + # as Valgrind is currently not supported on Windows) + install_data('gtk.supp', 'gtk64.supp', + install_dir : join_paths(gtk_datadir, 'gtk-3.0', 'valgrind')) +endif + summary = [ '', '------',