Nowe posty

Autor Wątek: Debian, źródła i kompilacja  (Przeczytany 13318 razy)

WizardNumberNext

  • Gość
Debian, źródła i kompilacja
« Odpowiedź #15 dnia: 2008-05-09, 07:30:38 »
A wszyscy chcą wcisnąć gentoo, które się wykoleja co chwilę.
A ja mam debian'a i nie pamiętam już jak udało mi się doprowadzić do crash'a jednego programu.
Żaden program nigdy mi się nie wykoleił sam.
Dlatego używam Debian'a - jest kompletnym zaprzeczeniem Windows'a.
A windows'a za nie długo usuwam tylko jeszcze kilka instalacji zrobię, aby się dowiedzieć jak samemu pewne rzeczy umieszczać w rejestrze.
A później to już wine (też sam skompilowałem pod procesor).

chmooreck

  • Gość
Debian, źródła i kompilacja
« Odpowiedź #16 dnia: 2008-05-09, 07:53:11 »
Cytat: WizardNumberNext
A wszyscy chcą wcisnąć gentoo, które się wykoleja co chwilę.
Jakoś nie zauważyłem przez te kilka lat...

No ale cóż... jak to mówią ? Jaki pan, taki kram ? ;-)

Na całe szczęście nikt nikogo do niczego tutaj nie zmusza.

WizardNumberNext

  • Gość
Debian, źródła i kompilacja
« Odpowiedź #17 dnia: 2008-08-10, 10:45:03 »
Gentoo cierpi na ten sam mały defekt co Debian - jak mu się poda pewne zmienne lokalne jako globalne, a configure lub makefile danego programu tego nie obsługują to kompilacja się wykoleja. Tyle że przy debian to jest komplilacja jednego pakietu i nawet jak kompiluje w stylu
apt-build world
to nie będzie kompilował od nowa. Z Gentoo jest problem taki, że na początku należy kompilować cały system za pomocą
emerge -e system
, niech się wykolei na globalnej-zmiennej-lokalnej to albo spis programów do kompilacji albo od nowa. Jednak z Debian'em jest mniej zachodu bo ominie te gotowe (w gentoo nie wiem czy mogę dać bez '-e', ponieważ nie wiem dokładnie w którym momencie budowania systemu jest). Debian jest stabilny - ja chce tylko trochę więcej prędkości plus tą samą stabilność. Mam skompilowane GlibC z 'udziwnionymi' flagami (-Os połączone z -O3 (nadwyżka -O3 nad -O2))
-mmmx -m3dnow -march=athlon-tbird -mcpu=athlon-tbird -mtune=athlon-tbird -Os -finline-functions -funswitch-loops -fgcse-after-reload -fomit-frame-pointer -pipe -s -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_I686_PREFETCH
Dla zainteresowanych:
-mmmx - korzystaj z rozkazów mmx
-m3dnow - korzystaj z rozkazów 3dnow
-march=athlon-tbird - architektura = amd athlon (thunderbird)
-mcpu=athlon-tbird - przestarzałe, ale można stosować - znaczy to samo co -mtune
-mtune=athlon-tbird - blisko march, lecz jak podam '-march=i686 -mtune=athlon-tbird' to kod będzie działał na każdym 'IA32 i686', ale będzie optymalizowany (znacznie szybszy) dla 'AMD Athlon (thunderbird)' - jednym słowem optymalizacja
-Os - optymalizacja kodu pod względem rozmiaru (mały), prawie identyczna z '-O2'
'-finline-functions -funswitch-loops -fgcse-after-reload' - to jest różnica pomiędzy '-O3' a '-O2' (to co ma '-O3' a czego nie ma '-O2')
-fomit-frame-pointer - funkcja usuwania 'frame-pointer' tam gdzie jest zbędny lub służy tylko do debuggingu
-pipe - kompiluj przy użyciu rurki
-s - stripe - czyli usuwa (właściwie nie umieszcza) z kodu informację do debuggowania
reszty nie będę opisywał, ponieważ nie powinno się używać tych opcji jeżeli na prawdę się ich nie rozumie i nie ma się wiedzy na temat działania procesora (wyjątek stanowi '-DUSE_xxxx_PREFETCH' (xxxx - '3DNOW' lub 'I686') - jeżeli się użyje tej opcji na procesorze z odpowiednią jednostką to zysk jest od 5-15%, jeżeli procesor tego nie ma nic się dzieje (kod nie jest ani szybszy ani wolniejszy).

To było na tyle.