Portál AbcLinuxu, 1. května 2025 09:26
Taak a máme tu pátek. Pochopitelně mám hodně času na blbinky, takže proč si netestnout GCC 4?
Jako "vždy" bych měl pár dotazů, abych to neinstaloval zbytečně (přeci jen nemám zájem ztratit zbytečně několik hodin, nebo jak dlouho to trvá (time
nu to ;)).
No, k věci. Když dám vyhledávat gcc4 pomocí locate
, najde spoustu patchů v Portage. Znamená to sice, že už toho dost zprovoznili, ale taky to může znamenat, že toho ještě hafo nejde. No a to mě právě zajímá: Zkompiluju na tom všechno, nebo alespoň většinu? :) Jsou ty aplikace potom rychlejší? Zdá se, že nemá slot, takže to tu starou odinstaluje? Další věc jsou závislosti: glibc (nechci nic slyšet! quickpkgnu to všechno tak jako tak, žádný strach :)), binutils, gmp. Samozřejmě některý z těch věcí už mám, ale chce novější verze a já nevím jak jsou bezpečný. Nemáte tedy někdo už GCC 4? Mám emergnout verzi 4.0.* nebo 4.1.*?
UPDATE: Zjistil jsem, že GCC4 se instaluje do slotu, takže tam bude s GCC3.4. Otázka ohledně "přepínání" mezi nimi tedy platí.
UPDATE2: Gentoo developer mi napsal, že 4.1.x je dost nestabilní a vysvětlil proč glibc-2.3.6, dále mi taky napsal, že 4.0.x should be stable.
UPDATE3: Už mám tu novou glibc, kupodivu jedou všechny hry a jdou kompilovat programy, yahoo! Teď už zbývá jen gcc. Ale to až potom, co si zasmažím. Jo a slíbil jsem, že tu kompilaci time
nu, takže trvalo to 46 minut a 14 minut procesorovýho času (AMD64 Athlon 3000+ na 1899.165 MHz).
UPDATE4: Už mám i GCC, bomba! Kompilovalo se to asi 50 minut. Gratuluju si.
UPDATE5: Kompilace amaroKu selhala, ale Konqueror se sestavil.
Tiskni
Sdílej:
ii binutils 2.16.1-2 ii libc6 2.3.5-6
good luck with that, 4.1 is still pretty unstable thats because Debian and Fedora patch the hell out of their glibc often what Fedora calls '2.3.5' is really 2.3.5 plus a ton of custom patches that they maintain themselves -mikeTakže asi 4.0.*, co...
/opt/gcc-4.x.y
, protože v případě jakýchkoli potíží se systém vůbec nepoškodí. Kompilace trvá poměrně dlouho, ale s rychlým strojem by měla být bez problémů. S Glibc 2.3.3 a 2.3.5 fungovat bude, s 2.3.4 ne, pokud nebyla opravena drobná chybka v pthread.h
, kde je kód podle ISO C99, který však nefunguje v ANSI C++. Kompilace programů by měla jít se čtverkou většinou hladce, zádrhel byl spíš mezi GCC 3.3 a GCC 3.4, kdy se hodně změnila třeba striknost překladače C++.
P.S.: V systému mám GCC 2.95.3, 3.3.6, 3.4.3 a 4.0.1. Může to vypadat jako luxus, ale někdy to přijde docela vhod. Akorát to zabírá nechutně moc místa na disku. Stávající verze GCC bude asi 3.4.x, že jo?Ano,
3.4.4-r1
.
Potom bych navrhoval kompilaci do /opt/gcc-4.x.y
To myslím nebude zapotřebí, emerge (Portage) si s tím poradí. S Glibc 2.3.3 a 2.3.5 fungovat bude, s 2.3.4 ne, pokud nebyla opravena drobná chybka v pthread.h
, kde je kód podle ISO C99, který však nefunguje v ANSI C++.
Ale v ebuildu je napsaná závislost na 2.3.6 a vyšší, nejsem si jist, zda je vhodný to (jak to říct slušně 2.3.5-r2
.
/opt/gcc-A.B.C
před všechny ostatní, takže se použije verze A.B.C
a ne výchozí verze D.E.F
.
Závislost na 2.3.6? Radši bych zkusil to oblbnutí. Glibc jsem ještě nikdy neaktualizoval (v LFS to dá docela dost práce), ale může to skončit všelijak. Závislost na 2.3.6? Radši bych zkusil to oblbnutí. Glibc jsem ještě nikdy neaktualizoval (v LFS to dá docela dost práce), ale může to skončit všelijak.Doobře, oblbnu to (udělám ebuild -r1 bez tý závislosti do Portage Overlaye), ušetřím hafo hodin kompilace. Btw, glibc jsem už aktualizoval, viz můj blog někde zezačátku.
make CC=gcc32 CXX=g++32
, je potřeba si prolézt příslušný makefile.
Přepnutí se dá provést celkem jednoduše, například pomocí make CC=gcc32 CXX=g++32
, je potřeba si prolézt příslušný makefile.
Na Gentoo pomocí gcc-config vybereš ten správnej. :)
gcc-config
, bez toho gentoo snad ani nenainstaluješ, tak jaktože to neznáš ? :)
gcc-config
, jak jsem jen mohl zapomenout. Dík! Build with g++-3.4 on arm, m68k and hppa; kdebase also makes gcc 4.0 ICE as described in #323133.
* Now it should be built on amd64 with gcc-4.0 - closes: #285577, #319307
[david@amd64 /usr/kde/3.5/bin] $ ll /usr/bin/ktorrent -rwxr-xr-x 1 root root 1171328 lis 13 03:17 /usr/bin/ktorrent [david@amd64 /usr/kde/3.5/bin] $ ll /usr/bin/ktorrent -rwxr-xr-x 1 root root 881368 lis 18 22:00 /usr/bin/ktorrentnebo
david@amd64 /usr/portage/dev-libs/liboil [ kmldonkey-0.10.1 | 3/102 2.96 ] [516] # ll /usr/bin/kmldonkey -rwxr-xr-x 1 root root 1120136 lis 13 03:14 /usr/bin/kmldonkey david@amd64 /usr/portage/dev-libs/liboil [ kmldonkey-0.10.1 | 4/112 2.94 ] [517] # ll /usr/bin/kmldonkey -rwxr-xr-x 1 root root 809736 lis 18 22:18 /usr/bin/kmldonkey
# ll konqsidebar_metabar.so konqsidebar_metabar.la -rwxr-xr-x 1 root root 2213 lis 12 konqsidebar_metabar.la -rwxr-xr-x 1 root root 254608 lis 12 konqsidebar_metabar.so
# ll konqsidebar_metabar.so konqsidebar_metabar.la -rwxr-xr-x 1 root root 2705 lis 18 konqsidebar_metabar.la -rwxr-xr-x 1 root root 256736 lis 18 konqsidebar_metabar.so
Jo, ale jeden měl opravdu 200 kB a potom 20 kB. :)
PS: Tak tos mě setřel. Beru to jak mi to přijde pod ruku (jak kecáá
). Bezesrandy jsem se snažil si to optimalizovat - nechci vědět jak je nacpanej adresář - zpomaluje to
cd
, ale nevím jak to udělat (i když zřejmě vím kde).
# ll kate kwrite -rwxr-xr-x 1 root root 72008 lis 12 22:29 kate -rwxr-xr-x 1 root root 67864 lis 12 22:29 kwrite # ll kate kwrite -rwxr-xr-x 1 root root 6384 lis 18 22:43 kate -rwxr-xr-x 1 root root 6272 lis 18 22:43 kwrite
# ll kmplayer -rwxr-xr-x 1 root root 70752 lis 13 03:09 kmplayer # ll kmplayer -rwxr-xr-x 1 root root 6224 lis 18 22:50 kmplayer
# ll ../kde/3.5/bin/kaudiocreator -rwxr-xr-x 1 root root 566712 lis 13 00:17 ../kde/3.5/bin/kaudiocreator # ll ../kde/3.5/bin/kaudiocreator -rwxr-xr-x 1 root root 376792 lis 18 22:35 ../kde/3.5/bin/kaudiocreatorMěl by se snažit...
strip: x86_64-pc-linux-gnu-strip --strip-unneeded strip: x86_64-pc-linux-gnu-strip --strip-unneeded usr/bin/kmplayer usr/bin/kgstplayer usr/bin/kxvplayer usr/bin/kxineplayer usr/lib64/kde3/kmplayer.so usr/lib64/kde3/libkmplayerpart.so usr/lib64/libkdeinit_kmplayer.so usr/lib64/libkmplayercommon.soříkal i při kompilaci gcc-3.4.4kou.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.