Recently I've done emerege -e world and then found that gcc was compiled without cxx flag. Now I can't compile any C++ package due to
configure: error: C++ preprocessor "/lib/cpp" fails sanity check
I'm thinking on copying files returned by equery f gcc|grep -v share
from stage3. Will it help? Is there any simpler way?
UPDATE 1 Here's my config.log
UPDATE 2
Here's my make.conf
Please, note there's cxx flag in USE. I've added it recently, but it does not help as I can't rebuild packages.
UPDATE 3 I have tried to reinstall gcc-4.6.3 from binary package via
emerge -avK gcc:4.6
It completed succesfully but error didn't gone.
Also, I've noticed that:
configure:11955: /lib/cpp conftest.cpp
cpp: error: conftest.cpp: C++ compiler not installed on this system
configure:11955: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "expat"
| #define PACKAGE_TARNAME "expat"
| #define PACKAGE_VERSION "2.1.0"
| #define PACKAGE_STRING "expat 2.1.0"
| #define PACKAGE_BUGREPORT "expat-bugs@libexpat.org"
| #define PACKAGE_URL ""
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| /* end confdefs.h. */
| #ifdef __STDC__
| # include <limits.h>
| #else
| # include <assert.h>
| #endif
| Syntax error
Looks like it claims that C++ compiler is not installed on my system. But this sounds like a bullshit, since gcc:4.6 was installed from bin-package and I assume it's compiled with C++ support.
UPDATE 4 Indeed there's a problem with g++
uhradio ~ # g++ queue.cpp
gcc-config: error: could not run/locate 'g++'
uhradio ~ # cpp queue.cpp
cpp: error: queue.cpp: C++ compiler not installed on this system
The output from gcc-config -l is:
[1] x86_64-pc-linux-gnu-4.6.3 *

which g++say? Run the command from update 4 with-v, so it tells you exactly what it is trying to do, and hunt down the programs it is trying to run. I believe your diagnosis is correct, you didn't build GCC with C++ support, that's all. – vonbrand Jan 25 at 12:12