Taczka ciut opó¼niona (fwd)

Marcin Dalecki dalecki w cs.net.pl
Pią, 30 Kwi 1999, 11:13:27 CEST


Tomasz K³oczko wrote:
> 
> Forward wypowiedzi Maæka Ró¿yckiego dotycz±cy uwag optymalizacji. W razie
> gdyby kto¶ mia³ jakie¶ uwagi co do tego co Maciek napisa³ to jego adres
> to:
> Maciej W. Rozycki <macro w amg.gda.pl>
> 
> ----------
> > Jaki¶ czas temu po ró¿nych eksperymentach zdecydowali¶my siê na u¿ywanie
> > _tylko_ egcs-a. Po natepnej serii testów przesz³y opcje -O2 -mpentium. tak
> > czy inaczej nie jest to wa¿ne gdy¿ _regó³±_ jest to, ¿e wszystkie pakiety
> > s± przystosowane do u¿yywania $RPM_OPT_FLAGS i przestawiæ na inne opcje to
> > jest zmiana w ~/.rpmrc i przekompilowanie ca³o¶ci jednym poleceniem.
> > jak na razie z -O2 -mpentium nie ma _najmnijszeg_ (podkre¶lam to mocno)
> > k³opotu. Oczywi¶cie mow o pakietach oprogramowanie. Dystrybuowany kernel
> > ma byæ raczej kompilowany raczj z opcjami jakie s± orginalnie w
> > ¼ród³ach.
> 
>  Chyba sie nie zrozumielismy.  Jesli zrobisz taki pakiet glibc-devel z
> opcjami "-O2 -mpentium", to dostaniesz hybryde.  Dlaczego?  Ano dlatego,
> ze RPM podstawi za %{buildarch} "i386".  Czyli dostaniesz pakiet z
> binariami bibliotek optymalizowanymi na i586, ale skompilowanymi z
> naglowkami dla i386 i w takiez naglowki wyposazony.  A naglowki na
> poszczegolne modele zawieraja rozne makrodefinicje z wstawkami
> asemblerowymi.  Np. niektore makra uzywaja rozkazow "cmovxx", jesli sa
> kompilowane na i686, inne zas uzywaja roznych algorytmow dla roznych
> modeli (np. makra definiowane w <string.h> dla i386 sa zupelnie inne niz
> dla innych modeli).

Dokladnie. Tylko ze problemem jest tu fakt iz przy konfiguracji
w trakcie kompilowania egcs-a powinno podawac sie host a nie tylko nazew
samego prcesora. (Oczywiscie w zalozeniu, ze chce sie wszystko
dostosowaywac
do pentium...) tak wiec powinno tam byc configure --host="i586-linux"
zamiast configure --host $RPM_COSTAM. i wowczas egcs bedzie domyslie
zachowywal sie tak jak na danej maszynce oczekiwano. W egcs-1.1.2
skorygowany bledy ktore powodowaly, ze jesli podalismy niewlasciwy
rodzaj procesora jako host a nie architekture, to byl generowany kod
niezdatny
dla innych (czytaj: o mniejszym zakresie rozkazoe) procesorow.

--Marcin



Więcej informacji o liście dyskusyjnej pld-devel-pl