Closed
Bug 871251
Opened 13 years ago
Closed 12 years ago
fatal error: 'bits/c++config.h' file not found
Categories
(Core :: MFBT, defect)
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.
| Assignee | ||
Comment 1•12 years ago
|
||
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 | ||
Updated•12 years ago
|
Assignee: nobody → six.dsn
QA Contact: six.dsn
| Reporter | ||
Comment 2•12 years ago
|
||
The first thing I did was "rm -rf OBJDIR", which didn't help.
| Assignee | ||
Comment 3•12 years ago
|
||
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
| Reporter | ||
Comment 4•12 years ago
|
||
(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?
| Assignee | ||
Comment 5•12 years ago
|
||
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.
| Reporter | ||
Comment 6•12 years ago
|
||
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.
Description
•