Closed Bug 871251 Opened 13 years ago Closed 12 years ago

fatal error: 'bits/c++config.h' file not found

Categories

(Core :: MFBT, defect)

x86_64
Linux
defect
Not set
normal

Tracking

()

RESOLVED INVALID

People

(Reporter: MatsPalmgren_bugz, Assigned: Six)

Details

I get a build failure after upgrading to Ubuntu 13.04: clang++ -o Decimal.o -c -I../dist/system_wrappers -include /home/mats/moz/mc/config/gcc_hidden.h -DIMPL_MFBT -DMOZ_GLUE_IN_PROGRAM -DNO_NSPR_10_SUPPORT -I/home/mats/moz/mc/mfbt -I. -I../dist/include -I/OBJDIR/home/mats/moz/mc/dist/include/nspr -I/OBJDIR/home/mats/moz/mc/dist/include/nss -fPIC -Qunused-arguments -Qunused-arguments -Wall -Wpointer-arith -Woverloaded-virtual -Werror=return-type -Wtype-limits -Wempty-body -Wsign-compare -Wno-invalid-offsetof -Wno-c++0x-extensions -Wno-extended-offsetof -Wno-unknown-warning-option -Wno-return-type-c-linkage -Wno-mismatched-tags -fno-exceptions -fno-strict-aliasing -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -std=gnu++0x -I/home/mats/moz/mc/build/unix/headers -pthread -pipe -DDEBUG -D_DEBUG -DTRACING -g -fno-omit-frame-pointer -Qunused-arguments -DMOZILLA_CLIENT -include ../mozilla-config.h -MD -MP -MF .deps/Decimal.o.pp /home/mats/moz/mc/mfbt/decimal/Decimal.cpp In file included from /home/mats/moz/mc/mfbt/decimal/Decimal.cpp:31: In file included from /home/mats/moz/mc/mfbt/decimal/Decimal.h:44: In file included from ../dist/system_wrappers/string:2: In file included from /usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../include/c++/4.7/string:39: /home/mats/moz/mc/build/unix/headers/bits/c++config.h:1:15: fatal error: 'bits/c++config.h' file not found #include_next <bits/c++config.h> ^ 1 error generated. make[5]: *** [Decimal.o] Error 1 ========================== Up-to-date mozilla-central tree (rev. d68224f5325b) # clang++ --version clang version 3.2 (tags/RELEASE_32/final) Target: x86_64-unknown-linux-gnu Thread model: posix # g++ --version g++ (Ubuntu/Linaro 4.7.3-1ubuntu1) 4.7.3 Copyright (C) 2012 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
When you do an upgrade like this you should do a fresh compilation: Have you removed your OBJDIR before? Have you done a make -f client.mk clean (not sur it helps) Have you done a new ./configure in moz-central after your upgrade? I guess it comes from configure, there is no problem on my laptop (not exactly the same config as yours) Because your error message is saying that it can't find the bits/c++config.h in your system include folders
Assignee: nobody → six.dsn
QA Contact: six.dsn
The first thing I did was "rm -rf OBJDIR", which didn't help.
Did you try to launch "./configure"? it will reconfigure your build settings, maybe some headers location changed. can you try a "sudo updatedb" and then "locate bits/c++config.h" to see if it finds this file in /usr/include, give me your output. Give also your output of "clang++ -v -xc++ -" my laptop in on ubuntu 13.04 and the file is in "/usr/include/x86_64-linux-gnu/c++/4.7/bits/c++config.h", the clang++ search path is including "/usr/include/x86_64-linux-gnu/c++/4.7/" so it should work properly
(In reply to Arnaud Sourioux [:Six] from comment #3) > Did you try to launch "./configure"? The output of ./configure is stored in OBJDIR, so ./configure will run automatically in the next build. > Give also your output of "clang++ -v -xc++ -" shell# clang++ -v -xc++ - clang version 3.2 (tags/RELEASE_32/final) Target: x86_64-unknown-linux-gnu Thread model: posix "/usr/local/bin/clang" -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -main-file-name - -mrelocation-model static -mdisable-fp-elim -fmath-errno -masm-verbose -mconstructor-aliases -munwind-tables -fuse-init-array -target-cpu x86-64 -target-linker-version 2.22 -momit-leaf-frame-pointer -v -resource-dir /usr/local/bin/../lib/clang/3.2 -fmodule-cache-path /var/tmp/clang-module-cache -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../include/c++/4.7 -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../include/c++/4.7/x86_64-linux-gnu -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../include/c++/4.7/backward -internal-isystem /usr/local/include -internal-isystem /usr/local/bin/../lib/clang/3.2/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -fdeprecated-macro -fdebug-compilation-dir /home/mats/moz/mc -ferror-limit 19 -fmessage-length 280 -mstackrealign -fobjc-runtime=gcc -fcxx-exceptions -fexceptions -fdiagnostics-show-option -fcolor-diagnostics -o /tmp/--d6c4iG.o -x c++ - clang -cc1 version 3.2 based upon LLVM 3.2svn default target x86_64-unknown-linux-gnu ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../include/c++/4.7/x86_64-linux-gnu" ignoring nonexistent directory "/include" #include "..." search starts here: #include <...> search starts here: /usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../include/c++/4.7 /usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../include/c++/4.7/backward /usr/local/include /usr/local/bin/../lib/clang/3.2/include /usr/include/x86_64-linux-gnu /usr/include End of search list. Note that the above is when run from the shell, which is not necessarily the same environment that our build tools / Makefiles setup. > my laptop in on ubuntu 13.04 and the file is in > "/usr/include/x86_64-linux-gnu/c++/4.7/bits/c++config.h", the clang++ search > path is including "/usr/include/x86_64-linux-gnu/c++/4.7/" so it should work > properly OK, that's not what I see on my system -- the first search path above evaluates to /usr/include/c++/4.7 Since I work full time for Mozilla I've had to work around the problem by creating symlinks from /usr/include/c++/4.7/bits/ into /usr/include/x86_64-linux-gnu/c++/4.7/bits/ where the files do exist. I just thought I should report it in case it was something wrong in our Makefiles or something, but I'm inclined to blame the Ubuntu upgrade process instead. It might have something to do with the fact that I have "multilib" packages installed for making 32-bit builds. If you install gcc-4.7-multilib and g++-4.7-multilib on your system does that alter the search paths in any way?
Ok i guess it comes from ubuntu. I installed thoses two multilibs, but my clang++ include search path isn't modified. I have the same as you plus "/usr/bin/../lib/gcc/x86_64-linux-gnu/4.7/../../../../include/x86_64-linux-gnu/c++/4.7" wich avoids your bug. the only difference i have with you is my clang++ version wich is just newer: $ clang++ -v Ubuntu clang version 3.2-1~exp9ubuntu1 (tags/RELEASE_32/final) (based on LLVM 3.2) my system ins't an upgrade but a fresh install directly in 13.04 so maybe i could come from this operation.
OK, thanks for checking. I'll try re-installing all the g++/clang++ packages to see if that solves it when I get some time. Either way, it seems like a local problem on my system...
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → INVALID
You need to log in before you can comment on or make changes to this bug.