1 # GLib Valgrind suppressions file
3 # This provides a list of suppressions for all of GLib (including GIO), for all
4 # Valgrind tools (memcheck, drd, helgrind, etc.) for the false positives and
5 # deliberate one-time leaks which GLib causes to be reported when running under
8 # When running an application which links to GLib under Valgrind, you can pass
9 # this suppression file to Valgrind using --suppressions=/path/to/glib-2.0.supp.
11 # http://valgrind.org/docs/manual/manual-core.html#manual-core.suppress
13 # Note that there is currently no way for Valgrind to load this automatically
14 # (https://bugs.kde.org/show_bug.cgi?id=160905), so the best GLib can currently
15 # do is to install this file as part of its development package.
17 # This file should be updated if GLib introduces a new deliberate one-time leak,
18 # or another false race positive in Valgrind: please file bugs at:
20 # https://bugzilla.gnome.org/enter_bug.cgi?product=glib
39 g-tls-backend-gnutls-init
42 fun:g_tls_backend_gnutls_init
50 fun:create_tokens_inlock
51 fun:initialize_module_inlock_reentrant
79 g-type-register-dynamic
83 fun:g_type_register_dynamic
87 g-type-register-static
91 fun:g_type_register_static
95 g-type-register-static-realloc
99 fun:g_type_register_static
103 g-type-register-static-calloc
107 fun:g_type_register_static
111 g-type-add-interface-dynamic
115 fun:g_type_add_interface_dynamic
119 g-type-add-interface-static
123 fun:g_type_add_interface_static
131 fun:g_rand_new_with_seed_array
142 fun:g_rand_new_with_seed_array
144 fun:get_global_random
160 fun:g_hash_table_resize
166 g-type-interface-init
170 fun:type_iface_vtable_base_init_Wm
178 fun:type_class_init_Wm
182 g-io-module-default-singleton-malloc
186 fun:g_type_create_instance
188 fun:_g_io_module_get_default
192 g-io-module-default-singleton-module
198 fun:_g_io_module_get_default
206 fun:g_get_language_names
214 fun:g_static_mutex_get_mutex_impl
222 fun:g_system_thread_new
226 g-io-module-default-proxy-resolver-gnome
230 fun:g_proxy_resolver_gnome_init
232 fun:_g_io_module_get_default
237 drd:ConflictingAccess
241 g-private-get-helgrind
249 drd:ConflictingAccess
253 g-private-set-helgrind
259 g-type-construct-free
260 drd:ConflictingAccess
261 fun:g_type_free_instance
264 g-type-construct-free-helgrind
266 fun:g_type_free_instance
271 drd:ConflictingAccess
275 g-variant-unref-helgrind
282 drd:ConflictingAccess
283 fun:_g_main_create_unix_signal_watch
286 g-unix-signals-dispatch
287 drd:ConflictingAccess
289 fun:dispatch_unix_signals*
292 g-unix-signals-dispatch-helgrind
295 fun:dispatch_unix_signals*
299 drd:ConflictingAccess
300 fun:g_unix_signal_watch*
303 g-unix-signals-other-helgrind
305 fun:g_unix_signal_watch*
308 g-unix-signals-handler
309 drd:ConflictingAccess
310 fun:g_unix_signal_handler*
313 g-unix-signals-handler-helgrind
315 fun:g_unix_signal_handler*
318 g-unix-signals-worker
319 drd:ConflictingAccess
323 g-unix-signals-worker-helgrind
330 drd:ConflictingAccess
332 fun:g_wakeup_acknowledge
337 drd:ConflictingAccess
338 fun:g_type_fundamental
341 g-type-fundamental-helgrind
343 fun:g_type_fundamental
346 g-type-class-peek-static
347 drd:ConflictingAccess
348 fun:g_type_class_peek_static
351 g-type-class-peek-static-helgrind
353 fun:g_type_class_peek_static
357 drd:ConflictingAccess
369 g-inet-address-get-type
370 drd:ConflictingAccess
371 fun:g_inet_address_get_type
374 g-inet-address-get-type-helgrind
376 fun:g_inet_address_get_type
379 # From: https://github.com/fredericgermain/valgrind/blob/master/glibc-2.X-drd.supp
382 drd:ConflictingAccess
387 drd:ConflictingAccess
392 drd:ConflictingAccess
396 # GSources do an opportunistic ref count check
398 g-source-set-ready-time
399 drd:ConflictingAccess
400 fun:g_source_set_ready_time
403 g-source-set-ready-time-helgrind
405 fun:g_source_set_ready_time
411 fun:g_source_iter_next
413 fun:g_main_context_iterate
417 g-object-instance-private
418 drd:ConflictingAccess
419 fun:*_get_instance_private
422 g-object-instance-private-helgrind
424 fun:*_get_instance_private
427 # GLib legitimately calls pthread_cond_signal without a mutex held
429 g-task-thread-complete
433 fun:g_task_thread_complete
436 g-task-thread-complete
440 fun:g_task_thread_complete
443 # False positive, but I can't explain how (FIXME)
452 # Real race, but is_cancelled() is an opportunistic function anyway
454 g-cancellable-is-cancelled
456 fun:g_cancellable_is_cancelled
465 fun:g_main_context_unref
472 fun:g_source_*_unlocked
477 fun:g_source_*_internal
482 g_object_real_dispose
484 fun:g_object_real_dispose
492 fun:g_object_new_valist