https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64123
--- Comment #15 from Jan Hubicka <hubicka at ucw dot cz> --- > No. Each dso's gcov machinery is individually invoked. There should be no > cross-dso accessing of data (beyond the global chain of dso) I am not saying my fix is correct, just lets me to continue in training firefox. So I have one global chain and one gcov destructor walking it. What I think is done is that the file is open by gcov-io copy of the global destructor, but when we merge profiles we indirectly call into merge function from other copy. It should be easy to reproduce by profiling something consisting of two DSOs. Honza