This issue should be caused by applying `-Wl,-Bsymbolic-functions` as a linker flag when building the Ubuntu package for libomp.so. This linker flag strictly binds all function calls to function implementation within the same compilation unit and effectively disables LD_PRELOAD-ing of the ompt_start_tool function. I wonder how the MPI libraries are built, so that LD_PRELOAD-ing MPI tool libraries works.
In any case, using `OMP_TOOL_LIBRARIES=$LD_PRELOAD` should be the work-around suggested by the OpenMP standard. Using this environmental variable, LD_PRELOAD is only necessary, if your library wants to overload other API (such as MPI) at dynamic link-time. For OMPT, it is sufficient to let the OpenMP runtime load the tool.
This issue should be caused by applying `-Wl,-Bsymbolic -functions` as a linker flag when building the Ubuntu package for libomp.so. This linker flag strictly binds all function calls to function implementation within the same compilation unit and effectively disables LD_PRELOAD-ing of the ompt_start_tool function. I wonder how the MPI libraries are built, so that LD_PRELOAD-ing MPI tool libraries works.
In any case, using `OMP_TOOL_ LIBRARIES= $LD_PRELOAD` should be the work-around suggested by the OpenMP standard. Using this environmental variable, LD_PRELOAD is only necessary, if your library wants to overload other API (such as MPI) at dynamic link-time. For OMPT, it is sufficient to let the OpenMP runtime load the tool.