Ich glaub kaum, das es viele Compiler/Linker gibt, welche wirklich multithreaded arbeiten.
Die fangen in der Projektdatei an und arbeiten sich dann
nach und nach durch das Projekt durch.
Delphi als Single-Pass Compiler (One-Pass) nur einmal von Vorne bis hinten. (Compiler/Optimierer > Linker)
Und C als Multi-Pass Compiler läuft Mehrmals drüber (1-2 Mal über den Code und dann noch paar Mal über das letzte Ergebnis des Compilers/Optimiers)
Aus jemen Grund kann man in C teilweise schon auf Dinge zugreifen, welche erst später kommen, während man in Delphi nur auf vorherrige Deklarationen Zugriff hat.
Aber letztendlich wird dennoch alles nacheinander gemacht, da jeder Prozess das vorhergehende Ergebnis braucht ....... Allerdings
könnte (vorallem beim Pascal) jeder Schritt schon parallel (leicht versetzt) ablaufen, da die bereits fertig bearbeiteten Teile
meistens nicht nochmal verarbeitet/verändert werden und somit feststehen.
Tipp: Kompiliere eine größeres Projekt und du wirst erkennen, dass praktisch nur ein Kern verwendet wird.
Im FinalBuilder nutzen wir das aus, indem mehrere nicht untereinander abhängige Projekte (EXE/
DLL/
BPL) gleichzeitig kompiliert werden. Passend zur CPU-Größe und bei langsamen HDDs nicht zu viele, da die Festplattenzugriffe sich gegenseitig extrem ausbremsen.