kompilacja gcc

Instalacja Slackware Linux, problemy i wstępna konfiguracja, aktualizacje do nowszych wersji.

Moderatorzy: Moderatorzy, Administratorzy

Awatar użytkownika
Notch
Użytkownik
Posty: 14
Rejestracja: 2004-06-07, 05:52

kompilacja gcc

Post autor: Notch »

Witam,
chciałem sobie samemu skompilować gcc, z optymalizacją pod mojego procka. Ściągnąłem źrodła i slackbuilda, ale niestety nie wiem co wyedytować w tym drugim. Próbowałem dadać CFLAGS na początku pliku, ale to nie działa. Być może ktoś ma i mógłby udostępnić gotowy skrypt, lub wytłumaczyć, gdzie i co trzeba zmienić.
Pounding waves. Pulsating surf. And sand in every orifice.
bocian
Użytkownik
Posty: 678
Rejestracja: 2005-06-15, 10:15

Re: kompilacja gcc

Post autor: bocian »

Przemyśl jedną rzecz: jaki będziesz miał pożytek ze skompilowania kompilatora "pod swojego procka", skoro nie rozumiesz zasad działania prostego skryptu powłoki i nie potrafisz go zmodyfikować?
Awatar użytkownika
Notch
Użytkownik
Posty: 14
Rejestracja: 2004-06-07, 05:52

Re: kompilacja gcc

Post autor: Notch »

Mam kliknąć "pomógł"?
Pounding waves. Pulsating surf. And sand in every orifice.
kamillo
Użytkownik
Posty: 95
Rejestracja: 2004-11-23, 18:27
Lokalizacja: Gdynia

Re: kompilacja gcc

Post autor: kamillo »

Bylo na forum o optymalizacji paczek pod slacka (chyba jest gdzies w FAQ albo propozycji do FAQ)
Awatar użytkownika
Notch
Użytkownik
Posty: 14
Rejestracja: 2004-06-07, 05:52

Re: kompilacja gcc

Post autor: Notch »

Już znalazłem: w tym konkretnym przypadku kompilaca jest przeprowadzana w podpowłoce i (chyba) dlatego make nie dostawał zmiennych ustawionych na początku skryptu. Teraz mam tak (właśnie się kompiluje):

Kod: Zaznacz cały

make CFLAGS='-O2 -march=athlon' BOOT_CFLAGS='-O2 -march=athlon' profilebootstrap
I pytanie: czy ktoś używał profilebootstrap zamiast domyślnego bootstrap i moze powiedzieć jakie daje to efekty? W dokumentacji piszą o 7 procentowym przyroście, gdzieś wyczytałem ze skoki są nawet o 15-20%.
Pounding waves. Pulsating surf. And sand in every orifice.
BeteNoire
Użytkownik
Posty: 2666
Rejestracja: 2005-03-21, 01:39
Lokalizacja: z lasu

Re: kompilacja gcc

Post autor: BeteNoire »

7-procentowym przyroście czego? Alkoholu w winie? :D

Chcesz mieć stabilny i szybki Slackware to zostań przy bezpiecznych opcjach i przekompiluj z nimi najważniejszy soft jakiego używasz.
Masz tu moje dla porównania:

Kod: Zaznacz cały

CFLAGS="-march=athlon-xp -Os -pipe -fomit-frame-pointer -DNDEBUG -DG_DISABLE_ASSERT -DNO_DEBUG -s"
CXXFLAGS="${CFLAGS}"
A jeśli chcesz eksperymentować to... zainstaluj Gentoo, bardziej się do tego nadaje. :twisted:
Awatar użytkownika
Notch
Użytkownik
Posty: 14
Rejestracja: 2004-06-07, 05:52

Re: kompilacja gcc

Post autor: Notch »

BeteNoire pisze:7-procentowym przyroście czego? Alkoholu w winie? :D
Cukru w cukrze :)
Pounding waves. Pulsating surf. And sand in every orifice.
BeteNoire
Użytkownik
Posty: 2666
Rejestracja: 2005-03-21, 01:39
Lokalizacja: z lasu

Re: kompilacja gcc

Post autor: BeteNoire »

W pewnym sensie to co mówisz nie jest masłem maślanym. :twisted: Cukier składać się może z różnych cukrów ale nie zawsze czyni go to bardziej słodkim. Odnieś to teraz do flag, rekompilacji i wyników benchmarków. Krótko mówiąc: na jednym zyskasz, na innym stracisz - koniec końców różnice nie będą wielkie.
bocian
Użytkownik
Posty: 678
Rejestracja: 2005-06-15, 10:15

Re: kompilacja gcc

Post autor: bocian »

Notch pisze:w tym konkretnym przypadku kompilaca jest przeprowadzana w podpowłoce i (chyba) dlatego make nie dostawał zmiennych ustawionych na początku skryptu
W tym przypadku akurat nie. Zmienne ustawione na początku skryptu były nadpisywane przez następującą linijkę w środku skryptu:

Kod: Zaznacz cały

CFLAGS="flagi" \
  CXXFLAGS="flagi" \
  ../gcc-$VERSION/configure ...
W bashu domyślnie wszystkie zmienne są dziedziczone przez podpowłoki i nie trzeba ich eksportować:

Kod: Zaznacz cały

$ A=zmienna; (echo $A)
zmienna
Chyba że jako /bin/sh używasz innego shella.

Ja również zapytam: 7-procentowy przyrost czego?
Notch pisze:Mam kliknąć "pomógł"?
Dziękuję, obejdzie się.
Awatar użytkownika
Notch
Użytkownik
Posty: 14
Rejestracja: 2004-06-07, 05:52

Re: kompilacja gcc

Post autor: Notch »

bocian pisze:W tym przypadku akurat nie. Zmienne ustawione na początku skryptu były nadpisywane przez następującą linijkę w środku skryptu:

Kod: Zaznacz cały

CFLAGS="flagi" \
  CXXFLAGS="flagi" \
  ../gcc-$VERSION/configure ...
U mnie czegos takiego nie ma - gcc-3.4.4.
Skoro zmienne sa dziedziczone, to ja juz nie mam pomyslow, dlaczego dzialo sie to co sie dzialo. W kazdym razie, drugi sposob zadzialal.
bocian pisze:Ja również zapytam: 7-procentowy przyrost czego?
Szybkosci.
It is possible to use profile feedback to optimize the compiler itself. This should result in a faster compiler binary. Experiments done on x86 using gcc 3.3 showed approximately 7 percent speedup on compiling C programs. To bootstrap compiler with profile feedback, use make profiledbootstrap.
Pounding waves. Pulsating surf. And sand in every orifice.
przemek999
Pomocnik
Posty: 1157
Rejestracja: 2005-03-04, 18:27

Re: kompilacja gcc

Post autor: przemek999 »

Notch jesli nie masz co z czasem robic, to proponuje nauke jakiegos fajnego języka programowania - np. Perla / Pythona :)
Pozdrawiam Przemek.
BeteNoire
Użytkownik
Posty: 2666
Rejestracja: 2005-03-21, 01:39
Lokalizacja: z lasu

Re: kompilacja gcc

Post autor: BeteNoire »

Notch pisze:
bocian pisze:Ja również zapytam: 7-procentowy przyrost czego?
Szybkosci.
It is possible to use profile feedback to optimize the compiler itself. This should result in a faster compiler binary. Experiments done on x86 using gcc 3.3 showed approximately 7 percent speedup on compiling C programs. To bootstrap compiler with profile feedback, use make profiledbootstrap.
Ty w "szybkich i martwych" się bawisz? :lol:
Wierz mi, jeśli to by miało wiarygodne przełożenie na rzeczywistość to już dawno weszłoby do domyślnego profilu w Gentoo. A tak jest ccache, distcc itp... a to o czym mówisz pewnie stwarza więcej problemów niż rozwiązuje.
Ale baw się, eksperymentuj, może trafisz na coś nowego.
ODPOWIEDZ