Möglicherweise gibt es einige Kompatibilitätsprobleme?
Ich habe den Eindruck, dass der Intel-Compiler bei Intel-basierten Systemen möglicherweise eine bessere Leistung erbringen würde als GCC. Vielleicht gibt es schon eine Distribution, die das versucht hat?
Ich würde denken, dass dies mit Gentoo ziemlich einfach sein könnte.
Antworten:
Mit icc können Sie nicht alles kompilieren. Viele Programme verwenden GCC-Erweiterungen für die C-Sprache. Intel hat jedoch große Anstrengungen unternommen, um die meisten dieser Erweiterungen zu unterstützen. Beispielsweise können neuere Versionen von icc den Linux-Kernel kompilieren.
Gentoo ist in der Tat die beste Wahl, wenn Sie Ihre Software auf ungewöhnliche Weise neu kompilieren möchten. Die icc Seite im Gentoo Wiki beschreibt die wichtigsten Hürden.
Führen Sie zuerst eine grundlegende Gentoo-Installation durch, und
emerge icc
. Entfernen Sie icc nicht später, solange Sie eine mit icc kompilierte Binärdatei auf Ihrem System haben. Beachten Sie, dass icc in installiert ist/opt
. Befindet sich das nicht auf Ihrer Root-Partition, müssen Sie die icc-Bibliotheken auf Ihre Root-Partition kopieren, wenn eines der beim Booten verwendeten Programme mit icc kompiliert wird.Richten Sie
/etc/portage/bashrc
und erklären , um Ihre Lieblings - Kompilierungsoptionen; Im Gentoo-Wiki finden Sie ein ausführlicheres Skript, das das Erstellen verschiedener Pakete mit verschiedenen Compilern unterstützt (dies ist erforderlich, da icc einige Pakete beschädigt).quelle
Es wäre sicherlich eine interessante Erfahrung. Das erneute Kompilieren einer gesamten Linux-Distribution mit einem alternativen Compiler wäre jedoch nicht ganz einfach. Viele wichtige Pakete hängen von GCC und anderen GNU-Toolchain-Dienstprogrammen ab.
Es wäre möglich, einen alternativen Compiler für Pakete zu verwenden, für die kein GCC zum Erstellen eines Hybrids erforderlich ist. Es ist möglicherweise möglich, GCC-abhängige Pakete durch andere zu ersetzen, die mit Ihrem Compiler erstellt wurden. In den meisten Fällen gibt es jedoch nicht zu viele Alternativen. Wo es solche gibt, müssen Sie feststellen, ob diese Alternativen für Ihre beabsichtigte Verwendung geeignet sind.
Die eigentliche Frage ist jedoch: Wäre es das wert? Wenn Sie versuchen, ein eingebettetes System zu erstellen, kann ein alternativer Compiler kleinere Binärdateien erzeugen. Wenn Sie einen Compute-Cluster erstellen, erhalten Sie möglicherweise eine schnellere Codeausführung. Wenn Sie einen Desktop erstellen, erhalten Sie eine großartige Lernerfahrung.
Ich denke, am Ende (vorausgesetzt, Sie erstellen einen Desktop) werden Sie feststellen, wie viele Benutzer von Quelldistributionen letztendlich entscheiden: Die Zeit, die für die Optimierung und das Erstellen und Neuerstellen aufgewendet wird, überwiegt bei weitem die Zeit, die durch eine schnellere Codeausführung eingespart wird. Das soll nicht heißen, dass es nicht gemacht werden sollte - es könnte ziemlich lustig sein. Wenn Sie dies tun, ist diese Site ein großartiger Ort, um Antworten zu finden und Ihre Bemühungen zu dokumentieren.
quelle