On Fedora 17 I have installed a the binary clang package clang3.0-14. When I tried to build the latest llvm/clang from source using this binary clang I get essentially two different errors:
1) In file included from /home/fceldiener/vcs/llvm/include/llvm/Support/SwapByteOrder.h:20:
/usr/bin/../lib/gcc/x86_64-redhat-linux/4.7.2/../../../../include/c++/4.7.2/limits:1404:27: error: use of undeclared identifier
'__int128'; did you mean '__int128_t'?
struct numeric_limits<__int128>
^
/usr/bin/../lib/gcc/x86_64-redhat-linux/4.7.2/../../../../include/c++/4.7.2/limits:1478:36: error: expected '>'
struct numeric_limits<unsigned __int128>
^
/usr/bin/../lib/gcc/x86_64-redhat-linux/4.7.2/../../../../include/c++/4.7.2/limits:1478:5: error: cannot combine with previous
'(error)' declaration specifier
struct numeric_limits<unsigned __int128>
^
/usr/bin/../lib/gcc/x86_64-redhat-linux/4.7.2/../../../../include/c++/4.7.2/limits:1478:44: error: expected unqualified-id
struct numeric_limits<unsigned __int128>
^
In file included from In file included from /home/fceldiener/vcs/llvm/lib/Support/CrashRecoveryContext.cpp:10:
/home/fceldiener/vcs/llvm/lib/Support/DataStream.cpp:In file included from 18:
2) In file included from /home/fceldiener/vcs/llvm/include/llvm/Support/DataStream.h:/home/fceldiener/vcs/llvm/include/llvm/Support/CrashRecoveryContext.h20:
In file included from /usr/bin/../lib/gcc/x86_64-redhat-linux/4.7.2/../../../../include/c++/4.7.2/string::53:
In file included from /usr/bin/../lib/gcc/x86_64-redhat-linux/4.7.2/../../../../include/c++/4.7.2/bits/basic_string.h:4013:
/usr/bin/../lib/gcc/x86_64-redhat-linux/4.7.2/../../../../include/c++/4.7.2/ext/atomicity.h:48::
45:In file included from error: use of/usr/bin/../lib/gcc/x86_64-redhat-linux/4.7.2/../../../../include/c++/4.7.2/string undeclared identifier
'__ATOMIC_ACQ_REL'
{ return __atomic_fetch_add(__mem, __val, __ATOMIC_ACQ_REL); }:
If I build with gcc, there are no problems.
The 3.0-4 distribution of clang says that it was updated for gcc 4.7.2.