Distcc und Ports funktioniert nicht

kashee Opeiah

FreeBSD rockz
Hallo,
ich habe nach der Anleitung im Wiki mein Distcc konfiguriert. (mit Buildflags)
Jetz habe ich entweder was falsch gemacht oder was übersehen oder es funktioniert anderes als ich es verstanden habe.
Zu meinem Problem: Wenn ich unter /usr/sr/ ein make mache das Verteilt distcc die Arbeit im Netzwerk.
Sieht man auch:
/usr/local/bin/distcc cc -O2 -pipe -msse2 -m32 -march=prescott -I/usr/src/lib/libc/include -I/usr/src/lib/libc/../../include -I/usr/src/lib/libc/i386 -D__DBINTERFACE_PRIVATE -I/usr/src/lib/libc/../../contrib/gdtoa -DINET6 -I/usr/src/lib/libc -I/usr/src/lib/libc/resolv -DPOSIX_MISTAKE -I/usr/src/lib/libc/locale -DBROKEN_DES -DPORTMAP -DDES_BUILTIN -I/usr/src/lib/libc/rpc -DYP -DNS_CACHING -DSYMBOL_VERSIONING -Wsystem-headers -Wall -Wno-format-y2k -Wno-uninitialized -Wno-pointer-sign -c /usr/src/lib/libc/rpc/clnt_bcast.c
aber sobald ich ein Programm aus dem Ports nehme
Check for working C compiler: /usr/local/bin/distcc cc
CMake Error: your C compiler: "/usr/local/bin/distcc cc" was not found. Please set CMAKE_C_COMPILER to a valid compiler path or name.
CMake Error: Internal CMake error, TryCompile configure of cmake failed
-- Check for working C compiler: /usr/local/bin/distcc cc -- broken
CMake Error: The C compiler "/usr/local/bin/distcc cc" is not able to compile a simple test program.
It fails with the following output:


CMake will not be able to correctly generate this project.
CMake Error: your C compiler: "/usr/local/bin/distcc cc" was not found. Please set CMAKE_C_COMPILER to a valid compiler path or name.
CMake Error: your CXX compiler: "/usr/local/bin/distcc c++" was not found. Please set CMAKE_CXX_COMPILER to a valid compiler path or name.
-- Configuring done
*** Error code 255
hat das irgendeinen bestimmten Hintergrund das das make von dem Ports jetzt den Compiler nicht findet?
Meine Configs: make.conf
# added by use.perl 2008-08-27 16:13:06
PERL_VER=5.8.8
PERL_VERSION=5.8.8
.include "/usr/local/etc/ports_sites.conf"
CPUTYPE?=nocona
CFLAGS= -O2 -pipe -msse2
#MAKEOPTS=-j5
WITHOUT_MODULES=wlan wlan_wep wlan_ccmp wlan_tkip wlan_amrr wlan_scan_ap wlan_scan_sta an ath ath_hal ath_rate_sample awi ral wi wl xl wb vr vge tx tl ti stge ste sk sis sf rl re pcn nve nge nfe msk lge dc bge bfe bce vx
KERNCONF=OwnKernel
WITH_KQEMU=yes

CC= /usr/local/bin/distcc cc
CXX= /usr/local/bin/distcc c++


# /usr/local/etc/buildflags.conf

#Distcc Buidflags
BUILDFLAGS= /usr/local/share/bsdadminscripts/buildflags.mk
.if exists(${BUILDFLAGS})
.include "${BUILDFLAGS}"
.endif

Buildflags.conf
/usr/src | /usr/src/*{USE_DISTCC THREADS=8 KERNCONF=OwnKernel}
/usr/ports & !*/work*{
SUBTHREADS=6
USE_DISTCC}

Wo ist der Fehler?



Weiterhin habe ich mal noch eine Frage, auf einem Baugleichen Computer wie meinem hier hat ein Arbeitkollege ein Gentoo x86-64 installiert und ich ja ein FreeBSd 7.0 Release x86. Die Prozessoren sind PentiumD mit 2 Kernen. Wenn ich jetzt was kompaliere liegt meine CPU Auslastung so um die 55 Prozent im Top. Das deutet ja drauf hin das ein Kern voll benutzt wird und der andere mit Normalen Sachen beschäftigt ist. Wenn der Compiler beide Kerne nutzen würde muss die CPU Auslastung ja bei 100% sein. Wenn mein Kollege mit sein Gentoo compaliert sind beide Kerne voll benutzt. Ich bekomme es hin wenn ich mit distcc Compaliere und man merkt einen spübaren Unterschied. Jetzt ist die Frage ob der FreeBSd Compiler keine 2 Kerne nutzten kann (in der Makeconf ist es so eingestellt MAKEOPTS=-j5)
Oder stimmt die Auslastungsanzeige nicht (top, htop und Gnome System Monitor!)


Vielen Dank für eure Hilfe.

Mfg KO
 
Dein erster Fehler ist, dass du in deiner make.conf CC und CXX setzt. Das erledigt USE_DISTCC für dich.

Ansonsten denke ich, dass es sich um ein Problem mit dem Port deiner Wahl handelt. Hast du das mit mehreren Ports ausprobiert?
 
Nein, das ist kein Problem. Du kannst Distcc mit den Ports verwenden. Es gibt nur vereinzelte Ports, die mit Leerzeichen in CC nicht klarkommen. Bei diesen wenigen musst du auf distcc verzichten.

Wie gesagt, von welchem Programm stammt der Output? Ich kann mir nicht vorstellen, dass das die Regel ist.
 
Hi,
das Programm war "x11/kdebase-runtime-4.1.1" Ich werds morgen nochmal mit nen anderen probieren und mich nochmal melden. Gute Nacht.
 
miwi wies mich gerade darauf hin, dass cmake den Distcc nicht offiziell unterstützt und daher alles, was ihr hier macht, auf eigene Gefahr läuft. Also bitte nicht schreien, wenn die ganze Geschichte explodiert :)
 
Ich setze den distcc ja schon seit Jahren ein und über 95% der Pakete lässt sich damit auch problemlos bauen. Man muss halt tendentiell öfter Hand anlegen, spaart in der richtigen Umgebung aber trotzdem Zeit, einfach weil die Sachen schneller kompiliert sind.
 
Ich habe jetzt
CC= /usr/local/bin/distcc cc
CXX= /usr/local/bin/distcc c++
aus der make.conf entfernt. Aber kein einziger Port funktioniert mit Distcc. Es steht auch nicht da das er distcc verwenden will sondern weiterhin den Standartcompliler.
 
Deine komplette make.conf und buildflags.conf wären jetzt nicht schlecht.
Das glaub ich nicht, ich benutz distcc nicht in den Ports *lach* Das hab ich bloss von deinem Screenshot im bsdadminscripts-Wiki abgekuckt. Da steht nämlich "/usr/ports/*" statt "/usr/ports", was auf der eigentlichen Wiki Seite steht. Und wenn ich die Grammatik richtig verstehe, wird der distcc ohne das /* in den Unterverzeichnissen dann nicht benutzt oder?
 
Was soll ich sagen. Es funktioniert nicht, wir wissen nicht warum. Wir bekommen keine Information, wir werden es nie erfahren.
 
Zurück
Oben