Calling Global Constructors: Difference between revisions

Jump to navigation Jump to search
[unchecked revision][unchecked revision]
Content added Content deleted
No edit summary
(→‎Clang: add my observations for dealing with clang)
Line 281: Line 281:


== Clang ==
== Clang ==
Since Clang attemps to be largely compatible with GCC, the information listed there can possibly be adapted easily. If you give it a try, please document the findings here.
'''Note:''' Since Clang attemps to be largely compatible with GCC, the information listed there can possibly be adapted easily. If you give it a try, please document the findings here.

From what I can tell, clang doesn't require you to specify the correct crt{begin,end}.o in the objects you pass to your linker, provided you pass crt[in].o in correct place. clang, being able to output to many targets, doesn't always have a usable crt{begin,end}.o at hand, which it seems to somehow compile on demand. Calling _init doesn't seem to be a requirement, too. An additional call to _init doesn't execute it twice, so it's still safe to call manually.

In summary, in order to adapt this from GCC to clang, take out crt{begin,end}.o from your linker line and you should be fine.


== Other Compilers / Platforms ==
== Other Compilers / Platforms ==