> It is important to note that, in the Itanium ABI, even if the module doesn’t currently have
> anything that needs static initialization, the translation unit importing that module will still
> generate the code to call the initializer, because we don’t want the addition of a static initializer
> to a shared object to result in an ABI break
this is false.
Interesting. That is the current implementation in clang, IIUC.
We probably need to clarify that point, because it is indeed problematic if adding a new static initializer means an ABI breakage for the library.
daniel