Balíček gcc obsahuje kolekci kompileru GNU(GNU compiler collection),která zahrnuje kompilery C a C++
O tomto balíčku je známo,že má problémy,pokud jsou jeho výchozí optimalizační příznaky(včetně -march a -mcpu voleb)změněné.Pokud nějaké proměnné prostředí přepisují tyto výchozí optimalizace jako CFLAGS a CXXFLAGS,odstraňte je při kompilaci GCC.
Použijte pouze patch No-Fixincludes (nikoli Specs patch) také použitý v minulé kapitole:
patch -Np1 -i ../gcc-3.4.3-no_fixincludes-1.patch
GCC selže při kompilaci některých balíčků mimo záladní instalaci Linux From Scratch (jako Mozilla a kdegraphics),pokud je použita s novou verzí Binutils.Aby jste tento problém odstranili,aplikujte následující patch:
patch -Np1 -i ../gcc-3.4.3-linkonce-1.patch
Použijte substuci sedu,která zabrání instalaci souboru libiberty.a.Místo toho je použita verze souboru libiberty.a z Binutils:
sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in
Dokumentace GCC doporučuje kompilaci GCC mimo složky se zdroji v oddělené kompilační složce:
mkdir ../gcc-build cd ../gcc-build
Připravte GCC ke kompilaci:
../gcc-3.4.3/configure --prefix=/usr \
--libexecdir=/usr/lib --enable-shared \
--enable-threads=posix --enable-__cxa_atexit \
--enable-clocale=gnu --enable-languages=c,c++Zkompilujte balíček:
make
![[Important]](../images/important.png)
V tétoi sekci jsou testy GCC velmi důležité.Za žádných okolností je nevynechávejte.
Otestujte výsledky,ale nezastavujte se na chybách:
make -k check
Některé chyvy jsou známé a byly zmíněné v předchozí kapitole.Poznámky k testů, z Section 5.11, “GCC-3.4.3 - 2. průchod,” jsou zde stále relevantní.Pokud potřebujete,tak se na ně znova podívejte.
Nainstalujte balíček:
make install
Některé balíčky očekávají C preprocesor nainstalovaný v adresáři /lib.Pro tyto balíčky udělejte tento symbolický odkaz:
ln -s ../usr/bin/cpp /lib
Hodně balíčků používá jméno cc k volání kompileru C.Pro tyto balíčky udělejte symbolický odkaz:
ln -s gcc /usr/bin/cc
![[Note]](../images/note.png)
V této chvíli je silně doporučeno zopakovat test,vykonaný dříve v této kapitole.Podívejte se zpět na Section 6.12, “Znovu přízpůsobujeme nástroje,” a zopakujte je.Pokud je chybný,nejčastějším důvodem je,že jste zde špatně aplikovali GCC Specs patch.