<div dir="ltr">2013/3/26 Karl Berry <span dir="ltr"><<a href="mailto:karl@freefriends.org" target="_blank">karl@freefriends.org</a>></span><br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Dick reported the following.  I wanted to reply on the list so it would<br>
end up in the archives.<br>
<br>
    The whole compile uses [gcc], EXCEPT the icu compile. It's configure<br>
    utility checks for clang and clang++, finds them, and uses<br>
    them. Recall that llvm-clang is another open source compiler system,<br>
    which Apple supports. In Lion Apple switched completely to this<br>
    system and removed gcc. I believe gcc and clang are compatible, so<br>
    the fact that clang is used for icu causes no harm. But I wouldn't<br>
    bet my house on it.)<br>
<br>
I wouldn't bet a nickel on it.  Indeed, I find it amazing that this<br>
works at all -- clang++ and g++ do precisely the same name-mangling of<br>
symbols?<br><br></blockquote><div><br></div><div style>Yes, clang/LLVM goes at some lengths to make sure its outputs are mostly binary-compatible with GCC. Name mangling and the general C and C++ ABI are definitely compatible.</div>
<div style>Personally the only interoperability problems I had concerned the C++ standard library – libstdc++ (GCC's standard library) and libc++ (a common choice for the standard library when Clang is used) are not binary-compatible, and trying to use both in one program (through shared libraries) will often fail with a segmentation fault or somesuch (linking will still work!).</div>
<div style>However it might still be more manageable to build all TL binaries with the same compiler.</div></div></div></div>