<div dir="ltr">Hi,<div><br></div><div>gcc calls the static initialization function for file foo.cc _GLOBAL__sub_i_foo.cc, while clang always uses _GLOBAL__I_a . Having the filename in the symbol is useful for finding where static initializers are from; we use this information in chromium on linux. (On Mac, we look at the dSYM file instead.)</div>
<div><br></div><div>The attached patch makes clang behave like gcc for initializers. (It doesn't change the behavior for __D_ functions, not sure if anyone wants that.)</div><div><br></div><div>Opinions? Is this useful for anyone else?</div>
<div><br></div><div>(Drawbacks: slightly longer symbols, which has a (small) binary size cost, and it looks likeĀ __attribute__ ((init_priority(101))) works by naming the _GLOBAL__ functions _GLOBAL__I_000101 etc, so if you call your source file 000101.cc it might interfere with this patch.</div>
<div><br></div><div>Nico</div></div>