Może występują problemy ze zgodnością?
Mam wrażenie, że w przypadku systemów opartych na procesorach Intel kompilator Intela mógłby potencjalnie wykonać lepszą robotę niż GCC. Być może istnieje już dystrybucja, która próbowała tego dokonać?
Sądzę, że używanie Gentoo może być całkiem proste.
Odpowiedzi:
Nie będziesz w stanie skompilować wszystkiego za pomocą ICC. Wiele programów używa rozszerzeń GCC do języka C. Jednak Intel dołożył wszelkich starań, aby obsłużyć większość tych rozszerzeń; na przykład najnowsze wersje icc mogą kompilować jądro Linuksa.
Gentoo jest rzeczywiście najlepszym rozwiązaniem, jeśli lubisz przekompilować swoje oprogramowanie w niecodzienny sposób. Strona ICC na wiki Gentoo opisuje główne przeszkody.
Najpierw wykonaj podstawową instalację Gentoo i
emerge icc
. Nie usuwaj icc później, o ile masz skompilowane pliki binarne z icc w twoim systemie. Zauważ, że icc jest zainstalowany w/opt
; jeśli nie ma tego na partycji root, musisz skopiować biblioteki icc na partycję root, jeśli którykolwiek z programów używanych podczas uruchamiania jest skompilowany z icc.Skonfiguruj
/etc/portage/bashrc
i zadeklaruj swoje ulubione opcje kompilacji; zajrzyj na wiki Gentoo, aby uzyskać dokładniejszy skrypt, który obsługuje budowanie różnych pakietów z różnymi kompilatorami (jest to konieczne, ponieważ icc psuje niektóre pakiety).źródło
To byłoby z pewnością interesujące doświadczenie. Ponowna kompilacja całej dystrybucji Linuksa za pomocą alternatywnego kompilatora nie byłaby jednak łatwa. Wiele niezbędnych pakietów zależy od GCC i innych narzędzi GNU toolchain.
Byłoby wykonalne użycie alternatywnego kompilatora dla tych pakietów, które nie wymagają GCC do stworzenia hybrydy. Może być możliwe zastąpienie pakietów zależnych od GCC innymi, które byłyby budowane za pomocą kompilatora, ale w większości przypadków nie ma zbyt wielu alternatyw. Tam, gdzie są, musisz ustalić, czy te alternatywy będą równie funkcjonalne dla zamierzonego zastosowania.
Prawdziwe pytanie brzmi jednak: czy byłoby warto? Jeśli próbujesz zbudować system osadzony, alternatywny kompilator może generować mniejsze pliki binarne. Jeśli budujesz klaster obliczeniowy, możesz uzyskać szybsze wykonanie kodu. Jeśli budujesz pulpit, uzyskasz wspaniałe wrażenia z nauki.
Myślę, że ostatecznie (zakładając, że budujesz pulpit) okaże się prawdą to, co ostatecznie decyduje wielu użytkowników dystrybucji źródłowej: ilość czasu poświęconego na optymalizację, budowę i przebudowę znacznie przewyższa czas zaoszczędzony przez szybsze wykonanie kodu. Nie oznacza to, że nie należy tego robić - może być całkiem fajnie. Jeśli to zrobisz, ta strona będzie doskonałym miejscem do znalezienia odpowiedzi i udokumentowania swoich wysiłków.
źródło