# gcc 4.1.0 vs gcc 3.4.5 (ultima release 3.4 definitiva)

## power83

che ne pensate?

La 3.4.5 e' stata la ultima 3.4 sviluppata, quindi e' imminente la migrazione alla 4.x.x, e sul sito gcc.gnu.org la 4.1.0 e' data completamente stable. Qualcuno di voi la sta gia' usando? Avete avuto problemi? I miglioramenti sono netti come velocita' degli eseguibili e tempo di compilazione?

----------

## SilverXXX

Io avevo pensato di metterlo...... ma speravo qualcuno lo avesse fatto per vedere come si trovava  :Twisted Evil: 

----------

## .:chrome:.

ci sono alcuni problemi da superare, comeil fatto che molte applicazioni non compilano (parlando di ARCH=x86).

il codice attuale va adattato al nuovo compilatore. l'ideale sarebbe forse riscrivere, ma questa è ovviamente una strada non praticabile.

quello che da veramente problemi è quasi sempre il codice C++, dove effettivamente ci sono stati i cambiamenti (a livello di compilatore) e nel quale sbucano gli errori più disparati.

spesso basta passare alla revisione appena successiva del pacchetto per risolvere la questione, nel senso che gli stessi sviluppatori del pacchetto originale stanno lavorando al porting verso GCC-4.x

la cosa più curiosa che mi è capitato di vedere è la compilazione di hal, che entra in un ciclo infinito (e la cosa succede solo con GCC-4.x)

in sostanza il problema non è capire se funziona o no, perché lui funzionerebbe anche bene... ma capire se tutto il software si compila, e questo non è semplice, perché bisogna testare tutti i pacchetti uno per uno.

quando questo lavoro sarà ultimato, allora potrà uscire dallo stato di experimental, ma non credo che avverrà presto

----------

## SilverXXX

Eppure emergendo con pacchetti in ~x86 vedo spesso applicare patch per gcc4

----------

## .:chrome:.

 *SilverXXX wrote:*   

> Eppure emergendo con pacchetti in ~x86 vedo spesso applicare patch per gcc4

 

appunto. stanno adattando il codice  :Smile: 

----------

## SilverXXX

Beh, i pacchetti che hanno patch ormai sono un numero considerevole. Se si pensa che una aprte degli altri "PROBABILMENTE" va senza.... su macchine di test si pùo provare  :Twisted Evil: 

----------

## .:chrome:.

 *SilverXXX wrote:*   

> Beh, i pacchetti che hanno patch ormai sono un numero considerevole. Se si pensa che una aprte degli altri "PROBABILMENTE" va senza.... su macchine di test si pùo provare 

 

infatti la macchina che sto usando adesso è, credo, la cosa più "sperimentosa" che abbia. ho installato di tutto!!!

per funzionare va... quando quei pacchetti passweranno da testing a stable, penso che inizieranno a togliere GCC dal mask

----------

## SilverXXX

Sai per caso dirmi come si comporta con i vari pacchetti gnome?

----------

## .:chrome:.

 *SilverXXX wrote:*   

> Sai per caso dirmi come si comporta con i vari pacchetti gnome?

 

GNOME-2.12 compila tutto correttamente.

ho cercato di impegnarmi al massimo ma non ho visto nessuno dei leggendari incrementi di velocità del 600% di cui tanto si vocifera (come volevasi dimostrare)

GNOME-2.14 non l'ho ancora provato, ma lo farò senz'altro. non ora però: adesso non è assolutamente il momento, perché non è ancora stato testato dalla comunità e perché in portage non è ancora arrivato tutto. mancano ancora pareccih componenti, e ci sono dei pacchetti fermi alla versione 2.13

credo che lo installerò quando inizieranno ad includere la versione 2.14.1 (comunque molto prima che esca dal mask  :Wink:  )

----------

## TheArbiter

Io è da un pezzo che provo il gcc 4.0.x per ora (e sottolineo per ora) sembra andare tutto bene. Ho avuto solo qualche problema con la xine-lib (in particolare un pezzo di codice con ottimizzazioni in assembler) ma era solo un problema di CFLAGS (-Os dava problemi). Ho tutto il sistema compilato con gcc 4 e a parte alcuni pacchetti (tipo qemu e kqemu che sembrano compilare solo con gcc3) sono a posto. Kde compila, gnome compila, il sistema di base compila... insomma sono soddisfatto. Fra qualche giorno proverò a mettere gcc 4.1 (incrocio le dita  :Wink:  )Last edited by TheArbiter on Mon Mar 20, 2006 2:42 pm; edited 1 time in total

----------

## SilverXXX

Aspettiamo trepidanti le prove di gcc-4.1.0

----------

## Luca89

Secondo me non vale la pena usare gcc non stabile, i miglioramenti di velocità sono minimi. Di contro però vai incontro a rischi molto seri. Personalmente non uso e sconsiglio sempre di usare versioni non stabili di pacchetti così importanti.

----------

## Sasdo

Domanda da ignorante: perchè non dovrebbe compilare?

Mi spiego: il codice C è sempre quello, il C++ anche (che io sappia!) per cui se il linguaggio non è cambiato, perchè un compilatore non dovrebbe compilare?

Cioè, se devo adattare il mio codice in standard C per farlo compilare con un determinato compilatore, allora quello imho non è un buon compilatore!

Non so se sono stato spiegato =)

Potreste illuminarmi?

Grazie,

Ciao

il Sasdo

----------

## Dr.Dran

Domanda un pò critica, differenze di prestazioni dei binari compilate da una versione e dall'altra?

Avete dei numeri?

Ciauz  :Very Happy: 

P.S. Concordo con quello detto da Luca89

----------

## SilverXXX

 *Sasdo wrote:*   

> Domanda da ignorante: perchè non dovrebbe compilare?
> 
> Mi spiego: il codice C è sempre quello, il C++ anche (che io sappia!) per cui se il linguaggio non è cambiato, perchè un compilatore non dovrebbe compilare?
> 
> Cioè, se devo adattare il mio codice in standard C per farlo compilare con un determinato compilatore, allora quello imho non è un buon compilatore!
> ...

 

In teoria dovresti anche avere ragione..... in pratica è più complesso.

----------

## .:chrome:.

 *SilverXXX wrote:*   

> Aspettiamo trepidanti le prove di gcc-4.1.0

 

le prove che ho fatto io le ho fatte tutte solo con il 4.1.0, perché il 4.0 non è sufficientemente stabile

 *Luca89 wrote:*   

> Secondo me non vale la pena usare gcc non stabile, i miglioramenti di velocità sono minimi. Di contro però vai incontro a rischi molto seri. Personalmente non uso e sconsiglio sempre di usare versioni non stabili di pacchetti così importanti.

 

pienamente d'accordo, alla luce dell'esperienza fatta. direi anzi che i miglioramenti in fatto di velocità sono pressoché nulli.

l'unico incremento in velocità che ho notato e misurato è nel tempo di compilazione, non certo di esecuzione

 *Sasdo wrote:*   

> Domanda da ignorante: perchè non dovrebbe compilare?
> 
> Mi spiego: il codice C è sempre quello, il C++ anche (che io sappia!) per cui se il linguaggio non è cambiato, perchè un compilatore non dovrebbe compilare?
> 
> Cioè, se devo adattare il mio codice in standard C per farlo compilare con un determinato compilatore, allora quello imho non è un buon compilatore!

 

prima di tutto ricordati che esistono molti "dialetti" del linguaggio C, e non è per niente detto che tutti debbano essere implementati e considerati validi da parte del compilatore.

poi possono eserci dei costrutti dichiarati deprecati o addirittura non più validi tra una major release e l'altra

----------

## power83

Domanda ancora + furba: gcc 4.1.0 e' rilasciato da gcc.gnu.org stabilissimo, indi x cui che si muovano a fare le pacthes i Gentoo Developer....  :Rolling Eyes:   :Laughing: 

----------

## fejfbo

Siccome, come è stato detto, devono essere controllati/sistemati tutti gli ebuild, non è un'operazione da mezz'ora.

Sicuramente i developer stanno già facendo il loro prezioso lavoro   :Wink: 

----------

## Luca89

 *power83 wrote:*   

> Domanda ancora + furba: gcc 4.1.0 e' rilasciato da gcc.gnu.org stabilissimo, indi x cui che si muovano a fare le pacthes i Gentoo Developer....  

 

Per secondo te per ora se ne stanno con le mani in mano?

----------

## randomaze

 *power83 wrote:*   

> Domanda ancora + furba: gcc 4.1.0 e' rilasciato da gcc.gnu.org stabilissimo, indi x cui che si muovano a fare le pacthes i Gentoo Developer....  

 

Qual'é la domanda?

Comunque, come fatto notare, spesso i problemi sono da parte di chi mantiene il sorgente originario, non da parte di chi cura l'ebuild per gentoo (o altro formato per altra distribuzione).

Quindi, a muoversi dovrebbero essere gli altri developer  :Rolling Eyes: 

----------

## Dr.Dran

 *power83 wrote:*   

> Domanda ancora + furba: gcc 4.1.0 e' rilasciato da gcc.gnu.org stabilissimo, indi x cui che si muovano a fare le pacthes i Gentoo Developer....  

 

Spero che Flameyes non legga questa tua affermazione, visto che è da un anno che lavora con il gcc 4.x per rendere stabili le varie versioni dei pacchetti di KDE e multimedia... eh eh eh

P.S. Ogni tanto leggete il Planet di gentoo   :Wink: 

----------

## power83

ehe....il fatto e' Gentoo ha la moda di patchare tutto quello che puo',penso d non avere mai visto un ebuild senza patch  :Laughing: 

----------

## .:chrome:.

 *power83 wrote:*   

> ehe....il fatto e' Gentoo ha la moda di patchare tutto quello che puo',penso d non avere mai visto un ebuild senza patch 

 

non è vero. non è una moda di gentoo. vedessi quanta roba infilano nei pacchetti gli ingegneri di RedHat...

quello che mi è sempre piaciuto di questa distro è che non è ipocrita come le altre, e se qualcuno scrive una buona patch la include sempre, non importa se questa porterà il nome di debian o fedora o chissà cos'altro. altri invece non operano questa politica e si tengono solo quello che è "fatto in casa propria", parlando di patch, con dei risultati ovviamente discutibili

----------

## Dr.Dran

 *k.gothmog wrote:*   

> *

 

Quoto, ho un buon amico che sviluppa il kernel per Suse/Novell e la maggior parte delle sue patch vengono applicate ai kernel vanilla che poi diventeranno suse-enterprise-kernel* o suse-kernel-*

Se poi provi a scaricare un pacchetto dei sorgenti del kernel di RH, noterai che ci sono una 60tina di patch, note e non proprio note che devono essere applicate... ovviamente in questo esempio e in quello precedente vengono scartate le patch provenienti da altre distribuzioni, oppure anora meglio vengono modificate e applicate a seconda della filosofia della distro...

Comunque quello detto da k.gothmog è indiscutibilmente vero  :Very Happy: 

----------

## makoomba

in un sistema rh, la somma delle patch supera il codice originario dei pacchetti installati...

il kernel ne è la massima espressione.

----------

## gutter

 *makoomba wrote:*   

> in un sistema rh, la somma delle patch supera il codice originario dei pacchetti installati...
> 
> il kernel ne è la massima espressione.

 

Concordo   :Very Happy: 

Aggiungo solo che se si prova a modificare di poco la distro, le disgrazie che ti capitano sono paragonabili alle migliori maledizioni degli antichi faraoni egizi.

----------

## .:chrome:.

 *makoomba wrote:*   

> in un sistema rh, la somma delle patch supera il codice originario dei pacchetti installati...
> 
> il kernel ne è la massima espressione.

 

addirittura? mi sembra grossa, questa

è vero o l'hai sparata?

----------

## makoomba

k.gothmog, se dici a qualcuno "facendo così, ci metti una vita", intendi veramente che il soggetto morirà di vecchiaia nell'adempimento del compito ?

----------

## .:chrome:.

 *makoomba wrote:*   

> k.gothmog, se dici a qualcuno "facendo così, ci metti una vita", intendi veramente che il soggetto morirà di vecchiaia nell'adempimento del compito ?

 

eheheheh

ok, oggi non sono lucidissimo. ho avuto una giornataccia

però la mole di patch è davvero immensa, potevi concedermi almeno il beneficio del dubbio

EDIT: lasciamo perdere. oggi sono rincoglionito

era davvero una vaccata

----------

## makoomba

rh patcha anche le patch (e qui non scherzo).

anni fa, quando ancora usavo rpm (mi vengono i brividi), ho modificato un .spec del kernel perchè mi serviva il 2.4.20 + alcune patch, stranamente, non incluse.

a parte i commenti tipo

# patch from 0 to 999 for network

...

# patch from 1000 to 5000 generic stuff

che già lasciano intuire il trend, ad un certo punto c'era

# frix-0.96 to do bla, bla, bla

e subito dopo

# sgnaps-frix-0.96 to patch frix-0.96  :Shocked: 

----------

## TheArbiter

uhm... accidenti.... gcc4.1 fallisce la compilazione.... da un problema con una certa libiberty....  :Rolling Eyes: 

qualcuno che l'ha messo mi può dire che cosa ha smascherato/smanettato?

----------

## TheArbiter

Installato.... ora faccio una prova dando emerge -e world... speriamo bene..   :Very Happy: 

----------

## nosacciu

io le sto usando e vanno perfettamente oltre qualche software strano che non compila (tipo pcsx2) in ogni caso con gcc-config passo ad un profilo più vecchio e compilo cio che devo installare (se ho problemi)  :Wink: 

----------

## TheArbiter

emerge -e world: tutto liscio come l'olio.... gcc 4.1 è perfetto (almeno per me   :Wink:  )

----------

