PDA

View Full Version : Flags di ottimizzazione su VLC e mplayer


Axl_Mas
24-01-2011, 00:46
Cercando in rete ho trovato che i flags di ottimizzazioni corretti per il mio processore sono questi :
CHOST="x86_64-pc-linux-gnu"
CFLAGS="-march=core2 -mtune=generic -O2 -pipe"
CXXFLAGS="${CFLAGS}"

Ma come faccio a far usare questi flag nella compilazione di vlc, e di mplayer?

Dane
24-01-2011, 10:40
mtune lo potresti anche togliere. Dovrebbe essere incluso in march. Tuttavia puoi lasciare mtune se prevedi di voler distribuire i binari anche su altro hardware a 64 bit.

Comunque quelle flag servono a compilare i binari ottimizzandoli per girare sul tuo processore, a partire dai sorgenti "generici". Quindi in quel modo indichi di ottimizzare al compilatore.

A memoria vlc e mplayer hanno altre opzioni per ottimizzare. Sia quelle a livello di compilazione (aggiungi opzioni durante la compilazione che attivano del codice sorgente specifico per il tuo hardware) che a runtime (vai nelle opzioni del tuo sw e abiliti in base all'hardware che hai).

Hai capito i tre livelli di ottimizzazione che puoi avere?

Axl_Mas
24-01-2011, 14:00
A memoria vlc e mplayer hanno altre opzioni per ottimizzare. Sia quelle a livello di compilazione (aggiungi opzioni durante la compilazione che attivano del codice sorgente specifico per il tuo hardware) che a runtime (vai nelle opzioni del tuo sw e abiliti in base all'hardware che hai).

Hai capito i tre livelli di ottimizzazione che puoi avere?

Comprendo ed uso il livello di compilazione a livello di compilazione (le opzioni da aggiungere al ./configure per esempio "--enable-optimize" ecc ecc).
Capisco le ottimizzazioni a livello runtime (come per esempio vado ad attivare o disattivare le SSE3 ecc ecc dalla gui del programma) ma...

...non ho capito dove devo inserire -march=core2 -O2 -pipe!!!

Se le metto dopo il comando ./configure mi da errore...
Devo editare qualche file dei sorgenti del programma o devo inserirle dentro qualche file di configurazione di gcc?

Dane
24-01-2011, 14:12
quelle sono variabili che andrebbero date in pasto a gcc.
Forse trovi qualcosa nel file di configurazione del make (non ho mai compilato a mano, non ne ho idea).

Non è che hai trovato quei parametri tra qualche wiki/guida gentoo?

Perchè se è per gentoo quelle variabili vanno messe in etc/make.conf e valgono generalmente per tutto il software che compili. Se è il caso di cambiarle o disattivarle ci si regola in vari modi: o te le gestisci tu per pacchetto, oppure le gestisce il mantainer dell'ebuild (capita più di qualche volta che un pacchetto non si compila a causa di quelle flag).

Axl_Mas
24-01-2011, 14:37
quelle sono variabili che andrebbero date in pasto a gcc.
Forse trovi qualcosa nel file di configurazione del make (non ho mai compilato a mano, non ne ho idea).

Non è che hai trovato quei parametri tra qualche wiki/guida gentoo?

Perchè se è per gentoo quelle variabili vanno messe in etc/make.conf e valgono generalmente per tutto il software che compili. Se è il caso di cambiarle o disattivarle ci si regola in vari modi: o te le gestisci tu per pacchetto, oppure le gestisce il mantainer dell'ebuild (capita più di qualche volta che un pacchetto non si compila a causa di quelle flag).

Si i parametri li ho presi da uno wiki gentoo. Nella mia ubuntu 10.10 il file make.conf non c'è ne in /etc ne in nessun'altra directory :(

Dane
24-01-2011, 17:58
ma se cerchi cflags nel makefile non trovi nulla?

Axl_Mas
24-01-2011, 19:55
Ce l'ho fatta!!!!
Descrivo la procedura, magari potrà essere utile per qualcun'altro!

Mplayer:
basta mettere CFLAGS davanti al configure

$ CFLAGS="-march=core2 -O2 -pipe" ./configure

(volendo si possono aggiungere al ./configure le opzioni che si vogliono tipo --disable-debug ecc ecc)

VLC:
si fa partire il ./configure normalmente
dopo si va ad editare il file "vlc-config" che è creato dal configure nella directory dei sorgenti e si modifica i cflags a piacimento
esempio:
cflags_tuning="-mtune=core2"
cflags_optim_speed=" -O2 -pipe"

dopo si da make e make install come al solito!


Grazie del supporto!!!