Hello,

"make check" doesn't report any single memory leak under valgrind
anymore in trunk... except those from external libs such as libpci and
libxml. I created the attached suppressions file to hide them when
valgrind'ing hwloc programs. Just pass --suppressions=hwloc.supp to
valgrind.

For the record, the reason we need this is:
* libpci and libxml use libz, which initializes global state without
ever freeing it.
* libxml only frees it global state in xmlCleanupParser(), but we
stopped calling it in hwloc because the program may still be using
libxml when hwloc stops using it.

Should we ship this suppressions file in the tarball? At least having it
somewhere online may be a good idea?

Brice

{
   zlib doesn't cleanup
   Memcheck:Cond
   fun:inflateReset2
   fun:inflateInit2_
}
{
   hwloc cannot free the global parser (xmlCleanupParser) because other threads 
may be using it
   Memcheck:Leak
   ...
   fun:xmlInitParser
}
{
   hwloc cannot free the global xml dict RMutex because it cannot call 
xmlCleanupParser
   Memcheck:Leak
   fun:malloc
   fun:xmlNewRMutex
   ...
   fun:xmlDictCreate
}

Reply via email to