Again, C++ system header path has changed. Ubuntu 13.10 x86_64 has: /usr/include/i386-linux-gnu /usr/include/x86_64-linux-gnu /usr/lib/i386-linux-gnu /usr/lib/x86_64-linux-gnu but /usr/lib/gcc/i686-linux-gnu /usr/lib/gcc/x86_64-linux-gnu clang++ -m32 test.cc fails to find bits/c++config.h
Try to solve this bug as a fresh man to LLVM/Clang.
change the status to assigned.
(In reply to comment #0) > Again, C++ system header path has changed. > Ubuntu 13.10 x86_64 has: > > /usr/include/i386-linux-gnu > /usr/include/x86_64-linux-gnu > /usr/lib/i386-linux-gnu > /usr/lib/x86_64-linux-gnu > > but > > /usr/lib/gcc/i686-linux-gnu > /usr/lib/gcc/x86_64-linux-gnu > > clang++ -m32 test.cc fails to find bits/c++config.h Can not reproduce your problem. $ uname -a Linux lingkun-ThinkPad-X200 3.11.0-19-generic #33-Ubuntu SMP Tue Mar 11 18:48:34 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux $ llvm-config --version 3.5.0svn $ llvm-config --build-mode Debug+Asserts $ llvm-config --cxxflags -I/home/lingkun/local_install/include -D_DEBUG -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -g -std=c++11 -fvisibility-inlines-hidden -fno-exceptions -fno-rtti -fPIC -Woverloaded-virtual -ffunction-sections -fdata-sections -Wcast-qual $ llvm-config --targets-built X86 Sparc PowerPC AArch64 ARM ARM64 Mips XCore MSP430 CppBackend NVPTX Hexagon SystemZ R600 Did your Ubuntu have multilib installed?
I think I might have installed some :i386 packages which brought /usr/include/i386-linux-gnu headers with them, and that confused the clang driver. I can't reproduce it on another 13.10 machine. I'll get access to the first machine later today and update the bug.
So, I do have multilib installed, but I also have an :i386 gcc toolchain. I think what happened is clang picked gcc installation in /usr/lib/gcc/i686-linux-gnu/4.8 from libgcc-4.8-dev:i386 package. $ cat /etc/issue Ubuntu 13.10 \n \l $ dpkg -l | grep -E "(stdc\+\+|gcc|g\+\+|multilib)" ii g++ 4:4.8.1-2ubuntu3 amd64 GNU C++ compiler ii g++-4.7 4.7.3-7ubuntu3 amd64 GNU C++ compiler ii g++-4.7-multilib 4.7.3-7ubuntu3 amd64 GNU C++ compiler (multilib files) ii g++-4.8 4.8.1-10ubuntu9 amd64 GNU C++ compiler ii g++-4.8-multilib 4.8.1-10ubuntu9 amd64 GNU C++ compiler (multilib files) ii g++-multilib 4:4.8.1-2ubuntu3 amd64 GNU C++ compiler (multilib files) ii gcc 4:4.8.1-2ubuntu3 amd64 GNU C compiler ii gcc-4.7 4.7.3-7ubuntu3 amd64 GNU C compiler ii gcc-4.7-base:amd64 4.7.3-7ubuntu3 amd64 GCC, the GNU Compiler Collection (base package) ii gcc-4.7-multilib 4.7.3-7ubuntu3 amd64 GNU C compiler (multilib files) ii gcc-4.8 4.8.1-10ubuntu9 amd64 GNU C compiler ii gcc-4.8-base:amd64 4.8.1-10ubuntu9 amd64 GCC, the GNU Compiler Collection (base package) ii gcc-4.8-base:i386 4.8.1-10ubuntu9 i386 GCC, the GNU Compiler Collection (base package) ii gcc-4.8-multilib 4.8.1-10ubuntu9 amd64 GNU C compiler (multilib files) ii gcc-multilib 4:4.8.1-2ubuntu3 amd64 GNU C compiler (multilib files) ii lib32gcc-4.7-dev 4.7.3-7ubuntu3 amd64 GCC support library (32 bit development files) ii lib32gcc-4.8-dev 4.8.1-10ubuntu9 amd64 GCC support library (32 bit development files) ii lib32gcc1 1:4.8.1-10ubuntu9 amd64 GCC support library (32 bit Version) ii lib32stdc++-4.8-dev 4.8.1-10ubuntu9 amd64 GNU Standard C++ Library v3 (development files) ii lib32stdc++6 4.8.1-10ubuntu9 amd64 GNU Standard C++ Library v3 (32 bit Version) ii lib32stdc++6-4.7-dev 4.7.3-7ubuntu3 amd64 GNU Standard C++ Library v3 (development files) ii libgcc-4.7-dev:amd64 4.7.3-7ubuntu3 amd64 GCC support library (development files) ii libgcc-4.8-dev:amd64 4.8.1-10ubuntu9 amd64 GCC support library (development files) ii libgcc-4.8-dev:i386 4.8.1-10ubuntu9 i386 GCC support library (development files) ii libgcc1:amd64 1:4.8.1-10ubuntu9 amd64 GCC support library ii libgcc1:i386 1:4.8.1-10ubuntu9 i386 GCC support library ii libstdc++-4.8-dev:amd64 4.8.1-10ubuntu9 amd64 GNU Standard C++ Library v3 (development files) ii libstdc++-4.8-dev:i386 4.8.1-10ubuntu9 i386 GNU Standard C++ Library v3 (development files) ii libstdc++6:amd64 4.8.1-10ubuntu9 amd64 GNU Standard C++ Library v3 ii libstdc++6:i386 4.8.1-10ubuntu9 i386 GNU Standard C++ Library v3 ii libstdc++6-4.7-dev:amd64 4.7.3-7ubuntu3 amd64 GNU Standard C++ Library v3 (development files) ii libx32gcc-4.7-dev 4.7.3-7ubuntu3 amd64 GCC support library (x32 development files) ii libx32gcc-4.8-dev 4.8.1-10ubuntu9 amd64 GCC support library (x32 development files) ii libx32gcc1 1:4.8.1-10ubuntu9 amd64 GCC support library (x32) ii libx32stdc++-4.8-dev 4.8.1-10ubuntu9 amd64 GNU Standard C++ Library v3 (development files) ii libx32stdc++6 4.8.1-10ubuntu9 amd64 GNU Standard C++ Library v3 (x32) ii libx32stdc++6-4.7-dev 4.7.3-7ubuntu3 amd64 GNU Standard C++ Library v3 (development files) $ ./bin/clang++ -c ../1.cc -m32 -v clang version 3.5.0 (205056) Target: i386-unknown-linux-gnu Thread model: posix Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/4.8 Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/4.8.1 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.7 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.7.3 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.8 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.8.1 Selected GCC installation: /usr/lib/gcc/i686-linux-gnu/4.8 Candidate multilib: .;@m32 Selected multilib: .;@m32 "/build/llvm/build0/bin/clang-3.5" -cc1 -triple i386-unknown-linux-gnu -emit-obj -mrelax-all -disable-free -main-file-name 1.cc -mrelocation-model static -mdisable-fp-elim -fmath-errno -masm-verbose -mconstructor-aliases -fuse-init-array -target-cpu pentium4 -v -coverage-file /build/llvm/build0/1.o -resource-dir /build/llvm/build0/bin/../lib/clang/3.5.0 -internal-isystem /usr/lib/gcc/i686-linux-gnu/4.8/../../../../include/c++/4.8 -internal-isystem /usr/lib/gcc/i686-linux-gnu/4.8/../../../../include/c++/4.8/i686-linux-gnu -internal-isystem /usr/lib/gcc/i686-linux-gnu/4.8/../../../../include/c++/4.8/backward -internal-isystem /usr/lib/gcc/i686-linux-gnu/4.8/../../../../include/i686-linux-gnu/c++/4.8 -internal-isystem /usr/local/include -internal-isystem /build/llvm/build0/bin/../lib/clang/3.5.0/include -internal-externc-isystem /usr/include/i386-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -fdeprecated-macro -fdebug-compilation-dir /build/llvm/build0 -ferror-limit 19 -fmessage-length 173 -mstackrealign -fobjc-runtime=gcc -fcxx-exceptions -fexceptions -fdiagnostics-show-option -vectorize-slp -o 1.o -x c++ ../1.cc clang -cc1 version 3.5.0 based upon LLVM 3.5.0svn default target x86_64-unknown-linux-gnu ignoring nonexistent directory "/usr/lib/gcc/i686-linux-gnu/4.8/../../../../include/c++/4.8/i686-linux-gnu" ignoring nonexistent directory "/usr/lib/gcc/i686-linux-gnu/4.8/../../../../include/i686-linux-gnu/c++/4.8" ignoring nonexistent directory "/include" #include "..." search starts here: #include <...> search starts here: /usr/lib/gcc/i686-linux-gnu/4.8/../../../../include/c++/4.8 /usr/lib/gcc/i686-linux-gnu/4.8/../../../../include/c++/4.8/backward /usr/local/include /build/llvm/build0/bin/../lib/clang/3.5.0/include /usr/include/i386-linux-gnu /usr/include End of search list. In file included from ../1.cc:1: /usr/lib/gcc/i686-linux-gnu/4.8/../../../../include/c++/4.8/limits:42:10: fatal error: 'bits/c++config.h' file not found #include <bits/c++config.h> ^ 1 error generated. $ find /usr/include/ /usr/lib -name c++config.h /usr/include/x86_64-linux-gnu/c++/4.8/bits/c++config.h /usr/include/x86_64-linux-gnu/c++/4.8/32/bits/c++config.h /usr/include/x86_64-linux-gnu/c++/4.8/x32/bits/c++config.h /usr/include/x86_64-linux-gnu/c++/4.7/bits/c++config.h /usr/include/x86_64-linux-gnu/c++/4.7/32/bits/c++config.h /usr/include/x86_64-linux-gnu/c++/4.7/x32/bits/c++config.h /usr/include/i386-linux-gnu/c++/4.8/bits/c++config.h
This was pretty terrible. The code trying to support the multiarch setup was... very strange. I may have written or reviewed it, but it was quite wrong. I've fixed this (and possibly other issues) in r216528. Sorry for the trouble. Re-open if it still is busted.
That should have been r216531. Sorry.