Newsgroup: it.comp.os.linux.iniziare
Titolo: Compilazione piu' lenta = kernel migliore ?

Ciao, volevo rivolgervi una domanda.
Tempo fa lessi su una rivista (pc professionale, nella sezione linux) che
era possibile ricompilare xfree con alcuni parametri "particolari" che ne
avrebbero allungato i tempi di compilazione ma alla fine il codice sarebbe
stato piu' veloce (mi pare che nella descrizione di uno di questi parametri
ci fosse scritto "dice al compilatore di prendersi tutto il tempo necessario
per produrre codice piu' veloce" o cmq qualcosa di molto simile).
E' vera questa cosa?
Quale e' (sono?) questo parametro?
E' possibile applicarlo alla compilazione di *tutti* i sorgenti, o solo a
xfree?
Porta vantaggi o e' solo una perdita di tempo?
Grazie
--
 ==> Atlantis <==
 Icq # 18752702
http://thenomad.homeip.net

 ha scritto nel messaggio
news:adhsgt$11c7jm$1...@ID-139590.news.dfncis.de...

se intendi ottimizzare un tuo programma scritto in c o in fortran allora
l'ottimizzazione si ottiene con l'opzione -O2 oppure -O3 (vedi il man di
gcc)
gcc -O2 file.c
mentre quando compili un pacchetto scaricato da internet, per esempio
apache, php e mysql, le opzioni possibili sono quelle che puoi dare allo
script ./configure.
secondo me ogni volta e' necessario leggere la documentazione.
ciao
davide

 Porta vantaggi o e' solo una perdita di tempo?
credo che i vantaggi siano irrilevanti :-))
 
-- 
"We know Linux to be great...
 it ends infinite loops in 5 seconds only" - Linus Torvalds

 credo che i vantaggi siano irrilevanti :-))
Non su X o su programmi come GIMP..
-- 
il Vide - ICQ# 5301833
Togli OE per rispondermi
IAMM - it.arti.musica.metal 
IAMMol webzine: 
http://www.iammol.com

Porta vantaggi o e' solo una perdita di tempo?
Dipende dai sorgenti, credo. In un mio programma di test per calcoli
matriciali pesanti (C++), passare da -O a -O6 portava incrementi
prestazionali anche del 50%...
-- 
Ikitt

 -fexpensive-optimization(s)
Ecco si' erano questi!
Mi potresti inidicare la sintassi corretta per utiliazzare questi parametri,
ad esempio quando compilo il kernel?
E' possibile poi fare in modo che il compilatore usi sempre queste
ottimizzazioni (mi pare di avere letto da qualche parte che ci sono delle
variabili da cambiare in un file.. ma non ricordo altro)


variabili da cambiare in un file.. ma non ricordo altro)
E` senz'altro possibile, ma non e` sempre desiderabile.
Ad esempio -ffast-math disabilita tutta una serie di controlli sugli
argomenti delle funzioni matematiche che si portano via tempo, ma che si
disabilitati possono essere fonte di potenziali problemi o perdita di
precisione.
Se sei ancora dell'idea di farlo, non saprei darti indicazioni precise.
Credo occorra modificare il file di specs di gcc...
-- 
Ikitt che sta arrivando al limite delle sue conoscenze...

 non toccare nulla.
Ah ok..ve bene grazie mille lo stesso.
Era solo una curiosita'
:)


 superiore pena l'insorgenza di possibili malfunzionamenti...
?_?
E io che ho ricompilato il 2.2.20 con questo:
CFLAGS=-Wall -O6 -DARCH=k6 -DCPU=k6 -ffast-math -funroll-loops
-fomit-frame-pointer -fforce-mem -fforce-addr -malign-double
-fno-exceptions
Che culo che ho avuto, visto che tutto va alla perfezione... ;-)
-- 
 Ciao, Bianco.
 Reply to luca.bianco (at) 
tiscali.it

Che culo che ho avuto, visto che tutto va alla perfezione... ;-)
Allora forse ricordavo male io oppure ero poco aggiornato... 
Comunque che mi ricordi/che sappia quelle non sono i CFLAGS di default,
o no?
-- 
Ikitt

 o no?
No, per nulla :-) Li ho trovati non so dove, spacciati per la migliore
ottimizzazione per i K6: non so quanto corrisponda a verita`, ma provare
non mi costava niente ;-)


problemi, non e` una cosa sicura.
Si, giusto. Comincio anche a ricordare da dove veniva il "potrebbe".
In un "kernel News" di un vecchio Linux&C, si trattava del legame tra
GCC e kernel. In particolare si rimarcava come i kernel fossero scritti
(e ottimizzati) per un ben specificato range di versioni di GCC in
mente.
Se ad esempio si provava a compilare un kernel 2.0.x, se ben ricordo
tarato su GCC 2.7.2.y, con GCC 2.9*, insorgevano errori o veri e propri
bug (se ben ricordo si faceva un esempio con un controller SCSI e uno 
su SPARC...), di cui non c'era semplicemente traccia se si usava la
versione consigliata di GCC.
Il discorso delle ottimizzazioni eccessive invece non mi ricordo ancora
da dove veniva fuori... :\
--
Ikitt che ha bisogno di fosforo...