# [risolto]CFLAGS per P4

## kandalf

dopo tanto tempo torno a gentoo...vorrei un piacere...potete indicarmi delle buone CFLAGS per il pentium 4?

che vadano bene e siano veloci....grazie 1000

sto partendo dallo stage 1Last edited by kandalf on Tue Nov 16, 2004 9:41 pm; edited 1 time in total

----------

## fedeliallalinea

-O2 march=i686 -pipe -fomit-frame-pointer . Secondo me non c'e' di meglio di queste

----------

## kandalf

grazie mille!

metterci a march=pentium4 nn conviene?

----------

## polyacryl

Hi,

uhm, I can't speak italian, but maybe..

```
CHOST="i686-pc-linux-gnu"

CFLAGS="-O3 -march=pentium4 -mtune=pentium4 -fomit-frame-pointer -pipe -mfpmath=sse -msse -msse2 -mmmx -m3dnow"

CXXFLAGS="${CFLAGS}"
```

This is for stage 1.. and i never had any problems with it. Ah, and "-mtune=pentium4" works only with "gcc 3.4". I think...

greetings.. :)

----------

## kandalf

ok grazie ancora...sono partito col boostrap

----------

## lavish

 *fedeliallalinea wrote:*   

> -O2 march=i686 -pipe -fomit-frame-pointer . Secondo me non c'e' di meglio di queste

 

i686 per p4?   :Shocked:   non c'e' anche -march=pentium4 scusa?!

----------

## fedeliallalinea

 *lavish wrote:*   

> i686 per p4?    non c'e' anche -march=pentium4 scusa?!

 

Si ma non cambia nulla anzi quel giorno che devi fare dei bianri poi sei incasinato perche' uno pentium4 l'altro athlon,...

----------

## Nemesix2001

forse ha scelto i686 per stabilità?..non lo so io ho queste

CFLAGS="-O3 -march=pentium4 -fomit-frame-pointer -pipe"

devo dire che non le ho trovate instabili...però non so se le prestazioni rispetto a le flags di fedeliallalinea migliorino significativamente o addirittura in senso assoluto...da qualce paret c'era una pagina con dei benchmark

Ciao ciao

----------

## lavish

 *polyacryl wrote:*   

> Hi,
> 
> uhm, I can't speak italian, but maybe..
> 
> ```
> ...

 

I cannot see any sense using -march with -mtune

from http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/i386-and-x86_002d64-Options.html#i386-and-x86_002d64-Options:

-mtune=cpu-type

Tune to cpu-type everything applicable about the generated code, except for the ABI and the set of available instructions. 

[...]

While picking a specific cpu-type will schedule things appropriately for that particular chip, the compiler will not generate any code that does not run on the i386 without the -march=cpu-type option being used. 

-march=cpu-type

Generate instructions for the machine type cpu-type. The choices for cpu-type are the same as for -mtune. Moreover, specifying -march=cpu-type implies -mtune=cpu-type.

----------

## lavish

 *fedeliallalinea wrote:*   

>  *lavish wrote:*   i686 per p4?    non c'e' anche -march=pentium4 scusa?! 
> 
> Si ma non cambia nulla anzi quel giorno che devi fare dei bianri poi sei incasinato perche' uno pentium4 l'altro athlon,...

 

Non penso arrivera' mai quel giorno  :Razz:  cmq io sono su amd64 e ho il mio bello -march=athlon64 con gcc3.4 (prestazioni migliorate un casino dai test fatti con nbench rispetto al gcc3.3 che non supportava direttamente l'arch amd64)

----------

## fedeliallalinea

 *lavish wrote:*   

> Non penso arrivera' mai quel giorno  

 

Ma quando un pacchetto non si installa su una macchina tornano utili

----------

## kandalf

checking for gawk... gawk

checking whether make sets $(MAKE)... yes

checking for i686-pc-linux-gnu-strip... no

checking for strip... strip

checking for i686-pc-linux-gnu-gcc... gcc

checking for C compiler default output... configure: error: C compiler cannot create executables

See `config.log' for more details.

configure: error: /bin/sh './configure' failed for autoconf-lib-link

!!! ERROR: sys-devel/gettext-0.12.1-r2 failed.

!!! Function econf, Line 449, Exitcode 1

!!! econf failed

!!! If you need support, post the topmost build error, NOT this status message.

!? :Sad: 

----------

## fedeliallalinea

Posta le tue cflags (facendo un copia incolla)

----------

## kandalf

prima avevo provato le tue fedeli

ora ho provato così

CFLAGS="-march=pentium4 -O3 -pipe" 

e sembra andare....vanno bene lo stesso?

----------

## fedeliallalinea

Ma adesso va ho ti da quell'errore?

----------

## kandalf

gettext lo ha superato....

ma vanno bene?

----------

## fedeliallalinea

 *kandalf wrote:*   

> ma vanno bene?

 

Si si benissimo.

----------

## kandalf

 :Very Happy: 

----------

## fedeliallalinea

Metti il tag [risolto] al titolo

----------

## polyacryl

 *lavish wrote:*   

> -march=cpu-type
> 
> Generate instructions for the machine type cpu-type. The choices for cpu-type are the same as for -mtune. Moreover, specifying -march=cpu-type implies -mtune=cpu-type.

 

Oh, i see, thank you, interesting.. so, eerm, when i use "-march=..", "-mtune=.." is unnecessary.. good to know.. :)

----------

## CarloJekko

premetto di avere UN PIV 2.4 

ho impostato queste cflags sul make.conf

CFLAGS="-O2 -march=pentium4 -fomit-frame-pointer"

ora cercando ho visto che il sistema è stabile anche con queste Flags 

CFLAGS="-march=pentium4 -mtune=pentium4 -O3 -pipe -fforce-addr -falign-functions=4 -fprefetch-loop-arrays -fomit-frame-pointer" 

che fanno usare meglio le flags del mio processore...

Ora la domanda che mi sorge è questa : esistono flags che non rendono instabile il sistema, e soprattutto che fanno valere la pena di ricompilare il sistema da zero (cioè che rendono effettivamente più veloce tutto l'avvio del sistema) ?

Aprrezzerò qualsiasi commento grazie...

----------

## lavish

Se ne è parlato non tanto.... di più...  potevi fare una ricerca sul forum e se avevi ancora qualche dubbio postare un un thread già aperto.

----------

## gutter

Fatto il merge del thread di CarloJekko.

Per favore facciamola una ricerca prima di postare e come suggerito da lavish in caso di risultato positivo usiamo uno dei thread trovati.

----------

## CarloJekko

Scusate... ho appena qualche settiamna... stò imparando...

----------

## Cazzantonio

@CarloJekko

la scelta delle cflags è spesso una cosa religiosa e capita che delle ottimizzazioni generiche come quelle sugerite da fedeliallalinea siano altrettanto performanti (per quanto riguarda la percezione dell'utente) di ottimizzazioni più spinte....

tra le LDFLAGS abbiamo trovato recentemente un'ottima ottimizzazione che è 

```
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
```

 che pare velocizzare molto le applicazioni... ancora non è ben chiaro se sia un'ottimizzazione stabile o meno....

Approfitto del topic per fare una domanda che mi assilla da tempo....

specificare ad esempio march=athlon-xp e anche -mmmx, -msse, -m3dnow è utile? non è che le ultime tre ottimizzazioni sono già comprese nell'march ?

me lo domando da un sacco di tempo ma ancora non ho capito se siano ridondanti o meno (il man di gcc non è chiarissimo a riguardo....)

infine... se compilo tutto per i686 e non specifico -mmmx etc... ha senso mettere le use corrispondenti (mmx, sse, 3dnow) nel make.conf?

----------

## AlterX

Visto che ci troviamo...mi sa che devo rifare tutta la macchina  :Twisted Evil:   :Twisted Evil: 

che ne pensate:

 *Quote:*   

> 
> 
> CHOST="i686-pc-linux-gnu"
> 
> CFLAGS="-O3 -march=pentium4 -fomit-frame-pointer -pipe -mfpmath=sse -msse -msse2 -mmmx -m3dnow" 
> ...

 

Non so...secondo voi da stage1 dovrei incontrare problemi solo con le nptl???

C'è altro che potrei aggiungere per ottimizzare ulteriormente il p4 essendo un HT ????

----------

## Cazzantonio

io userei -O2 e magari specificerei -frename-registers (ti viene fuori un mezzo O3 ma con codice teoricamente più piccolo)

inoltre le 3dnow sono supportate dal pentium4? che ti dice cat /proc/cpuinfo?

infine specificare -mmx, -msse, etc. serve se hai già specificato -march?

----------

## AlterX

 *Cazzantonio wrote:*   

> io userei -O2 e magari specificerei -frename-registers (ti viene fuori un mezzo O3 ma con codice teoricamente più piccolo)
> 
> inoltre le 3dnow sono supportate dal pentium4? che ti dice cat /proc/cpuinfo?
> 
> infine specificare -mmx, -msse, etc. serve se hai già specificato -march?

 

uhm...ok forse hai ragione per -O2 

per le 3dnow devo controllare...

per l'ultima, non so, sul manuale gcc 3.3.5 le porta come in più all'opzione -march. non so che dirti

----------

## xchris

devo essere sincero...

questa di gentoo e' la cosa che mi interessa di meno in assoluto.

Sono l'unico?

e infatti io vado sempre di i686 -O2 -pipe in modo che poi posso preparare n macchine senza problemi.

(e ho spesso "spacciato" binari)

Tempo fa ero mediamente ottimizzato (poca roba si intende) e al passaggio a i686 non ho notato alcun decadimento di prestazioni.

Ho notato solo una stabilita' invidiabile  :Very Happy: 

va bhe... intervento inutile  :Very Happy: 

----------

## Cazzantonio

in parte condivido la tesi di xchris... in parte penso che se il mio processore mi consente delle ottimizzazioni allora perché non approfittarne...

non mi metterei mai a ricompilare il mondo per cambiare le cflags, ma se trovo una serie di cflags che mi consente di risparmiare anche un solo secondo all'avvio di un'applicazione perché non metterla nel make.conf?

non compilerò mai binari per altre macchine perché ho tutto in athlon-xp o superiori, perché mai dovrei usare ottimizzazioni per i686? per la fatica di scriverle nel make.conf?

----------

## AlterX

 *xchris wrote:*   

> devo essere sincero...
> 
> questa di gentoo e' la cosa che mi interessa di meno in assoluto.
> 
> Sono l'unico?
> ...

 

Il mio problema e che purtroppo come installazione, il make.conf presentava i386-gnu...

e solo -O2 senza -pipe...

Quindi, visto che non è molto, vorrei ottimizzarlo almeno per sfruttare a manetta il P4.

Per il resto concordo, effettivamente va bene anche con una configurazione standard...

----------

## ballero

 *polyacryl wrote:*   

> Hi,
> 
> uhm, I can't speak italian, but maybe..
> 
> ```
> ...

 

i much doubt there is any 3dnow support into p4 cpus

----------

## gutter

 *xchris wrote:*   

> 
> 
> va bhe... intervento inutile 

 

Hai espresso una opinione che in molti casi condivido  :Wink: 

----------

## ballero

 *xchris wrote:*   

> devo essere sincero...
> 
> questa di gentoo e' la cosa che mi interessa di meno in assoluto.
> 
> Sono l'unico?
> ...

 

Se si rinunciano ai punti di forza di Gentoo, tanto vale usare la Debian.

----------

## Cazzantonio

 *ballero wrote:*   

> Se si rinunciano ai punti di forza di Gentoo, tanto vale usare la Debian.

 

La compilazione non è a mio avviso un punto di forza di Gentoo... semmai è un male necessario  :Wink:  (per avere le USE...)

Secondo te i programmi che girano sotto Gentoo sono davvero più veloci di quelli sotto Debian o sotto Slack? Secondo me sono addirittura più veloci sotto Slack quindi figurati...  :Rolling Eyes: 

Semmai è il sistema di gestione dei pacchetti e il livello di personalizzazione raggiungibile che rappresentano i punti di forza di Gentoo...  :Smile: 

----------

## gutter

 *ballero wrote:*   

> 
> 
> Se si rinunciano ai punti di forza di Gentoo, tanto vale usare la Debian.

 

Penso che questa affermazione sia un poco azzardata  :Wink: 

"Uno" dei punti di forza di gentoo è sicuramente la possibilità di ottimizzare il codice, ma non credo sia l'unico motivo per cui tale distribuzione sia da considerare una ottima scelta. 

Un buon motivo sono ad esempio le USE che ti permettono a compile time di scegliere o no alcune funzionalità dei pacchetti o gli slot che ti permettono di avere installate versione diverse di sw.

----------

## fedeliallalinea

 *gutter wrote:*   

>  *ballero wrote:*   
> 
> Se si rinunciano ai punti di forza di Gentoo, tanto vale usare la Debian. 
> 
> Penso che questa affermazione sia un poco azzardata  

 

Si lo credo anche io. Gentoo ha molti (e sono gli altri che mi fanno restare) punti di forza

----------

## xchris

 *Cazzantonio wrote:*   

> 
> 
> non compilerò mai binari per altre macchine perché ho tutto in athlon-xp o superiori, perché mai dovrei usare ottimizzazioni per i686? per la fatica di scriverle nel make.conf?

 

ma io sono generoso e penso anche agli amici del bar (forum)  :Laughing: 

quello che amo di gentoo e' portage in generale e la sua grande flessibilita' (USE ad es) non CFLAGS &co.

secondo me un buon 40% di user gentoo va + lento proprio grazie a queste ottimizzazioni spinte (spesso errate)

IMHO

ciao

----------

## neryo

 *Cazzantonio wrote:*   

> @CarloJekko
> 
> la scelta delle cflags è spesso una cosa religiosa e capita che delle ottimizzazioni generiche come quelle sugerite da fedeliallalinea siano altrettanto performanti (per quanto riguarda la percezione dell'utente) di ottimizzazioni più spinte....
> 
> 

 

Qui ci sono delle cflag safe.. io di solito non mi spingo oltre.. tanto i miglioramenti sono cmq poco percettibili e a volte compromettono la stabilità del sistema!

http://linuxreviews.org/howtos/compiling/safe-cflags/

----------

## CarloJekko

grazie... ho visto che l'unica cosa diversa dalle mie flags è -03 ed io tengo -02; non sò cosa sia ma non credo vale la pena ricompilare tutto per un tre al posto di un due  :Laughing: 

----------

## Cazzantonio

 *xchris wrote:*   

> secondo me un buon 40% di user gentoo va + lento proprio grazie a queste ottimizzazioni spinte (spesso errate)

 

Infatti vedo che con altre distro precompilate alcuni programmi girano addirittura più veloci  :Rolling Eyes:   :Wink: 

Penso che ogni programma andrebbe compilato con delle flag specifiche (e magari la persona che può indicare quali è spesso il developer...). Spesso i precompilati sono compilati a modino meglio delle ottimizzazioni generiche gentoo  :Wink:  ovviamente le lentezze di compilazione e i disagi vari ed eventuali sono dei mali che sopporto tranquillamente in cambio dei vantaggi di portage  :Smile:  (continuo a dire che, già che ci siamo, mettere anche delle ottimizzazioni specifiche non guasta, anche se ovviamente non cambierà chissà che...)

----------

