<div dir="ltr"><div dir="ltr">On Wed, Mar 18, 2020 at 11:46 PM David Blaikie <<a href="mailto:dblaikie@gmail.com">dblaikie@gmail.com</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><br></div><div class="gmail_quote"><div>Not sure if this makes it less likely someone will abuse the mechanic/make the same mistake as had happened before & declare the registration object at namespace scope in a library rather than only in executables.<br><a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank"></a><br>
</div></div></div></blockquote><div> </div><div>If I'm not mistaken, even that should be ok. If the object is registered in a library *and* in the main executable, there will be two calls to the constructor registered in the ELF constructor. Whatever the order, the first one will initialize the static options from its constructor, and the second won't, so no conflict.</div></div></div>