[Bug 1244021] [NEW] After upgrading to 13.10, clang and GCC erroneously look for GCC-4.7 headers
Nicholas Nethercote
n.nethercote at gmail.com
Thu Oct 24 02:47:30 UTC 2013
Public bug reported:
I'm a Firefox developer. 13.04 was working fine. I upgraded to 13.10
and now I can't compile Firefox with either clang or GCC.
Here's a reduced test case:
#include <memory>
int main(void) {}
If I compile this with clang I get this:
[fjord:~/moz/mi5] clang++ a.cpp
In file included from a.cpp:1:
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/memory:62:
/usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/bits/allocator.h:92:29: error:
unknown template name '__allocator_base'
class allocator: public __allocator_base<_Tp>
^
/usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/bits/allocator.h:116:25: error:
expected '('
: __allocator_base<_Tp>(__a) { }
^
/usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/bits/allocator.h:116:25: error:
expected '{' or ','
3 errors generated.
The results with GCC are similar.
I found the problem is that both clang and GCC are somehow configured to
look for some GCC 4.7 headers as well as GCC 4.8 headers -- both of them
have |-I/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../include/x86_64
-linux-gnu/c++/4.7| hardwired in the default flags.
As a workaround, I renamed /usr/include/c++/4.7/ and /usr/include/x86_64
-linux-gnu/c++/4.7/ so the compilers could no longer find them, and now
things are working normally. But obviously this should be fixed
properly.
** Affects: gcc-4.8 (Ubuntu)
Importance: Undecided
Status: New
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to gcc-4.8 in Ubuntu.
https://bugs.launchpad.net/bugs/1244021
Title:
After upgrading to 13.10, clang and GCC erroneously look for GCC-4.7
headers
Status in “gcc-4.8” package in Ubuntu:
New
Bug description:
I'm a Firefox developer. 13.04 was working fine. I upgraded to 13.10
and now I can't compile Firefox with either clang or GCC.
Here's a reduced test case:
#include <memory>
int main(void) {}
If I compile this with clang I get this:
[fjord:~/moz/mi5] clang++ a.cpp
In file included from a.cpp:1:
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/memory:62:
/usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/bits/allocator.h:92:29: error:
unknown template name '__allocator_base'
class allocator: public __allocator_base<_Tp>
^
/usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/bits/allocator.h:116:25: error:
expected '('
: __allocator_base<_Tp>(__a) { }
^
/usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/bits/allocator.h:116:25: error:
expected '{' or ','
3 errors generated.
The results with GCC are similar.
I found the problem is that both clang and GCC are somehow configured
to look for some GCC 4.7 headers as well as GCC 4.8 headers -- both of
them have |-I/usr/lib/gcc/x86_64-linux-
gnu/4.7/../../../../include/x86_64-linux-gnu/c++/4.7| hardwired in the
default flags.
As a workaround, I renamed /usr/include/c++/4.7/ and
/usr/include/x86_64-linux-gnu/c++/4.7/ so the compilers could no
longer find them, and now things are working normally. But obviously
this should be fixed properly.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/gcc-4.8/+bug/1244021/+subscriptions
More information about the foundations-bugs
mailing list