Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
CFLAGS... considerazioni.
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) Forum di discussione italiano
View previous topic :: View next topic  
Author Message
to.alex
n00b
n00b


Joined: 08 Apr 2007
Posts: 67

PostPosted: Thu Jun 07, 2007 9:54 pm    Post subject: CFLAGS... considerazioni. Reply with quote

Complice il recente aggiornamento di gcc, complice qualche lettura di troppo sull'argomento, ho voluto approfondire un pochino, in modo da avere anche io le mie personali convinzioni e opinioni sulle CFLAGS.

A questo punto però mi sono posto una domanda: il metodo attuale, con cui portage le gestisce, è il migliore?

Vi spiego il perché di questa domanda.

Ho impostato alcune CFLAGS per il mio sistema, basandomi sulla documentazione di GCC e in parte aiutandomi con ACOVEA, che però, alla fine della fiera (insomma dopo averlo provato e dopo aver letto quel po' di documentazione che è possibile reperire in giro) ho stabilito essere, per un sistema operativo, solo un buon "dizionario" di CFLAGS, con una discreta capacità di "beccare" qualche flag buon e qualche flag dannoso. Insomma è buono per il singolo applicativo, se di piccole dimensioni, dedicato al calcolo intensivo, e se si ha tanto tempo per provare. Per ottimizzare un sistema operativo non è certo il metodo migliore.
E da qui ho capito che ogni applicativo dovrebbe avere delle proprie CFLAGS, magari con dei meccanismi simili a quelli degli overlay o delle use flags.

Esempio. Fra le CFLAGS che ho impostato, inizialmente c'era -funroll-all-loops. lo so non è carino da farsi. Ma messa assieme alle altre, su alcune applicazioni (Hugin, tanto per citarne una su cui ho potuto fare delle misurazioni puntuali) riuscivo a guadagnare circa un 10% in prestazioni. In altre applicazioni, come ad esempio Open Office, sdl-gfx, thunderbird e alcune parti di KDE, invece questa flag (come è giusto che sia) impallava tutto, o non facendo terminare la compilazione, o compilando, ma creando problemi all'applicazione. Allora mi sono premurato di toglierla e guardando (grazie a genlop) le opzioni di compilazione dei pacchetti incriminati ho visto che queste venivano (vengono tutt'ora) in parte sovrascritte dall'ebuild. Ad esempio in OpenOffice, qualsiasi cosa si imposti, comunque verrà inserito un -O2. In altri applicativi addirittura vengono totalmente ignorate le CFLAG definite dall'utente e forzate dall'ebuild.

Ora, dato che sono più che cosciente del fatto, che se un ebuild forza delle CFLAG, avrà le sue buone ragioni, e che certe CFLAG vanno bene per alcuni software ma fanno danni su altri, come dicevo, stavo pensando: non sarebbe meglio avere un controllo più fine sulle CFLAG, così come lo si ha sulle USE flag? Magari pensando a dei meccanismi di overlay per far convivere CFLAG consigliate, raccomandate, obbligatorie, e impostate dall'utente?

Attendo con ansia, commenti, pareri, suggerimenti, link ad altra documentazione da leggere e ad altri post (che non sono riuscito a trovare) dove la discussione è già stata affrontata e risolta in maniera definitiva 3 anni fa (sono ironico :) ma capita spesso).

Ciao.
Back to top
View user's profile Send private message
skypjack
l33t
l33t


Joined: 05 Aug 2006
Posts: 884
Location: Italia - Firenze

PostPosted: Thu Jun 07, 2007 9:58 pm    Post subject: Reply with quote

La discussione potrebbe farsi interessante, ma domattina, ora ho troppo sonno... Scusa... :wink:
Back to top
View user's profile Send private message
Cazzantonio
Bodhisattva
Bodhisattva


Joined: 20 Mar 2004
Posts: 4514
Location: Somewere around the world

PostPosted: Thu Jun 07, 2007 10:35 pm    Post subject: Reply with quote

oppure fidarsi delle cflags impostate a forza dai pacchetti e limitarsi a mettere ad esempio (per un centrino)
Quote:
CFLAGS="-O2 -march=i686 -mmmx -msse -msse2 -fomit-frame-pointer -pipe"

Si potrebbero anche togliere -mmmx -msse -msse2 che servono al giusto...
Ci si risparmiano un sacco di grattacapi, tempo e salute e si ottiene un sistema indistinguibile da quello ottenuto altrimenti. Con tutto il tempo che si guadagna si va a lavorare, si guadagnano un sacco di soldi e ci si compra un pc più potente che ci porta vantaggi prestazionali che non avremmo mai immaginato con le CFLAGS.
Io preferisco tuttavia usare il tempo risparmiato per fare i cavoli miei visto che non spenderei il mio tempo libero per un pc più potente :wink:
_________________
Any mans death diminishes me, because I am involved in Mankinde; and therefore never send to know for whom the bell tolls; It tolls for thee.
-John Donne
Back to top
View user's profile Send private message
to.alex
n00b
n00b


Joined: 08 Apr 2007
Posts: 67

PostPosted: Thu Jun 07, 2007 10:48 pm    Post subject: Reply with quote

Beh, si ok, ma stiamo o no usando Gentoo? Mica lo faccio (solo) per le prestazioni.

Soprattutto lo faccio per conoscere e imparare cose nuove.

Poi in realtà fino all'altro giorno giravo con "-march=athlon-xp -mtune=athlon-xp -pipe -O3 -fomit-frame-pointer" felice e contento come nulla fosse. Però Gentoo mi piace perché ti spinge a conoscere e a creare il tuo sistema (ma sei sempre libero di scegliere le opzioni di base). Un ulteriore grado di libertà, non lo vedrei negativamente.

Certo potrebbe diventare una tragedia per gli sviluppatori, che potrebbero vedersi segnalati bug, che dipendono esclusivamente dalle cflag usate dagli utenti, ma quando questo non porterebbe ad avere del codice migliore, potrebbe comunque portare delle cflag consigliate o obbligatorie (non sovrascrivibili), come in parte già accade, ma senza che l'utente abbia voce in capitolo.

Comunque adesso crollo dal sonno anch'io, ed è quindi bene che vada a fare le ninne.

'notte.
Back to top
View user's profile Send private message
Onip
Advocate
Advocate


Joined: 02 Sep 2004
Posts: 2912
Location: Parma (Italy)

PostPosted: Fri Jun 08, 2007 7:39 am    Post subject: Reply with quote

c'è già bashrc-ng che ti permette di impostare cflags specifiche per ogni pacchetto. se cerchi sul forum documentazione italiano trovi il post.
_________________
Linux Registered User n. 373835

Titus Lucretius Carus, De Rerum Natura - Tantum religio potuit suadere malorum
Back to top
View user's profile Send private message
Scen
Retired Dev
Retired Dev


Joined: 29 Jul 2003
Posts: 2470
Location: Padova, Italy

PostPosted: Fri Jun 08, 2007 7:41 am    Post subject: Re: CFLAGS... considerazioni. Reply with quote

to.alex wrote:
CInsomma è buono per il singolo applicativo, se di piccole dimensioni, dedicato al calcolo intensivo, e se si ha tanto tempo per provare. Per ottimizzare un sistema operativo non è certo il metodo migliore.
E da qui ho capito che ogni applicativo dovrebbe avere delle proprie CFLAGS, magari con dei meccanismi simili a quelli degli overlay o delle use flags.

Per me il nocciolo della questione è proprio questo.

Ok, con Gentoo puoi impostare delle CFLAGS globali disumane e compilarti tutto il sistema, con le conseguenze che tutti noi conosciamo :roll:

Altrimenti, imposti delle CFLAGS di base "sicure" e poi gestisci i casi particolari pacchetto per pacchetto.

Questa seconda cosa (gestibile senza grossi problemi con vari trucchi o strumenti "esterni"), purtroppo, non è ancora gestita in modo "trasparente" da Portage in quanto, come hai detto tu
to.alex wrote:

Certo potrebbe diventare una tragedia per gli sviluppatori, che potrebbero vedersi segnalati bug, che dipendono esclusivamente dalle cflag usate dagli utenti,
.
_________________
I was born in a deep forest/I wish I could live here all my life/I am made from stones and roots/My home, these woods and roads
All my life I loved this sound/Of the woods all around/Eagles flies where the winds blows free
Journey is my destiny
Back to top
View user's profile Send private message
Dece
Apprentice
Apprentice


Joined: 23 Nov 2004
Posts: 291
Location: Bologna/Rimini Italy

PostPosted: Fri Jun 08, 2007 8:15 am    Post subject: Re: CFLAGS... considerazioni. Reply with quote

to.alex wrote:
non sarebbe meglio avere un controllo più fine sulle CFLAG, così come lo si ha sulle USE flag? Magari pensando a dei meccanismi di overlay per far convivere CFLAG consigliate, raccomandate, obbligatorie, e impostate dall'utente?

Quando si usa gentoo, è facile entrare in un periodo durante il quale viene voglia di provare le più svariate CFLAGS e vedere come vanno: l'importante è che alla fine si capisca che la vera potenza di gentoo non sta nello scovare CFLAGS stra-ottimizzate, ma nella sua flessibilità che consente ad ogni utente di crearsi e gestirsi un sistema come meglio gli aggrada :wink:

In parole povere, il gioco di ottimizzare le CFLAG non vale la candela (imho, ma anche secondo molti): già il fatto di ottimizzare con -march è un notevole passo avanti rispetto ad altre distro.

Personalizzare le CFLAG per pacchetto invece è utile per motivi particolari: ad esempio un tale pacchetto che compila solo con la tale flag, o senza un'altra... ma questo volendo si può già fare

Ciao
_________________
http://www.last.fm/user/Dece/
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) Forum di discussione italiano 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