Red Hat Bugzilla – Bug 1006053
x86_64-linux-gnu-gcc doesn't support c++
Last modified: 2013-09-24 05:04:15 EDT
Description of problem:
I want to use icecream for distributed compiling, and I want my 32-bit machines to cross compile for the 64-bit machines. Unfortunately, the 64-bit version of gcc doesn't come with c++, and there's no c++ package for it.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. sudo yum install x86_64-linux-gnu-gcc
2. x86_64-linux-gnu-gcc test.cpp
x86_64-linux-gnu-gcc: error: test.cpp: C++ compiler not installed on this system
Should compile the file.
Installing gcc-c++ doesn't help, and there's no x86_64-linux-gnu-g++ or x86_64-linux-gnu-gcc-c++ package.
Interestingly, there's even a binary called `x86_64-linux-gcc-cpp`, but it doesn't work:
> $ x86_64-linux-gnu-gcc test.cpp
> x86_64-linux-gnu-gcc: error: test.cpp: C++ compiler not installed on this system
*-cpp is a preprocessor, not a C++ compiler, that would be *-c++, but I bet cross-gcc is meant to support only C, it is there mainly for kernel people, building usable cross compilers for C++ requires usually more effort, you need target libraries which cross-gcc doesn't bother with.
Jakub is right. We don't support any userspace side at this time because of the massive multiplication factor that it would incur and the messiness it incurs.
The SRPM that builds this also builds 23 other cross-compilers RPMs at the same time in the same build. Multiply those by the different arch variants the kernel supports (MIPS has at least 6 for example) and the different C libraries that may be available (glibc and uClibc) and you start getting huge RPM counts.
Then you need to inflate the SRPM because it needs kernel headers, glibc sources, uClibc sources and libstdc++ library sources in addition to the compiler sources. (Does libstdc++ even build for uClibc?)
Further, there's no guarantee that we can build C++ for every cross-compiler.
If you need C++ cross compiler then fetch source, select only required target architecture and change configure call to enable also c++ language.
I understand why there is no such one enabled.