# -*- text -*-
#
# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
#                         University Research and Technology
#                         Corporation.  All rights reserved.
# Copyright (c) 2004-2005 The University of Tennessee and The University
#                         of Tennessee Research Foundation.  All rights
#                         reserved.
# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
#                         University of Stuttgart.  All rights reserved.
# Copyright (c) 2004-2005 The Regents of the University of California.
#                         All rights reserved.
# $COPYRIGHT$
# 
# Additional copyrights may follow
# 
# $HEADER$
#

###############################################################
#
# OPAL suppressions
#
###############################################################

# weirdness in init routines on Gentoo
{
  linux_pthread_init
  Memcheck:Leak
  fun:calloc
  fun:allocate_dtv
  fun:_dl_allocate_tls_storage
  fun:_dl_allocate_tls
}
{
  linux_pthread_init2
  Memcheck:Leak
  fun:calloc
  fun:_dl_tls_setup
  fun:__pthread_initialize_minimal
}
{
  linux_pthread_init3
  Memcheck:Leak
  fun:memalign
  fun:_dl_allocate_tls_storage
  fun:_dl_allocate_tls
  fun:__pthread_initialize_minimal
}

# The event library leaves some blocks in use that we should clean up,
# but it would require much changing of the event library, so it
# really isn't worth it...
{
  event_lib_poll
  Memcheck:Leak
  fun:malloc
  fun:realloc
  fun:opal_realloc
  fun:poll_dispatch
}

{
   opal_db_base_store
   Memcheck:Leak
   fun:malloc
   obj:*
   fun:opal_db_base_store
   fun:ompi_rte_db_store
   fun:ompi_modex_send_string
   fun:ompi_mpi_init
   fun:PMPI_Init
   fun:main
}
{
   hwloc_bitmap_asprintf
   Memcheck:Leak
   fun:malloc
   fun:opal_hwloc191_hwloc_bitmap_list_asprintf
   fun:orte_ess_base_proc_binding
   obj:*
   fun:orte_init
   fun:ompi_mpi_init
   fun:PMPI_Init
   fun:main
}
{
   db_base_strdup
   Memcheck:Leak
   fun:malloc
   fun:strdup
   obj:*
   fun:opal_db_base_store
   fun:orte_util_decode_pidmap
   fun:orte_util_nidmap_init
   obj:*
   fun:orte_init
   fun:ompi_mpi_init
   fun:PMPI_Init
   fun:main
}
{
   db_base_strdup2
   Memcheck:Leak
   fun:malloc
   fun:strdup
   obj:*
   fun:opal_db_base_store
   fun:orte_ess_base_proc_binding
   obj:*
   fun:orte_init
   fun:ompi_mpi_init
   fun:PMPI_Init
   fun:main
}
{
   db_base_strdup3
   Memcheck:Leak
   fun:malloc
   fun:strdup
   obj:*
   fun:opal_db_base_store
   fun:orte_util_decode_nodemap
   fun:orte_util_nidmap_init
   obj:*
   fun:orte_init
   fun:ompi_mpi_init
   fun:PMPI_Init
   fun:main
}
{
   db_base_strdup4
   Memcheck:Leak
   fun:malloc
   fun:strdup
   obj:*
   fun:opal_db_base_store
   fun:orte_util_decode_nodemap
   fun:orte_util_nidmap_init
   obj:*
   fun:orte_init
   fun:ompi_mpi_init
   fun:PMPI_Init
   fun:main
}
{
   db_base_modex
   Memcheck:Leak
   fun:malloc
   fun:opal_malloc
   obj:*
   fun:opal_db_base_store
   fun:ompi_rte_db_store
   fun:ompi_modex_send
   obj:*
   obj:*
   fun:mca_btl_base_select
   obj:*
   fun:mca_bml_base_init
   obj:*
   fun:mca_pml_base_select
   fun:ompi_mpi_init
   fun:PMPI_Init
   fun:main
}
{
   db_base_modex2
   Memcheck:Leak
   fun:malloc
   fun:opal_malloc
   fun:opal_dss_unpack_value
   fun:opal_dss_unpack_buffer
   fun:opal_dss_unpack
   fun:orte_grpcomm_base_store_modex
   fun:app_recv
   fun:orte_rml_base_process_msg
   fun:event_process_active_single_queue
   fun:event_process_active
   fun:opal_libevent2021_event_base_loop
   fun:orte_progress_thread_engine
   fun:start_thread
   fun:clone
}
{
   db_base_modex3
   Memcheck:Leak
   fun:malloc
   fun:opal_malloc
   obj:*
   fun:opal_db_base_store
   fun:ompi_rte_db_store
   fun:ompi_modex_send_string
   fun:ompi_mpi_init
   fun:PMPI_Init
   fun:main
}
{
   db_base_modex4
   Memcheck:Leak
   fun:malloc
   fun:strdup
   fun:opal_dss_lookup_data_type
   obj:*
   fun:opal_db_base_store_pointer
   fun:orte_grpcomm_base_store_modex
   fun:app_recv
   fun:orte_rml_base_process_msg
   fun:event_process_active_single_queue
   fun:event_process_active
   fun:opal_libevent2021_event_base_loop
   fun:orte_progress_thread_engine
   fun:start_thread
   fun:clone
}
{
   db_base_modex5
   Memcheck:Leak
   fun:malloc
   fun:strdup
   fun:opal_dss_lookup_data_type
   obj:*
   fun:opal_db_base_fetch
   fun:ompi_rte_db_fetch
   fun:ompi_modex_recv
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   fun:ompi_mpi_init
   fun:PMPI_Init
   fun:main
}
{
   db_base_fetch
   Memcheck:Leak
   fun:malloc
   fun:opal_malloc
   fun:opal_dss_copy_value
   fun:opal_dss_copy
   obj:*
   fun:opal_db_base_fetch_multiple
   fun:orte_grpcomm_base_pack_modex_entries
   fun:orte_grpcomm_base_modex
   fun:event_process_active_single_queue
   fun:event_process_active
   fun:opal_libevent2021_event_base_loop
   fun:orte_progress_thread_engine
   fun:start_thread
   fun:clone
}
{
   db_select
   Memcheck:Leak
   fun:calloc
   fun:opal_calloc
   fun:opal_obj_new
   fun:opal_obj_new_debug
   fun:opal_db_base_select
   fun:orte_ess_base_app_setup
   obj:*
   fun:orte_init
   fun:ompi_mpi_init
   fun:PMPI_Init
   fun:main
}
{
   event_strdup
   Memcheck:Leak
   fun:malloc
   fun:strdup
   fun:opal_libevent2021_event_mm_strdup_
   fun:opal_libevent2021_event_config_avoid_method
   fun:opal_event_init
   fun:opal_event_base_open
   fun:mca_base_framework_open
   fun:opal_init
   fun:orte_init
   fun:ompi_mpi_init
   fun:PMPI_Init
   fun:main
}
{
   event_calloc
   Memcheck:Leak
   fun:calloc
   fun:opal_libevent2021_event_mm_calloc_
   fun:opal_libevent2021_evmap_io_add
   fun:event_add_internal
   fun:opal_libevent2021_event_add
   fun:opal_libevent2021_evthread_make_base_notifiable
   fun:opal_libevent2021_event_base_new_with_config
   fun:opal_event_base_create
   fun:opal_event_base_open
   fun:mca_base_framework_open
   fun:opal_init
   fun:orte_init
   fun:ompi_mpi_init
   fun:PMPI_Init
   fun:main
}
{
   event_calloc2
   Memcheck:Leak
   fun:calloc
   fun:opal_libevent2021_event_mm_calloc_
   fun:opal_libevent2021_event_base_priority_init
   fun:opal_event_base_open
   fun:mca_base_framework_open
   fun:opal_init
   fun:orte_init
   fun:ompi_mpi_init
   fun:PMPI_Init
   fun:main
}
{
   event_ioadd
   Memcheck:Leak
   fun:calloc
   fun:opal_libevent2021_event_mm_calloc_
   fun:opal_libevent2021_evmap_io_add
   fun:event_add_internal
   fun:opal_libevent2021_event_add
   obj:*
   obj:*
   fun:mca_btl_base_select
   obj:*
   fun:mca_bml_base_init
   obj:*
   fun:mca_pml_base_select
   fun:ompi_mpi_init
   fun:PMPI_Init
   fun:main
}
{
   event_ioadd2
   Memcheck:Leak
   fun:malloc
   fun:realloc
   fun:opal_libevent2021_event_mm_realloc_
   fun:poll_add
   fun:opal_libevent2021_evmap_io_add
   fun:event_add_internal
   fun:opal_libevent2021_event_add
   fun:opal_libevent2021_evthread_make_base_notifiable
   fun:opal_libevent2021_event_base_new_with_config
   fun:opal_event_base_create
   fun:opal_event_base_open
   fun:mca_base_framework_open
   fun:opal_init
   fun:orte_init
   fun:ompi_mpi_init
   fun:PMPI_Init
   fun:main
}
{
   event_calloc2
   Memcheck:Leak
   fun:calloc
   fun:opal_libevent2021_event_mm_calloc_
   fun:opal_libevent2021_event_config_new
   fun:opal_event_init
   fun:opal_event_base_open
   fun:mca_base_framework_open
   fun:opal_init
   fun:orte_init
   fun:ompi_mpi_init
   fun:PMPI_Init
   fun:main
}
{
   event_calloc3
   Memcheck:Leak
   fun:calloc
   fun:opal_libevent2021_event_mm_calloc_
   fun:poll_init
   fun:opal_libevent2021_event_base_new_with_config
   fun:opal_event_base_create
   fun:opal_event_base_open
   fun:mca_base_framework_open
   fun:opal_init
   fun:orte_init
   fun:ompi_mpi_init
   fun:PMPI_Init
   fun:main
}
{
   event_base
   Memcheck:Leak
   fun:malloc
   fun:opal_libevent2021_event_mm_malloc_
   fun:evthread_posix_lock_alloc
   fun:evthread_setup_global_lock_
   fun:event_global_setup_locks_
   fun:opal_libevent2021_evthread_set_lock_callbacks
   fun:opal_libevent2021_evthread_use_pthreads
   fun:opal_event_base_open
   fun:mca_base_framework_open
   fun:opal_init
   fun:orte_init
   fun:ompi_mpi_init
   fun:PMPI_Init
   fun:main
}
{
   event_base2
   Memcheck:Leak
   fun:malloc
   fun:opal_libevent2021_event_mm_malloc_
   fun:evthread_posix_lock_alloc
   fun:evthread_setup_global_lock_
   fun:evsig_global_setup_locks_
   fun:event_global_setup_locks_
   fun:opal_libevent2021_evthread_set_lock_callbacks
   fun:opal_libevent2021_evthread_use_pthreads
   fun:opal_event_base_open
   fun:mca_base_framework_open
   fun:opal_init
   fun:orte_init
   fun:ompi_mpi_init
   fun:PMPI_Init
   fun:main
}
{
   event_base3
   Memcheck:Leak
   fun:malloc
   fun:opal_libevent2021_event_mm_malloc_
   fun:evthread_posix_lock_alloc
   fun:evthread_setup_global_lock_
   fun:opal_libevent2021_evutil_secure_rng_global_setup_locks_
   fun:event_global_setup_locks_
   fun:opal_libevent2021_evthread_set_lock_callbacks
   fun:opal_libevent2021_evthread_use_pthreads
   fun:opal_event_base_open
   fun:mca_base_framework_open
   fun:opal_init
   fun:orte_init
   fun:ompi_mpi_init
   fun:PMPI_Init
   fun:main
}
{
   event_base4
   Memcheck:Leak
   fun:malloc
   fun:opal_libevent2021_event_mm_malloc_
   fun:evthread_posix_lock_alloc
   fun:opal_libevent2021_event_base_new_with_config
   fun:opal_event_base_create
   fun:opal_event_base_open
   fun:mca_base_framework_open
   fun:opal_init
   fun:orte_init
   fun:ompi_mpi_init
   fun:PMPI_Init
   fun:main
}
{
   event_base5
   Memcheck:Leak
   fun:malloc
   fun:opal_libevent2021_event_mm_malloc_
   fun:evthread_posix_cond_alloc
   fun:opal_libevent2021_event_base_new_with_config
   fun:opal_event_base_create
   fun:opal_event_base_open
   fun:mca_base_framework_open
   fun:opal_init
   fun:orte_init
   fun:ompi_mpi_init
   fun:PMPI_Init
   fun:main
}
{
   event_base6
   Memcheck:Leak
   fun:malloc
   fun:opal_libevent2021_event_mm_malloc_
   fun:opal_libevent2021_event_config_avoid_method
   fun:opal_event_init
   fun:opal_event_base_open
   fun:mca_base_framework_open
   fun:opal_init
   fun:orte_init
   fun:ompi_mpi_init
   fun:PMPI_Init
   fun:main
}
{
   event_base7
   Memcheck:Leak
   fun:malloc
   fun:realloc
   fun:opal_libevent2021_event_mm_realloc_
   fun:evmap_make_space
   fun:opal_libevent2021_evmap_io_add
   fun:event_add_internal
   fun:opal_libevent2021_event_add
   fun:opal_libevent2021_evthread_make_base_notifiable
   fun:opal_libevent2021_event_base_new_with_config
   fun:opal_event_base_create
   fun:opal_event_base_open
   fun:mca_base_framework_open
   fun:opal_init
   fun:orte_init
   fun:ompi_mpi_init
   fun:PMPI_Init
   fun:main
}
{
   event_base8
   Memcheck:Leak
   fun:calloc
   fun:opal_libevent2021_event_mm_calloc_
   fun:opal_libevent2021_event_base_new_with_config
   fun:opal_event_base_create
   fun:opal_event_base_open
   fun:mca_base_framework_open
   fun:opal_init
   fun:orte_init
   fun:ompi_mpi_init
   fun:PMPI_Init
   fun:main
}
{
   event_dispatch
   Memcheck:Leak
   fun:malloc
   fun:realloc
   fun:opal_libevent2021_event_mm_realloc_
   fun:poll_dispatch
   fun:opal_libevent2021_event_base_loop
   fun:opal_progress
   fun:ompi_mpi_init
   fun:PMPI_Init
   fun:main
}
{
   var_register_bml
   Memcheck:Leak
   fun:malloc
   fun:strdup
   fun:mca_base_var_enum_create
   obj:*
   fun:register_components
   fun:mca_base_framework_components_register
   fun:mca_base_framework_register
   fun:mca_base_framework_open
   fun:mca_bml_base_open
   fun:mca_base_framework_open
   fun:ompi_mpi_init
   fun:PMPI_Init
   fun:main
}
{
   component_find
   Memcheck:Leak
   fun:calloc
   fun:_dlerror_run
   fun:dlopen@@GLIBC_2.2.5
   fun:vm_open
   fun:tryall_dlopen
   fun:tryall_dlopen_module
   fun:find_module
   fun:try_dlopen
   fun:lt_dlopenadvise
   fun:open_component
   fun:find_dyn_components
   fun:mca_base_component_find
   fun:mca_base_framework_components_register
   fun:mca_base_framework_register
   fun:mca_base_framework_open
   fun:opal_init
   fun:orte_init
   fun:ompi_mpi_init
   fun:PMPI_Init
   fun:main
}
{
   component_reg
   Memcheck:Leak
   fun:calloc
   fun:opal_calloc
   fun:opal_obj_new
   fun:opal_obj_new_debug
   fun:mca_base_component_find
   fun:mca_base_framework_components_register
   fun:mca_base_framework_register
   fun:mca_base_framework_open
   fun:opal_init
   fun:orte_init
   fun:ompi_mpi_init
   fun:PMPI_Init
   fun:main
}
{
   component_reg2
   Memcheck:Leak
   fun:calloc
   fun:opal_calloc
   fun:opal_obj_new
   fun:opal_obj_new_debug
   fun:mca_base_var_enum_create
   obj:*
   fun:register_components
   fun:mca_base_framework_components_register
   fun:mca_base_framework_register
   fun:mca_base_framework_open
   fun:mca_bml_base_open
   fun:mca_base_framework_open
   fun:ompi_mpi_init
   fun:PMPI_Init
   fun:main
}
{
   enum_create
   Memcheck:Leak
   fun:calloc
   fun:opal_calloc
   fun:mca_base_var_enum_create
   obj:*
   fun:register_components
   fun:mca_base_framework_components_register
   fun:mca_base_framework_register
   fun:mca_base_framework_open
   fun:mca_bml_base_open
   fun:mca_base_framework_open
   fun:ompi_mpi_init
   fun:PMPI_Init
   fun:main
}
{
   enum_create2
   Memcheck:Leak
   fun:malloc
   fun:strdup
   fun:mca_base_var_enum_create
   obj:*
   fun:register_components
   fun:mca_base_framework_components_register
   fun:mca_base_framework_register
   fun:mca_base_framework_open
   fun:mca_bml_base_open
   fun:mca_base_framework_open
   fun:ompi_mpi_init
   fun:PMPI_Init
   fun:main
}
{
   dss_lookup
   Memcheck:Leak
   fun:malloc
   fun:strdup
   fun:opal_dss_lookup_data_type
   obj:*
   fun:opal_db_base_fetch
   obj:*
   obj:*
   obj:*
   obj:*
   fun:event_persist_closure
   fun:event_process_active_single_queue
   fun:event_process_active
   fun:opal_libevent2021_event_base_loop
   fun:orte_progress_thread_engine
   fun:start_thread
   fun:clone
}
{
   hwloc_search
   Memcheck:Leak
   fun:malloc
   fun:opal_hwloc191_hwloc_bitmap_alloc
   fun:opal_hwloc_base_get_available_cpus
   fun:df_search
   fun:df_search
   fun:opal_hwloc_base_get_nbobjs_by_type
   obj:*
   obj:*
   obj:*
   obj:*
   fun:ompi_mpi_init
   fun:PMPI_Init
   fun:main
}
{
   hwloc_cpus
   Memcheck:Leak
   fun:calloc
   fun:opal_calloc
   fun:opal_obj_new
   fun:opal_obj_new_debug
   fun:opal_hwloc_base_get_available_cpus
   fun:opal_hwloc_base_get_relative_locality
   fun:ompi_proc_set_locality
   fun:ompi_proc_complete_init
   fun:ompi_mpi_init
   fun:PMPI_Init
   fun:main
}
{
   hwloc_cpus2
   Memcheck:Leak
   fun:malloc
   fun:opal_hwloc191_hwloc_bitmap_alloc
   fun:opal_hwloc_base_get_available_cpus
   fun:opal_hwloc_base_get_relative_locality
   fun:ompi_proc_set_locality
   fun:ompi_proc_complete_init
   fun:ompi_mpi_init
   fun:PMPI_Init
   fun:main
}
{
   hwloc_cpus3
   Memcheck:Leak
   fun:malloc
   fun:opal_hwloc191_hwloc_bitmap_alloc
   fun:opal_hwloc_base_get_available_cpus
   fun:opal_hwloc_base_get_relative_locality
   fun:ompi_proc_set_locality
   fun:ompi_proc_complete_init
   fun:ompi_mpi_init
   fun:PMPI_Init
   fun:main
}
{
   hwloc_cpus4
   Memcheck:Leak
   fun:calloc
   fun:opal_calloc
   fun:opal_obj_new
   fun:opal_obj_new_debug
   fun:df_search
   fun:df_search
   fun:opal_hwloc_base_get_nbobjs_by_type
   obj:*
   obj:*
   obj:*
   obj:*
   fun:ompi_mpi_init
   fun:PMPI_Init
   fun:main
}


###############################################################
#
# ORTE suppressions
#
###############################################################

# inet_ntoa on linux mallocs a static buffer.  We can't free 
# it, so we have to live with it
{
  linux_inet_ntoa
  Memcheck:Leak
  fun:malloc
  fun:inet_ntoa
}
{
  linux_inet_ntoa_thread
  Memcheck:Leak
  fun:calloc
  fun:pthread_setspecific
  fun:inet_ntoa
}
{
   oob_tcp_listen_thread_bind
   Memcheck:Param
   socketcall.bind(my_addr.sin6_flowinfo)
   fun:bind
   fun:create_listen6
   fun:orte_oob_tcp_start_listening
   fun:component_startup
   fun:orte_oob_base_select
   fun:orte_ess_base_app_setup
   fun:rte_init
   fun:orte_init
   fun:ompi_mpi_init
   fun:PMPI_Init
   fun:main
}
{
   print_name
   Memcheck:Leak
   fun:malloc
   fun:opal_malloc
   fun:get_print_name_buffer
   fun:orte_util_print_jobids
   fun:orte_util_print_name_args
   obj:*
   obj:*
   fun:orte_init
   fun:ompi_mpi_init
   fun:PMPI_Init
   fun:main
}
{
   print_name2
   Memcheck:Leak
   fun:malloc
   fun:opal_malloc
   fun:get_print_name_buffer
   fun:orte_util_print_jobids
   fun:orte_util_print_name_args
   obj:*
   obj:*
   fun:orte_init
   fun:ompi_mpi_init
   fun:PMPI_Init
   fun:main
}


###############################################################
#
# OMPI suppressions
#
###############################################################
{
  tcp_send
  Memcheck:Param
  writev(vector[...])
  fun:writev
  fun:mca_btl_tcp_frag_send
  fun:mca_btl_tcp_endpoint_send
}
{
   bml_reserve
   Memcheck:Leak
   fun:malloc
   fun:realloc
   fun:opal_realloc
   fun:mca_bml_base_btl_array_reserve
   obj:*
   obj:*
   fun:ompi_mpi_init
   fun:PMPI_Init
   fun:main
}
{
   bml_reserve2
   Memcheck:Leak
   fun:malloc
   fun:realloc
   fun:opal_realloc
   fun:mca_bml_base_btl_array_reserve
   obj:*
   obj:*
   fun:ompi_mpi_init
   fun:PMPI_Init
   fun:main
}
{
   bml_reserve3
   Memcheck:Leak
   fun:malloc
   fun:realloc
   fun:opal_realloc
   fun:mca_bml_base_btl_array_reserve
   obj:*
   obj:*
   fun:ompi_mpi_init
   fun:PMPI_Init
   fun:main
}
{
   ompi_calloc
   Memcheck:Leak
   fun:calloc
   fun:opal_calloc
   obj:*
   obj:*
   obj:*
   obj:*
   fun:ompi_mpi_init
   fun:PMPI_Init
   fun:main
}
{
   ompi_calloc2
   Memcheck:Leak
   fun:malloc
   fun:opal_malloc
   obj:*
   obj:*
   obj:*
   obj:*
   fun:ompi_mpi_init
   fun:PMPI_Init
   fun:main
}
{
   ompi_calloc3
   Memcheck:Leak
   fun:malloc
   fun:opal_malloc
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   fun:ompi_mpi_init
   fun:PMPI_Init
   fun:main
}
{
   ompi_calloc4
   Memcheck:Leak
   fun:calloc
   fun:opal_calloc
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   fun:ompi_mpi_init
   fun:PMPI_Init
   fun:main
}
{
   ompi_fetch
   Memcheck:Leak
   fun:malloc
   fun:strdup
   obj:*
   fun:opal_db_base_fetch
   fun:ompi_proc_set_locality
   fun:ompi_proc_complete_init
   fun:ompi_mpi_init
   fun:PMPI_Init
   fun:main
}
{
   ompi_fetch2
   Memcheck:Leak
   fun:malloc
   fun:strdup
   fun:opal_dss_lookup_data_type
   obj:*
   fun:opal_db_base_fetch
   fun:ompi_proc_set_locality
   fun:ompi_proc_complete_init
   fun:ompi_mpi_init
   fun:PMPI_Init
   fun:main
}
{
   ompi_fetch3
   Memcheck:Leak
   fun:malloc
   fun:strdup
   fun:opal_dss_lookup_data_type
   obj:*
   fun:opal_db_base_fetch
   fun:ompi_proc_set_locality
   fun:ompi_proc_complete_init
   fun:ompi_mpi_init
   fun:PMPI_Init
   fun:main
}
{
   ompi_fetch4
   Memcheck:Leak
   fun:malloc
   fun:opal_malloc
   obj:*
   fun:opal_db_base_fetch
   fun:ompi_rte_db_fetch
   fun:ompi_modex_recv
   obj:*
   obj:*
   obj:*
   obj:*
   fun:ompi_mpi_init
   fun:PMPI_Init
   fun:main
}
{
   ompi_fetch5
   Memcheck:Leak
   fun:malloc
   fun:opal_malloc
   obj:*
   fun:opal_db_base_fetch
   fun:ompi_rte_db_fetch
   fun:ompi_modex_recv
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   fun:ompi_mpi_init
   fun:PMPI_Init
   fun:main
}
{
   ompi_fetch6
   Memcheck:Leak
   fun:malloc
   fun:strdup
   fun:opal_dss_lookup_data_type
   obj:*
   fun:opal_db_base_fetch
   fun:ompi_rte_db_fetch
   fun:ompi_modex_recv
   obj:*
   obj:*
   obj:*
   obj:*
   fun:ompi_mpi_init
   fun:PMPI_Init
   fun:main
}
{
   vader
   Memcheck:Addr2
   fun:memcpy@@GLIBC_2.14
   fun:opal_convertor_pack
   fun:mca_btl_vader_sendi
   fun:mca_bml_base_sendi
   fun:mca_pml_ob1_send_inline
   fun:mca_pml_ob1_send
   fun:PMPI_Send
   fun:main
}
{
   btl_select
   Memcheck:Leak
   fun:malloc
   fun:opal_malloc
   obj:*
   fun:mca_btl_base_select
   obj:*
   fun:mca_bml_base_init
   obj:*
   fun:mca_pml_base_select
   fun:ompi_mpi_init
   fun:PMPI_Init
   fun:main
}
{
   mpool_create
   Memcheck:Leak
   fun:malloc
   fun:opal_malloc
   obj:*
   obj:*
   fun:mca_mpool_base_module_create
   obj:*
   obj:*
   obj:*
   obj:*
   fun:ompi_mpi_init
   fun:PMPI_Init
   fun:main
}
{
   mpool_create2
   Memcheck:Leak
   fun:malloc
   fun:opal_malloc
   obj:*
   obj:*
   obj:*
   fun:mca_mpool_base_module_create
   obj:*
   obj:*
   obj:*
   obj:*
   fun:ompi_mpi_init
   fun:PMPI_Init
   fun:main
}
{
   mpool_create3
   Memcheck:Leak
   fun:malloc
   fun:opal_malloc
   obj:*
   fun:mca_mpool_base_module_create
   obj:*
   obj:*
   obj:*
   obj:*
   fun:ompi_mpi_init
   fun:PMPI_Init
   fun:main
}
{
   ompi_free_list
   Memcheck:Leak
   fun:malloc
   fun:opal_malloc
   fun:ompi_free_list_grow
   fun:ompi_free_list_init_ex_new
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   fun:ompi_mpi_init
   fun:PMPI_Init
   fun:main
}
{
   ompi_free_list2
   Memcheck:Leak
   fun:malloc
   fun:opal_malloc
   fun:ompi_free_list_grow
   fun:ompi_free_list_init_ex_new
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   fun:ompi_mpi_init
   fun:PMPI_Init
   fun:main
}
{
   ompi_free_list3
   Memcheck:Leak
   fun:malloc
   fun:opal_malloc
   fun:opal_free_list_grow
   fun:opal_free_list_init
   obj:*
   obj:*
   obj:*
   obj:*
   fun:ompi_mpi_init
   fun:PMPI_Init
   fun:main
}

###############################################################
#
# Suppressions for various commonly-used packages
#
###############################################################

# Portals reference implementation has a read from invalid issue
{
  portals_send
  Memcheck:Param
  socketcall.send(msg)
  fun:send
  fun:utcp_sendbytes
  fun:utcp_sendto
  fun:utcp_msg_wait
}
