[PLUTO-help] Aiuto! Errore di compilazione durante installazione gentoo

Gian Uberto Lauri GianUberto.Lauri a eng.it
Ven 5 Nov 2004 14:48:09 CET


>>>>> "AR" == Alessandro R <alexerre a yahoo.it> writes:

AR> On Fri, Nov 05, 2004 at 09:15:46AM +0100, Stefano Vedovelli wrote:
>> Comunque, io personalmente sono sempre partito dagli stage 3, dato che
>> considero la vera forza di Gentoo non tanto nell'ottimizzazione, ma
>> nell'aggiornabilità del sistema.

AR> Concordo anche io con questo. A meno che tu nn abbia una macchina
AR> veramente veloce.

Io invece non concordo. La forza di Gentoo non e` nell'aggiornabilita`
che  non  credo  sia  poi  tanto  migliore di  quella  di  Debian,  ma
nell'avere i programmi ricompilati  per la tua architettura invece che
per  un generico  386. Gia`  solo  a sapere  che il  processore e`  un
Pentium il  GCC sa fare  dei riordini delle istruzioni  che accelerano
l'esecuzione.

Tornando al discorso iniziale  dell'ottimizzazione e del fatto che -O3
possa inserire  problemi ecco cosa dice la  documentazione (almeno per
la 2.95, dovreste controllare i file info se ne avete un'altra):

`-O'
`-O1'
     Optimize.  Optimizing compilation takes somewhat more time, and a
     lot more memory for a large function.

     Without `-O', the compiler's goal is to reduce the cost of
     compilation and to make debugging produce the expected results.
     Statements are independent: if you stop the program with a
     breakpoint between statements, you can then assign a new value to
     any variable or change the program counter to any other statement
     in the function and get exactly the results you would expect from
     the source code.

     Without `-O', the compiler only allocates variables declared
     `register' in registers.  The resulting compiled code is a little
     worse than produced by PCC without `-O'.

     With `-O', the compiler tries to reduce code size and execution
     time.

     When you specify `-O', the compiler turns on `-fthread-jumps' and
     `-fdefer-pop' on all machines.  The compiler turns on
     `-fdelayed-branch' on machines that have delay slots, and
     `-fomit-frame-pointer' on machines that can support debugging even
     without a frame pointer.  On some machines the compiler also turns
     on other flags.

`-O2'
     Optimize even more.  GCC performs nearly all supported
     optimizations that do not involve a space-speed tradeoff.  The
     compiler does not perform loop unrolling or function inlining when
     you specify `-O2'.  As compared to `-O', this option increases
     both compilation time and the performance of the generated code.

     `-O2' turns on all optional optimizations except for loop
     unrolling, function inlining, and strict aliasing optimizations.
     It also turns on the `-fforce-mem' option on all machines and
     frame pointer elimination on machines where doing so does not
     interfere with debugging.

`-O3'
     Optimize yet more.  `-O3' turns on all optimizations specified by
     `-O2' and also turns on the `inline-functions' option.

Maggiori dettagli su cosa sono  le -f(opzione) si trovano nella stessa
pagina info ([manuale GCC]-> Invoking GCC -> Optimize Options) in modo
da capire cosa viene combinato al vostro codice.

Utile anche una lettura di [manuale GCC]->Passes.

Attenzione, se avete una ultimissima versione-sperimentale-bloody edge
con feature nuove di pallino  e` possibile che queste ultime non siano
perfette, ma -O3 la vedo in giro da alcuni anni e nella mia esperienza
-O2 e`  sicura da anni  per codice in  user space (per il  kernel puo`
essere  un'altro discorso)  e non  mi pare  che introduca  problemi di
thread safety nuovi  rispetto a quelli che gia`  ci possono essere nel
codice.

-- 
 /\            ___
/___/\__|_|\_|__|___Gian Uberto Lauri_____________________
  //--\ | | \|  |   Integralista GNUslamico e fancazzista 
\/




More information about the pluto-help mailing list