Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
The ClingMMapper must remain available until all ClingMemoryManagers are destructed, which is typically during shutdown of IncrementalJIT. This was not the case for the global object MMapperInstance that was introduced during the upgrade to LLVM 13 because libCling variables are destructed before running TROOT atexit handlers that shut down the JIT. In practice, it happened to work but this will change with the upgrade to LLVM 18 where we see crashes in some tests, potentially because of upstream commit llvm/llvm-project@47f5c54 See also commits e0f6c04660 ("Prevent static destruction from ending DefaultMMapper too early") and 80c14bb948 ("Extend lifetime of SectionMemoryManager::DefaultMMapper, again") for the same problem that we previously patched in our copy of LLVM.
- Loading branch information