gcc без поддержки C++

Случайно пересобрал gcc без флага cxx:

sys-devel/gcc-4.6.3 was built with the following:
USE="(multilib) nls nptl openmp (-altivec) -cxx -doc (-fixed-point) -fortran -gcj -graphite -gtk (-hardened) (-libssp) -mudflap -multislot -nopie -nossp -objc -objc++ -objc-gc -test -vanilla" ABI_X86="64"

Теперь ничего не могу с ним сделать - ему нужен c++ compiler для того, чтобы обновиться:

configure: error: C++ preprocessor "/lib/cpp" fails sanity check

# gcc 11.cpp
gcc: error: 11.cpp: C++ compiler not installed on this system

Как бы мне разрешить эту неприятную ситуацию? FAQ читал, но ссылка в статье про восстановление из бинариков - нерабочая.

Update: Попробовал поставить

Update:

Попробовал поставить gcc из бинарника, взяв его тут: http://tinderbox.dev.gentoo.org/default-linux/amd64/sys-devel/
После этого перестал работать и сам gcc:

checking for C compiler default output file name... 
configure: error: in `/var/tmp/portage/sys-devel/gcc-4.6.3/work/build':
configure: error: C compiler cannot create executables
...

# gcc-config -l
 * gcc-config: Could not get portage CHOST!
 * gcc-config: You should verify that CHOST is set in one of these places:
 * gcc-config:  - //etc/portage/make.conf
 * gcc-config:  - active environment

Кроме того куда-то мистически пропал env-update

А компиляция cpp так и не заработала:
/usr/libexec/gcc/x86_64-pc-linux-gnu/4.6.3/cc1plus: error while loading shared libraries: libmpc.so.2: cannot open shared object file: No such file or directory

Разворачиваете рядом stage3,

Разворачиваете рядом stage3, делаете в него chroot в chroot окружении монтируете корневую и прочие файловые системы, запускаете в chroot окружении установку gcc с нужными флагами, но указав параметр '--root=<куда вы в chroot окружении смонтировали корень.>'

mkdir stage3
tar -xvpf stage3-*.tar.bz2 -C stage3
mkdir stage3/mnt/gentoo
mount -o bind / stage3/mnt/gentoo
mount -o bind /usr stage3/mnt/gentoo/usr
mount -o bind /usr/portage stage3/mnt/gentoo/usr/portage
mount -o bind /var stage3/mnt/gentoo/var
mount -o bind /opt stage3/mnt/gentoo/opt
mount -o bind /dev stage3/dev
mount -t proc none stage3/proc
chroot stage3
USE="cxx" emerge --root=/mnt/gentoo gcc

Естественно делаете bind этих разделов корня проблемной системы, если они находятся на отдельных файловых системах.

mount -o bind /usr stage3/mnt/gentoo/usr
mount -o bind /usr/portage stage3/mnt/gentoo/usr/portage
mount -o bind /var stage3/mnt/gentoo/var
mount -o bind /opt stage3/mnt/gentoo/opt

О, это надо запомнить.

О, это надо запомнить как универсальный рецепт. Спасибо.

Update2: Запобеждал

В общем, взял из скачанного пакета список файлов, а сами файлы взял из stage3-tarball.
Поправил косяк с lib - у меня был симлинк, а tar почему-то жестоко превратил ее в директорию (потому и пропал env-update и все остальное).

После чего прогнал revdep-rebuild и sys-apps/groff-1.21 нормально поставился.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".