Page 15 of 16
Posted: Wed May 14, 2008 1:52 pm
by unK
C1REX wrote:Używa ktoś -march=native?
ja.
C1REX wrote:Jakie są różnice względem ustawienia swojego procesora?
wcześniej miałem march=athlon-xp, a native ustawia mi athlon-4, ale cholera wie, czym to się różni.
edit: uhm, man gcc twierdzi, że to to samo

Posted: Wed May 14, 2008 1:57 pm
by SlashBeast
nie pokazałeś błędu to nie bardzo jest jak stwierdzić, czy to wina march native, uzywam native na każdej maszynie w domu.
native bazuje pewnie na /proc/cpuinfo, widząc np. w flags pni dodaje msse3, widząc sse, sse2 dodaje msse i msse2 i tak dalej.
Posted: Wed May 14, 2008 2:29 pm
by C1REX
Po kompilacji gcc z miejsca zabrałem się za rekompilację systemu. Zgodnie z instrukcją:
http://www.gentoo.org/doc/pl/gcc-upgrading.xml
O ile mi jednak wiadomo, to po aktualizacji gcc trzeba aktualizować również i glibc.
Aktualnie leci kompilacja w/w programu. Później będę w stanie stwierdzić, czy błąd wynikał z winy kompilatora, czy z dokumentacji.
Posted: Wed May 14, 2008 3:55 pm
by SlashBeast
Przy aktualizacjach z gcc 4 do innej "czwórki" nie widze sensu bawić się w to o czym mówi ten poradnik, tyle co użyc gcc-config i zmienić wersje gcc którą będzie używał system
Posted: Wed May 14, 2008 10:23 pm
by C1REX
Nie wiem skąd, ale miałem jakieś resztki w systemie z 486.
http://www.gentoo.org/doc/pl/change-chost.xml
Zgodnie z instrukcją pousuwałem wszelkie ślady starej technologii.
EDIT: Nie jestem pewny, ale to chyba jest błąd stage3 i686. Przynajmniej najnowszego.
Sprawdźcie, czy też nie macie śladów i386, i486 w swoim systemie.
EDIT2: Zgadza się. Jakiś problem z tym
hostem miałem. Teraz mi się wszystko kompiluje jak powinno.
Arfrever: Ortografia
Posted: Mon May 19, 2008 10:51 am
by C1REX
C1REX wrote:
EDIT2: Zgadza się. Jakiś problem z tym hostem miałem. Teraz mi się wszystko kompiluje jak powinno.
Arfrever: Ortografia
Chostem.
CHOST="i686-pc-linux-gnu"
BTW: Używa ktoś LDFLAGS? podobno nawet niektórzy developerzy je mają. Są podobno dość bezpieczne, ale niewspierane.
Ma ktoś jakieś informacje o wpływie na wydajność i stabilność?[/code]
Posted: Mon May 19, 2008 2:06 pm
by unK
C1REX wrote:BTW: Używa ktoś LDFLAGS
Tak, od daawna, nic się nigdy nie zepsuło przez nie.
Code: Select all
LDFLAGS="-Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,--hash-style=gnu"
Posted: Mon May 19, 2008 2:14 pm
by n0rbi666
Code: Select all
LDFLAGS="-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed"
Mam tak od dłuższego czasu, cały system przekompilowany tak i wszysko działa
Z tego co pamiętam, to jeszcze
Code: Select all
-Wl,--sort-common i -Wl,--enable-new-dtags
są bezpieczne - ale gdzieś wyczytałem, że portage/binutils je domyślnie dodaje (?) Tylko teraz nie pamiętam, gdzie to czytałem

Posted: Mon May 19, 2008 2:27 pm
by SlashBeast
Szkoda, że nie dodałem LDFLAGS gdy wczoraj robiłem -e world, no nic.
Powie mi ktoś jak są oddzielane konkretne LDFLAGS? Spacją czy przecinkiem, i dlaczego macie po kilka razy -Wl ?
Posted: Mon May 19, 2008 3:07 pm
by n0rbi666
SlashBeast wrote:Powie mi ktoś jak są oddzielane konkretne LDFLAGS? Spacją czy przecinkiem, i dlaczego macie po kilka razy -Wl ?
Generalnie można albo spacją, np.
(tylko przed każdą trzeba dawać właśnie to -Wl)
Albo przecinkiem, np.
Code: Select all
-Wl,-O1,--hash-style=gnu,--as-needed
Posted: Mon May 19, 2008 3:33 pm
by C1REX
http://forums.gentoo.org/viewtopic.php?t=67777
Link przypominam, bo kilka lat temu podałem go w tym temacie : )
Posted: Mon May 19, 2008 4:32 pm
by Arfrever
n0rbi666 wrote:Z tego co pamiętam, to jeszcze
Code: Select all
-Wl,--sort-common i -Wl,--enable-new-dtags
są bezpieczne - ale gdzieś wyczytałem, że portage/binutils je domyślnie dodaje (?)
Binutils w Gentoo posiadają specyficzną łatkę, która domyślnie włącza działanie powodowane przez -Wl,--enable-new-dtags.
Nie dotyczy to -Wl,--sort-common.
Posted: Wed May 21, 2008 4:33 pm
by C1REX
Czy jeśli skompiluje się program pod 386 bez żadnych dodatkowych funkcji procesora, to binarka będzie mniejsza od wersji skompilowanej pod core duo ze wszystkimi funkcjami, jakie obsługuje ten procesor?
Posted: Wed May 21, 2008 5:58 pm
by Arfrever
C1REX wrote:Czy jeśli skompiluje się program pod 386 bez żadnych dodatkowych funkcji procesora, to binarka będzie mniejsza od wersji skompilowanej pod core duo ze wszystkimi funkcjami, jakie obsługuje ten procesor?
Nie. Instrukcje procesora nie są zdefiniowane w plikach wykonywalnych.
Posted: Thu May 22, 2008 3:02 pm
by C1REX
LDFLAGS mają jakiś poważniejszy wpływ na wydajność i/lub wielkość binarki?
Czy może to praktycznie nic nie daje i jest grą w rosyjską ruletkę. Ryzykowanie o nic.
Posted: Thu May 22, 2008 4:01 pm
by mziab
C1REX wrote:LDFLAGS mają jakiś poważniejszy wpływ na wydajność i/lub wielkość binarki?
Czy może to praktycznie nic nie daje i jest grą w rosyjską ruletkę. Ryzykowanie o nic.
Nie chodzi tyle o wielkość binarki, co o to, żeby konsolidator miał mniej roboty przy ładowaniu programu.
Osobiście używam globalnie:
I to jest zupełnie bezpieczne, z tego co mi wiadomo.
Dla zaufanych pakietów (m.in. KDE, a na innej maszynie Gnome) mam z kolei:
Kiedyś --as-needed było uważane za potencjalnie niebezpieczne, ale to już chyba przeszłość. Znam parę osób, które mają cały system z --as-needed i wszystko działa. A flaga ma też ten pozytywny skutek, że przy zmianie ABI będzie mniej rzeczy do revdepowania. Jakiś czas temu, przy aktualizacji expata miałem dzięki temu dużo mniej roboty.
Posted: Fri May 23, 2008 12:33 am
by C1REX
CFLAGS="-DNDEBUG -DG_DISABLE_ASSERT -DG_DISABLE_CHECKS -DG_DISABLE_CAST_CHECKS"
Ktoś wie, jak w dzisiejszych czasach są bezpieczne te flagi.
Co prawda miałem kiedyś skompilowany cały system z max agresywnymi flagami i jakoś system działał, ale na siłę szukać problemów nie zamierzam.
Zaznaczę, że nie zależy mi specjalnie na szybkości działania np. gzipa, tylko, by mi aplikacje szybko wstawały i system nie mulił od zapchanego ramu.
Tu jest ciekawy moim zdaniem artykuł o flagach (bardzo stary)
http://repo.dobremiasto.net/articles/ws ... gramowania
--------------------------------------------
Właśnie zrobiłem backup systemu i zaraz rzucam emerge -e world z:
Code: Select all
CFLAGS="-march=native -Os -fomit-frame-pointer -s -pipe -DNDEBUG -DG_DISABLE_ASSERT"
CXXFLAGS="-march=native -Os -s -pipe -DNDEBUG -DG_DISABLE_ASSERT"
LDFLAGS="-Wl,-O1 -Wl,--sort-common -s"
Jutro powiem, czy się system uruchamia. (o ile zdąży - 342 pakiety na turionie 2ghz)
Mimo wszystko jednak nic mocno agresywnego chyba nie używam. Stawiam bardziej na lekki, niż wydajny system.
Posted: Fri May 23, 2008 11:16 am
by unK
Nie wiem, po co ci -s, skoro portage domyślnie stripuje binarki, ale jak tam sobie chcesz.
Posted: Fri May 23, 2008 11:24 am
by Piecia
unK wrote:Nie wiem, po co ci -s, skoro portage domyślnie stripuje binarki, ale jak tam sobie chcesz.
A jak używa paludisa?
Posted: Fri May 23, 2008 11:39 am
by matiit
Ale pisał że zrobi emerge -e world więc używa portage

Posted: Fri May 23, 2008 12:53 pm
by C1REX
unK wrote:Nie wiem, po co ci -s, skoro portage domyślnie stripuje binarki, ale jak tam sobie chcesz.
Czyli sam sobie wrzuca tą właśnie flagę, czy robi to jakoś inaczej i ja tymi ustawieniami coś zmieniam?
Niestety nie znam się zupełnie na programowaniu i muszę wierzyć temu, co sobie znajdę w sieci.
Posted: Fri May 23, 2008 1:21 pm
by Arfrever
C1REX wrote:unK wrote:Nie wiem, po co ci -s, skoro portage domyślnie stripuje binarki, ale jak tam sobie chcesz.
Czyli sam sobie wrzuca tą właśnie flagę, czy robi to jakoś inaczej i ja tymi ustawieniami coś zmieniam?
Używa `strip --strip-unneeded`, jeśli FEATURES nie zawiera "nostrip" i RESTRICT nie zawiera "strip".
Posted: Fri May 23, 2008 1:36 pm
by mziab
C1REX: Kiedyś -DG_DISABLE_ASSERT psuło masę programów opartych na bibliotekach Gnome, np. gnome-bluetooth. Niektóre programy wymagają asercji, żeby działać poprawnie. Nie sądzę, żeby coś się w tej sprawie ostatnio zmieniło. Odradzam używanie tej flagi. Pozostałe z tego artykułu (te z -D) zresztą też niewiele dają, a są ryzykowne. Wiem, bo kiedyś się nimi bawiłem.
Posted: Fri May 23, 2008 3:04 pm
by C1REX
Skompilowałem cały system i nie czuję różnicy. Tzn. być może coś się szybciej odpala, ale bez dokładnych pomiarów nie jestem w stanie tego stwierdzić.
W sumie to IMHO nie warto wychodzić poza bezpieczne flagi. Można jedynie Os brać pod uwagę, jeśli chce się lżejszy system.
Posted: Fri May 23, 2008 4:34 pm
by unK
C1REX wrote:Czyli sam sobie wrzuca tą właśnie flagę, czy robi to jakoś inaczej i ja tymi ustawieniami coś zmieniam?
np.
Code: Select all
>>> Completed installing sqlite-3.5.10_pre20080522 into /var/tmp/portage/dev-db/sqlite-3.5.10_pre20080522/image/
strip: i686-pc-linux-gnu-strip --strip-unneeded -R .comment
usr/bin/lemon-3
usr/bin/sqlite3
usr/lib/libsqlite3.so.0.8.6
usr/lib/libsqlite3.a
Wtedy właśnie stripuje wszystkie binarki i liby należące do danego programu.