diff --git a/glibc-2.X.supp.in b/glibc-2.X.supp.in index 126e8b338..eeefa3935 100644 --- a/glibc-2.X.supp.in +++ b/glibc-2.X.supp.in @@ -248,3 +248,37 @@ Memcheck:Cond fun:_dl_runtime_resolve_avx_slow } + +# The main thread dynamic thread vector, DTV, which contains pointers +# to thread local variables, isn't freed. There are a couple of call +# patterns that can cause it to be extended. +{ + dtv-addr-tail + Memcheck:Leak + match-leak-kinds: possible,reachable + fun:malloc + fun:tls_get_addr_tail* + fun:__tls_get_addr +} + +{ + dtv-addr-resize + Memcheck:Leak + match-leak-kinds: possible,reachable + fun:malloc + fun:_dl_resize_dtv + fun:_dl_update_slotinfo + fun:update_get_addr + fun:__tls_get_addr +} + +{ + dtv-addr-init + Memcheck:Leak + match-leak-kinds: possible,reachable + fun:malloc + fun:allocate_dtv_entry + fun:allocate_and_init + fun:tls_get_addr_tail* + fun:__tls_get_addr +}