Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[risolto] cflags dubbio su parametro
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian)
View previous topic :: View next topic  
Author Message
polslinux
Apprentice
Apprentice


Joined: 12 Apr 2010
Posts: 253
Location: Veneto

PostPosted: Tue May 04, 2010 6:40 pm    Post subject: [risolto] cflags dubbio su parametro Reply with quote

una cosa...ho un dubbio...
Code:
gcc -march=native -E -v - </dev/null 2>&1 | sed -n 's/.* -v - //p'

mi restituisce:
Code:
-D_FORTIFY_SOURCE=2 -march=core2 -mcx16 -msahf --param l1-cache-size=32 --param l1-cache-line-size=64 -mtune=core2


quindi nella riga cflags devo mettere tutta quella roba li giusto? compreso il D_FORTIFY ecc??? è un parametro che non ho mai sentito...


Last edited by polslinux on Wed May 05, 2010 8:20 pm; edited 1 time in total
Back to top
View user's profile Send private message
armaoin
Tux's lil' helper
Tux's lil' helper


Joined: 02 Apr 2006
Posts: 110

PostPosted: Tue May 04, 2010 8:41 pm    Post subject: Reply with quote

No no.
Quel comando serve per vedere quale -march devi mettere in questo caso core2.
Personalmente avrei fatto come ti hanno consigliato mettendo -march=native.
Inoltre metti le varie ottimizzazioni.
Qualcosa del tipo:
Code:

CFLAGS="-O2 -pipe -march=native"
CXXFLAGS="${CFLAGS}"
Back to top
View user's profile Send private message
polslinux
Apprentice
Apprentice


Joined: 12 Apr 2010
Posts: 253
Location: Veneto

PostPosted: Wed May 05, 2010 12:24 pm    Post subject: Reply with quote

ahhh ok...quindi se io metto:
Code:
-narch=native


tutte queste opzioni:
Code:
-D_FORTIFY_SOURCE=2 -march=core2 -mcx16 -msahf --param l1-cache-size=32 --param l1-cache-line-size=64 -mtune=core2

sono già incluse in native e quindi non le devo scrivere giusto?
Back to top
View user's profile Send private message
djinnZ
Advocate
Advocate


Joined: 02 Nov 2006
Posts: 4831
Location: somewhere in L.O.S.

PostPosted: Wed May 05, 2010 2:20 pm    Post subject: Reply with quote

no, -D_FORTIFY_SOURCE=2 per esempio è di default del gcc le altre sono implicite al native (o sono ridondanti come mtune uguale a march).
In generale: se usi una macchina per compilare anche per altre o se vuoi portare in giro pacchetti binari native è una gigantesca idiozia, negli altri casi è una comodità.
Attenzione che alcune flag non vengono filtrate dagli ebuild.

"-O2 -march=core2 -fomit-frame-pointers -pipe" e "-Wl, -O1 -Wl, --as-needed" ottengono un risultato milgiore (in attesa che diventino di default, per --as-needed dovremmo esserci ormai).

Attenzione ad opzioni come -mshaf, su alcuni celeron o sempron sono presenti alcune istruzioni di questo set ma non tutte ed i risultati potrebbero lasciare a desiderare.
_________________
scita et risus abundant in ore stultorum sed etiam semper severi insani sunt:wink:
mala tempora currunt...mater stultorum semper pregna est :evil:
Murpy'sLaw:If anything can go wrong, it will - O'Toole's Corollary:Murphy was an optimist :wink:
Back to top
View user's profile Send private message
polslinux
Apprentice
Apprentice


Joined: 12 Apr 2010
Posts: 253
Location: Veneto

PostPosted: Wed May 05, 2010 7:00 pm    Post subject: Reply with quote

ok, grazie mille dell'esaustiva risposta :)
una cosa...tu hai scritto:
Code:
"-O2 -march=core2 -fomit-frame-pointers -pipe" e "-Wl, -O1 -Wl, --as-needed"

ma non si possono mettere -02 e -01 insieme vero :?: :?:
Comunque, praticamente la CFLAGS viene fuori così giusto?:
Code:
"-O2 -march=core2 -fomit-frame-pointers -pipe -Wl --as-needed"
Back to top
View user's profile Send private message
djinnZ
Advocate
Advocate


Joined: 02 Nov 2006
Posts: 4831
Location: somewhere in L.O.S.

PostPosted: Wed May 05, 2010 8:10 pm    Post subject: Reply with quote

le seconde sono LDFLAGS (istruzioni per il linker non vanno mai messe nelle cflags).
Quindi o scrivi (documentati e verifica che sto andando a memoria)
Code:
CFLAGS="-O2 -march=core2 -fomit-frame-pointers -pipe"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"

o
Code:
CFLAGS="-O2 -march=native -fomit-frame-pointers -pipe"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"

Se pensi di creare pacchetti binari e gestire macchine differenti meglio la prima (così sai per cosa hai compilato un pacchetto), se hai solo un pc tanto vale usare direttamente la seconda.
Per me avere pieno controllo è meglio e quindi "native" é solo fonte di guai e limita molto ma sono opinioni personali.
Per esempio c'era un utente del forum che usava -march=i686 -mtune=athlon-xp (o qualcosa del genere). Cosa comporta una simile scelta? Il codice è ottimizzato nei limiti del possibile per athlon-xp ma gira senza alcun problema su tutte le cpu i686 e successive.
Eccellente soluzione per condividere il codice in un parco macchine eterogeneo ma per un singolo pc è solo meno ottimizzato.
_________________
scita et risus abundant in ore stultorum sed etiam semper severi insani sunt:wink:
mala tempora currunt...mater stultorum semper pregna est :evil:
Murpy'sLaw:If anything can go wrong, it will - O'Toole's Corollary:Murphy was an optimist :wink:
Back to top
View user's profile Send private message
polslinux
Apprentice
Apprentice


Joined: 12 Apr 2010
Posts: 253
Location: Veneto

PostPosted: Wed May 05, 2010 8:21 pm    Post subject: Reply with quote

djinnZ wrote:
le seconde sono LDFLAGS (istruzioni per il linker non vanno mai messe nelle cflags).
Quindi o scrivi (documentati e verifica che sto andando a memoria)
Code:
CFLAGS="-O2 -march=core2 -fomit-frame-pointers -pipe"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"

o
Code:
CFLAGS="-O2 -march=native -fomit-frame-pointers -pipe"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"

Se pensi di creare pacchetti binari e gestire macchine differenti meglio la prima (così sai per cosa hai compilato un pacchetto), se hai solo un pc tanto vale usare direttamente la seconda.
Per me avere pieno controllo è meglio e quindi "native" é solo fonte di guai e limita molto ma sono opinioni personali.
Per esempio c'era un utente del forum che usava -march=i686 -mtune=athlon-xp (o qualcosa del genere). Cosa comporta una simile scelta? Il codice è ottimizzato nei limiti del possibile per athlon-xp ma gira senza alcun problema su tutte le cpu i686 e successive.
Eccellente soluzione per condividere il codice in un parco macchine eterogeneo ma per un singolo pc è solo meno ottimizzato.


ok, grazie mille dell'aiuto!
Mi sono informato e si, le LDFLAGS dette da te vanno benissimo :)
Grazie ancora!
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum