<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Mon, May 11, 2015 at 11:31 AM, Christian Convey <span dir="ltr"><<a href="mailto:christian.convey@gmail.com" target="_blank">christian.convey@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">(Sorry if this is documented somewhere, but I couldn't find it.)<div><br></div><div>Does anyone know what limitations currently exist when linking together C++ object produced by clang with those produced by c++ and/or Intel's icc?</div><div><br></div><div>My impression back in the day was that incompatible ABI's made it unsafe to link together C++ object code from different compiler vendors/versions.  Not just with name mangling, but also with exceptions and perhaps other issues.   I'm not only asking about linking to C++ standard libraries, but also situations like:</div><div><br></div><div>clang++ -c foo.cpp</div><div>g++ -c bar.cpp</div><div>clang++ a.o b.o</div><div><br></div><div>Experimentally it seems to work okay, but I wasn't sure if that tells the whole story.</div></div></blockquote><div><br>All these compilers attempt to implement the Itanium ABI. There's a common working group that attempts to keep this ABI evolving as new language features are added that have ABI surface area so that this continues to be true.<br><br>(basically: yes, this is meant to work. When it doesn't it's likely a bug in one of the compilers and/or the Itanium ABI spec)<br> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>_______________________________________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@cs.uiuc.edu">cfe-dev@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a><br>
<br></blockquote></div><br></div></div>