Mehrere make-threads

töfte

Member
Ich muß diese dumme Frage einfach mal stellen:

Wie kommt es, daß ich die allermeisten Anwendungen nicht mehr durchkompilieren kann, wenn ich in der Umgebung bspw. -j3 setze ?
Ich hatte den Sinn dieses Flags gerade so verstanden, daß das Kompilieren auf Multiprozessormaschinen mit mehreren make-Threads ausgeführt und somit schneller (fertig) ist.
Scheint aber irgendwie bei mir nicht zu klappen; diverse Ports und auch gcc selbst lassen sich damit nicht 'fertigmachen'.
Kann mich jemand erleuchten ?

Gruß, töfte
 
Weil das Zeug in bsd.port.mk nicht dafür gedacht ist. Bei vielen ports funktioniert es aber MAGE_ARGS=-j3 setzt.
 
Man muss da Untescheiden zwischen

Parallelen Port Builds (mehrere Ports bauen parallel -> bsd.port.mk)
und
Ports die parallel bauen (mehrere CC Prozesse beim 'make build' -> port)
 
Man muss da Untescheiden zwischen

Parallelen Port Builds (mehrere Ports bauen parallel -> bsd.port.mk)
und
Ports die parallel bauen (mehrere CC Prozesse beim 'make build' -> port)

Mehrere Ports kann man ja seit jeher "parallel" bauen.
Einmal top angeschmissen sagt mir definitv daß parallel kompiliert wird.
 
Dafuer ist bsd.port.mk aber nicht ausgelegt, das kann ganz schnell knallen, da beim Port bauen keine Locks gesetzt werden. Ich hatte da mal eine Script/Makefile geschrieben, welches das fuer den komplette Ports-Tree korrekt macht, war aber uebelst hackish. Das werde ich irgendwann man polieren und clusterfaehig machen.
 
Jaaa :), es knallt auch des öfteren, dann muß ich auch jedes Mal die Umgebungsvariablen wieder rauscshmeißen und neu starten.
In der Tat sollte man bsd.port.mk einmal auf Parallelität hin tunen. Anderer Leute Makefiles anzupassen ist zwar nicht unbedingt mein liebstes Kind, aber immerhin ein konkreter Lösungsansatz.
 
Zurück
Oben