Clang/Clang++ standard headers?

Does Clang/Clang++ not have its own set of standard headers? Isn’t this a serious issue if Clang/Clang++ is ever to outdo GCC/G++? Is there any work in progress on this?

Ideally, Clang would ship as a ready-to-use installation image that included everything needed to use it as the possibly best C and C++ compiler on the market. Or, am I ahead of myself again?

Cheers,
Mikael
– Love Thy Frog!

It provides the compiler-centric headers. It doesn't replace the rest of
the C runtime library. That wouldn't make much sense.

Joerg

Does Clang/Clang++ not have its own set of standard headers?

Which ones? The C runtime library? - that's an entire project on its
own, with various implementations per platform (glibc, etc)
The C++ standard library? Also a separate project, though less
platform specific. There is a standard library implementation under
the LLVM project banner - libc++ ( http://libcxx.llvm.org/ ) as an
alternative to libstdc++ - Clang can use either, though I'm not sure
if libc++ is usable in GCC.

Isn't this a serious issue if Clang/Clang++ is ever to outdo GCC/G++?

Not exactly, no - though as you can see above, some of that's already
accounted for for other reasons anyway.

- David

So, on Windows, Clang(++) will always depend on either Mingw (or Microsoft, once the force_inline issue is resolved). I’m only asking because the Windows norm is that the compiler ships with everything needed - tools, libraries, and headers.

Assuming LLVM optimizes better than GNU, wouldn’t it to some extent make sense to rebuild the GNU libraries using Clang(++) and then ship the result? Or, perhaps, even rebuild the GNU C and C++ libraries into bitcode modules that are then link-time optimized once the user links?

Anybody know what the GNU license permits? Would it be okay to take a Mingw64 build, replace the tools, and then ship the result?

I must say that I feel that the whole procedure, from first stumbling across LLVM to building your own C++ program succesfully, is rather long.

Now I’m battling some unresolved symbols such as __imp_htonl. The reference to htonl() is in my own code, but I am a “ld” newbie. I seem to recall from the ancient past that “ld” is extremely peculiar about how you order your libraries. Oh, well, I’ll figure it out eventually.

Cheers,
Mikael

– Love Thy Frog!

2012/5/28 Joerg Sonnenberger <joerg@britannica.bec.de>