# distcc will kein c++

## musv

Ich hab auf meinen beiden Rechnern distcc installiert. Bei C-Dateien klappt das wunderbar. Sobald eine C++-Datei compiliert werden soll, spinnt das Teil. Das sieht dann so aus (Texmaker):

```
i686-pc-linux-gnu-g++ -c -pipe -march=prescott -O2 -fomit-frame-pointer -pipe -I/usr/include/hunspell -w -D_REENTRANT -DTEXMAKERVERSION=\"2.1\" -DPREFIX=\"/usr\" -DQT_NO_DEBUG -DQT_WEBKIT_LIB -DQT_XML_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtXml -I/usr/include/qt4/QtWebKit -I/usr/include/qt4 -I/usr/include/poppler/qt4 -I.moc -I.ui -o .obj/latexhighlighter.o latexhighlighter.cpp

distcc[3085] ERROR: compile symbollistwidget.cpp on faultier/3 failed with exit code 110

distcc[3085] (dcc_build_somewhere) Warning: remote compilation of 'symbollistwidget.cpp' failed, retrying locally

distcc[3085] Warning: failed to distribute symbollistwidget.cpp to faultier/3, running locally instead

distcc[3088] ERROR: compile icondelegate.cpp on faultier/3 failed with exit code 110

distcc[3088] (dcc_build_somewhere) Warning: remote compilation of 'icondelegate.cpp' failed, retrying locally

distcc[3088] Warning: failed to distribute icondelegate.cpp to faultier/3, running locally instead

distcc[3083] ERROR: compile texmakerapp.cpp on faultier/3 failed with exit code 110

distcc[3083] (dcc_build_somewhere) Warning: remote compilation of 'texmakerapp.cpp' failed, retrying locally

distcc[3083] Warning: failed to distribute texmakerapp.cpp to faultier/3, running locally instead

distcc[3094] ERROR: compile latexhighlighter.cpp on faultier/3 failed with exit code 110

distcc[3094] (dcc_build_somewhere) Warning: remote compilation of 'latexhighlighter.cpp' failed, retrying locally

distcc[3094] Warning: failed to distribute latexhighlighter.cpp to faultier/3, running locally instead
```

Im distccmon seh ich da ein schönes "Block".

Die Client-Installation:

```

insgesamt 2

drwxr-xr-x 2 root root 10 14. Nov 11:28 .

drwxr-xr-x 3 root root  3 27. Okt 05:32 ..

lrwxrwxrwx 1 root root 25 14. Nov 11:27 c++ -> i686-pc-linux-gnu-wrapper

lrwxrwxrwx 1 root root 25 14. Nov 11:28 cc -> i686-pc-linux-gnu-wrapper

lrwxrwxrwx 1 root root 25 14. Nov 11:28 g++ -> i686-pc-linux-gnu-wrapper

lrwxrwxrwx 1 root root 25 14. Nov 11:28 gcc -> i686-pc-linux-gnu-wrapper

lrwxrwxrwx 1 root root 15 27. Okt 19:33 i686-pc-linux-gnu-c++ -> /usr/bin/distcc

lrwxrwxrwx 1 root root 15 27. Okt 19:33 i686-pc-linux-gnu-g++ -> /usr/bin/distcc

lrwxrwxrwx 1 root root 15 27. Okt 19:33 i686-pc-linux-gnu-gcc -> /usr/bin/distcc

-rwxr-xr-x 1 root root 72 27. Okt 05:36 i686-pc-linux-gnu-wrapper
```

```

#!/bin/bash

exec /usr/lib/distcc/bin/i686-pc-linux-gnu-g${0:$[-2]} "$@"
```

Bei der Installation von distcc hab ich mich nach der offiziellen Anleitung gerichtet.

http://www.gentoo.org/doc/de/cross-compiling-distcc.xml

Der große Rechner ist ein amd64. Crossdev für i686 ist da selbstverständlich installiert.

Irgendwelche Ideen, warum c++-Dateien mein distcc nicht mögen?

----------

## franzf

Hast du die Qt-Module mit USE="-pch" installiert? Ich hatte das Selbe Problem - distcc hat sich geweigert, mit qt+pch zusammenzuarbeiten.

Oder hast du ein non-qt-c++-Projekt (z.B. fluxbox) ebenso erfolglos versucht?

----------

## musv

 *franzf wrote:*   

> Hast du die Qt-Module mit USE="-pch" installiert? Ich hatte das Selbe Problem - distcc hat sich geweigert, mit qt+pch zusammenzuarbeiten.

 

pch hab ich nicht gesetzt. Allerdings weigert sich p7zip auch ganz beharrlich distcc zu nutzen. Scheint also kein qt-only-Problem zu sein.

----------

## Randy Andy

Hi musv,

obige Fehlermeldungen sehe ich allerdings regelmäßig beim Crosscompiling mit distcc hier.

Störte mich bisher nicht weiter, solange die Pakete erfolgreich gebaut werden, vom Geschwindigkeitsverlust mal abgesehen.

Schlimmer sind halt die Pakete die sich mit distcc nicht bauen lassen, und man es dann tatsächlich abschalten muss, für ein paar Pakete, um letztlich durchkompilieren zu können.

Aber frag mich jetzt bitte nicht welche das sind, obwohl man sie ja eigentlich melden sollte um etwas zu verbessern   :Embarassed: 

Gruß, Andy.

----------

## Max Steel

Wenn diese Pakete bekannt sind kann man per /etc/portage/env/<cat>/<pak> die Variablen, die global per make.conf kommen, einzeln bearbeiten. Also auch FEATURES.

So müsste ein:

```
FEATURES="${FEATURES/distcc/-distcc}"
```

den gewünschten Erfolg bringen.

Zumindest mal diejenigen PAkete welche durch distcc sogar langsamer bauen als ohne, oder diejenigen die konsequent fehlerhaft gebaut werden.

(für USE wäre zwar /etc/portage/package.use vorgesehen, es klappt aber trotzdem)

----------

## musv

So richtig sinnvoll find ich das nicht, denn ich kann und will nicht die gesamten Pakete herausfiltern, die in C++ implementiert wurden. 

Außerdem glaub ich nicht, dass distcc nur für C-Quellcodes geeignet sein kann. Ich geh von daher noch von einem Konfigurationsfehler bei mir aus.

----------

## Max Steel

Ja klar, eigentlich müsste distcc auch mit c++ Zurande kommen. Von daher versteh ichs auch nich.

----------

## Randy Andy

Danke Max,

werd's ausprobieren, wenn ich das nächste mal auf das Paket stoße.

Andy.

----------

## Randy Andy

Hi Leute,

Gestern war's mal wieder soweit, da wollte das Paket - net-libs/webkit-gtk-1.2.5 nicht bauen per distcc.

Also mal eben distcc deaktiviert und nochmal das ganze, und ich sach euch, das dauert auf nem Atom N270 schon ein paar Stündchen...

Doch leider, wieder nix -verdammt.

Glücklicher Weise gab's dann schon einen Bugreport:

https://bugs.gentoo.org/show_bug.cgi?id=343249

Also das janze nochmal mit -j1 compiliert, und siehe da, es ging.

Aber das ist halt typisch, nun hab ich das Problem gefixed, Max's Tipp wieder nicht umgesetzt, beim nächsten mal hat es sich vermutlich wieder von selbst erledigt da es dann hoffentlich wieder eine höherwertige oder fehlerbereinigte Version geben wird.

Naja, shit happens.

Bis dann, Andy.

----------

