# Aggiornare GCC

## publiosulpicio

Salve a tutti, per installare un pacchetto da un overlay dovrei aggiornare GCC. Attualmente uso la versione 4.1.2 e dovrei passare almeno alla 4.2. Dato che la versione che ho non mi da nessun problema non vedo la necessità di passare ad una nuova versione, che per'altro non è ancora ufficialmente stabile. Se installo entrambe le versioni come si comporta emerge? È possibile, e sensato, usare la nuova versione per installare solamente il pacchetto che la richiede e mantenere l'altra per il resto del sistema? Grazie.

Ricky

----------

## mack1

Alcuni pacchetti possono essere "SLOTTED", cioè danno la possibilità di avere più versioni dello stesso installata sul sistema, gcc è uno di questi dai un occhio qui:

http://www.gentoo.org/doc/it/handbook/handbook-x86.xml?part=2&chap=1

In alcuni casi (in genere cambiamenti importanti che "spezzano" la compatibilità dei binari fra le diverse versioni di gcc) se viene installata una nuova versione di gcc devi compiere operazioni extra (descritte nella guida),se no devi solo (seguendo alcuni passaggi) aggiornare  il profilo e ricompilare libtool, altrimenti portage continuerà ad usare la vecchia versione di gcc:

http://www.gentoo.org/doc/it/gcc-upgrading.xml

In linea di massima il passaggio fra gcc-4.1.2 e il 4.2 non comporta lavoro extra, quindi puoi seguire la guida di aggiornamento generale di gcc.

Dunque se installi il gcc 4.2 hai (IMHO!!!) due possibilità:

1-Passi direttamente ad utilizzare la nuova versione di gcc per tutto il sistema.... io uso il 4.3.2 (i pacchetti con cui ha problemi sono davvero pochi), comunque fatti un giro su bugzilla per vedere se il pacchetto che ti interessa ha qualche bug con il gcc 4.2.

2-Installi la versione 4.2 passi al nuovo profilo installi il pacchetto che ti interessa, e poi ripassi al vecchio profilo... in questa maniera portage continuerà ad usare il vecchio gcc... ora devi solo far si che il ggc vecchio non venga disinstallato da un "emerge --depclean":

https://forums.gentoo.org/viewtopic-t-716291.html?sid=56afe88c021485f0b7b6e0b3fe46fc7a

CiaoLast edited by mack1 on Mon Dec 08, 2008 1:27 pm; edited 1 time in total

----------

## Onip

Non l'ho mai fatto, ma penso che tu possa benissimo mettere un gcc nuovo, cambiare il compilatore di sistema con gcc-config emergere il pacchetto X e poi ritornare, sempre con gcc-config al compilatore "stabile".

Non credo, ma dovresti verificare se ci possono essere problemi ad avere il pacchetto X compilato con una versione di gcc e le dipendenze con un'altra.

Byez

p.s. di che pacchetto stiamo parlando?

----------

## publiosulpicio

Il pacchetto è icedtea-bin, per avere java funzionante su un sistema a 64 bit (voglio evitare, più che altro per una questione di principio, di usare firefox-bin). Provo a cambiare gcc con gcc-config, alla peggio i problemi ci saranno solo per il singolo pacchetto, giusto?

----------

## riverdragon

Gcc 4.3.2 è in dirittura d'arrivo per essere stabilizzato ("settimane", non "giorni"), credo sia meglio che installi quello.

----------

## publiosulpicio

Cavoli, sto giusto installando gcc-4.2.4. Appena finito lo disinstallo e installo gcc-4.3.2. Penso di procedere così: lo smaschero e lo installo a mano, voglio evitare l'update perché non sono riuscito a capire se in questo caso rimuove automaticamente la versione vecchia o no. Con gcc-config cambio la versione di default, installo il pacchetto e di nuovo con gcc-config rimetto la versione vecchia come default. Vi sembra corretto?

----------

## publiosulpicio

Solo un'altra domanda: devo ricompilare libtool ogni volta che voglio cambiare compilatore?

----------

## djinnZ

Per ovvie ragioni (i devel non sono mai stati sufficientemente idioti da pensare una cavolata del genere, accaduta in passato con altra distribuzione) il gcc è slotted per cui all'upgrade ti viene solo installata la nuova versione in aggiunta, poi sta a te selezionarla e ricompilare quanto dovuto.

Libtool ed tutta la toolchain è il minimo. Segui la guida per l'aggiornamento.

----------

## publiosulpicio

Lo immaginavo, però la guida dice  *Quote:*   

> In caso di aggiornamenti di manutenzione (come per esempio da 3.4.5 a 3.4.6) viene utilizzata automaticamente la nuova versione. 

  Immagino che passare da 4.1.2 a 4.3.2 sia considerato un aggiornamento significativo, però non ne ero sicuro al 100% e ho preferito non rischiare.

----------

## mack1

Comunque con un "gcc-config -c" hai il profilo corrente mentre con "gcc-config -l" hai quelli disponibili.

Ciao

----------

## publiosulpicio

Fatto! Sembra che funzioni perfettamente. L'unico problema ora è: lascio installate entrambe le versioni di gcc perche voglio usare quella vecchia, e quella nuova è nelle dipendenze del pacchetto che ho faticosamente installato. In questo modo però se do emerge --depclean vuole togiere il vecchio gcc, e con esso un sacco di pacchetti.. cosa devo fare per evitare che depclean tocchi gcc? Grazie

----------

## publiosulpicio

Scusate, ho risolto da solo, bastava *Quote:*   

> emerge -n =sys-devel/gcc-4.1.2

 .

----------

## publiosulpicio

 *riverdragon wrote:*   

> Gcc 4.3.2 è in dirittura d'arrivo per essere stabilizzato ("settimane", non "giorni"), credo sia meglio che installi quello.

 

Scusate se riesumo questo topic, ma qualcuno sa qualcosa riguardo la stabilizzazione di gcc 4.3.2?

----------

## zolar czakl

https://bugs.gentoo.org/show_bug.cgi?id=245160

Celo celo, manca.  :Razz: 

----------

## napass

 *zolar czakl wrote:*   

> https://bugs.gentoo.org/show_bug.cgi?id=245160
> 
> Celo celo, manca. 

 

quanto???   :Very Happy: 

----------

## riverdragon

Non poco, ahimè.

----------

