Da mein Laptop mit gcc-4.8.3 ziemliche Probleme beim Kompilieren bereitet (enormer Verbrauch an Speicher, so dass trotz 4GB RAM, MAKEOPTS=-j4 und kleiner (Paketabhängig), trotzdem häufiges Swappen vor allem in Kombination mit boost) und der gcc-4.9 das fixen soll, habe ich mich ans Update gesetzt. Da ich auf dem Server aber nicht den gcc-4.9 als Systemcompiler verwenden wollte stand ich vor der Frage, wie ich das hinbekomme.
Die Lösung ist eigentlich recht simpel:
Auf dem client Zwei Dateien anlegen:
Code: Select all
# cat /usr/local/bin/distcc-4.9.2
#!/bin/sh
/usr/bin/distcc gcc-4.9.2 "$@"
# cat /usr/local/bin/distcc-4.9.2++
#!/bin/sh
/usr/bin/distcc g++-4.9.2 "$@"Code: Select all
# for comp in /usr/lib64/distcc/bin/*c; do ln -snf /usr/local/bin/distcc-4.9.2 $comp; done
# for comp in /usr/lib64/distcc/bin/*++; do ln -snf /usr/local/bin/distcc-4.9.2++ $comp; done
# ls -l
insgesamt 0
lrwxrwxrwx 1 root root 29 18. Dez 12:02 c++ -> /usr/local/bin/distcc-4.9.2++
lrwxrwxrwx 1 root root 27 18. Dez 12:02 cc -> /usr/local/bin/distcc-4.9.2
lrwxrwxrwx 1 root root 29 18. Dez 12:02 g++ -> /usr/local/bin/distcc-4.9.2++
lrwxrwxrwx 1 root root 27 18. Dez 12:02 gcc -> /usr/local/bin/distcc-4.9.2
lrwxrwxrwx 1 root root 29 18. Dez 12:02 x86_64-pc-linux-gnu-c++ -> /usr/local/bin/distcc-4.9.2++
lrwxrwxrwx 1 root root 29 18. Dez 12:02 x86_64-pc-linux-gnu-g++ -> /usr/local/bin/distcc-4.9.2++
lrwxrwxrwx 1 root root 27 18. Dez 12:02 x86_64-pc-linux-gnu-gcc -> /usr/local/bin/distcc-4.9.2Die beiden distcc-Versionen für gcc ung g++ waren nötig, da scheinbar manche Flags unterschiedlich gesetzt werden. binutils scheiterte z.B. geich beim Linken des gold-linkers (viele undefined references in der STL, z.B. in std::basic_string und dem allocator).
Vielleicht gibt es eine bessere Lösung aber die war am schnellsten umgesetzt, und über Optionen in den config files war es nicht möglich, jedenfalls sah ich nichts
