Skocz do zawartości

Flagi Kompilatora


Ireq

Rekomendowane odpowiedzi

Moje ustawienie to:

 

export CFLAGS="-march=pentium4 -Os -fomit-frame-pointer -s -pipe -DNDEBUG -DG_DISABLE_ASSERT"

export CXXFLAGS="-march=pentium4 -Os -s -pipe -DNDEBUG -DG_DISABLE_ASSERT"

export LDFLAGS="-s -z combreloc"

...w pliku /etc/profile oraz :

optflags: i686 -march=pentium4 -Os -fomit-frame-pointer -s -pipe -DNDEBUG -DG_DISABLE_ASSERT -z combreloc

...w pliku ~/.rpmrc

 

Czy to poprawne wpisy i czy sa konieczne w obu plikach ?

 

Czy komenda --target=pentium4 jest konieczna ? Ma wplyw na optymalizacje pakietu...czy tylko wskazuje miejsce zapisu ?

 

Pozdrawiam.

Odnośnik do komentarza
Udostępnij na innych stronach

Moje ustawienie to:

http://forums.gentoo.org/viewtopic.php?t=5717 (trzeba uważać na poczatku, bo wątek ma ponad dwa lata i wtedy używało się troche innych flag z tamtym gcc).

http://forums.gentoo.org/viewtopic.php?t=67777

http://forums.gentoo.org/viewtopic.php?t=226909 ← dość ciekawe

http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gc...ptimize-Options

http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gc..._002d64-Options - radzę zbytnio nie kombinować z flagami ;-)

 

Wybór flag nie jest taki prosty jakby się wydawało :/ Jeśli używamy jakiejś aplikajci, która dużo "liczy", cały czas chodzi i nieważny dla nas jest czas startu, to lepiej użyć opcji -O3. Z tego co widziałem, to dla kodu pisanego w C++ ludzie używają -Os, a dla C -O2 - ponoć lepiej chodzi ;-)

czy sa konieczne w obu plikach ?

Tak. Niektóre spece nie korzystają ze zmiennej $RPM_OPT_FLAGS (ustawiane w pliku ~/.rpmrc), więc w czasie kompilacji wykorzystywane są flagi CFLAGS i CXXFLAGS.

 

Tak od siebie tylko dodam, byś nie modyfikował pliku /etc/profile, tylko stworzył odpowiedni plik w /etc/profile.d/ (trzeba nadać też odpowiednie prawa dostępu) - wzoruj sie na umieszczonych tam plikach.

Czy komenda --target=pentium4 jest konieczna ? Ma  wplyw na optymalizacje pakietu...czy tylko wskazuje miejsce zapisu ?

Jeśli nie przypiszesz innym architekturom architektury pentium4 w pliku ~/.rpmrc to ma. Bez tej opcji skompiluje Ci się pod i386 ;-)

 

/edit/

Tfu. Z tego co widze, to nie ma --target=pentium4. Wystarczy samo --target=i686 + odpowiednie flagi.

 

Ja mam przykładowo tak:

optflags: athlon -march=athlon-xp -mtune=athlon-xp -O2 -fomit-frame-pointer -ftracer -momit-leaf-frame-pointer -mfpmath=387  -pipe -DNDEBUG -DG_DISABLE_ASSERT -s

buildarchtranslate: i386: athlon
buildarchtranslate: i486: athlon
buildarchtranslate: i586: athlon
buildarchtranslate: i686: athlon
buildarchtranslate: athlon: athlon

i nie muszę już nic dodawać.

Odnośnik do komentarza
Udostępnij na innych stronach

Czyli rozumiem ze wystarczy u mnie do pliku ~/.rpmrc dopisac

buildarchtranslate: i386: i686
buildarchtranslate: i486: i686
buildarchtranslate: i586: i686
buildarchtranslate: i686: i686

...bo flagi mam ustawione na P4 ?

Jaka nazwe ma miec plik w /etc/profile.d/...rowniez profile ?

Odnośnik do komentarza
Udostępnij na innych stronach

Czyli rozumiem ze wystarczy u mnie do pliku ~/.rpmrc dopisac

buildarchtranslate: i386: i686
[ciach]

Tak.

Jaka nazwe ma miec plik w /etc/profile.d/...rowniez profile ?

Unikalną :-) Ja mam na przykład moje_ustawienia.sh a w nim coś takiego:

export CFLAGS="-march=athlon-xp -mtune=athlon-xp -O2 -fomit-frame-pointer -ftracer -momit-leaf-frame-pointer -mfpmath=387 -pipe -DNDEBUG -DG_DISABLE_ASSERT -s "
export CXXFLAGS="-march=athlon-xp -mtune=athlon-xp -Os -fomit-frame-pointer -ftracer -momit-leaf-frame-pointer -mfpmath=387  -fvisibility-inlines-hidden -pipe -DNDEBUG -DG_DISABLE_ASSERT -s"
export LDFLAGS="-Wl,-O1 -Wl,--sort-common -s"

export SDL_AUDIODRIVER="alsa"

export JAVA_HOME="/usr/java/jre1.5.0"
export JAVA_PATH="$JAVA_HOME"
export PATH="$PATH:$JAVA_HOME/bin"

Przy instalacji nowej wersji Fedory wystarczy potem przekopiować plik - nie trzeba bawić się w edycję i przeklejanie odpowiednich fragmentów tekstu :-)

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...