Gentoo Forums
Gentoo Forums
Quick Search: in
[SOLVED] cambiare CHOST durante la vita di un sistema
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

rackathon
Goto page 1, 2, 3  Next  
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian)
View previous topic :: View next topic  
Author Message
Peach
Veteran
Veteran


Joined: 08 Mar 2003
Posts: 3461
Location: Bologna, Italy

PostPosted: Sun Nov 06, 2005 12:13 pm    Post subject: [SOLVED] cambiare CHOST durante la vita di un sistema Reply with quote

Salve gente, proprio oggi quando mi sono deciso di installare usermode linux ho notato che lo stage 3 che ho installato nella macchina virtuale aveva nel make.conf CHOST settato a i686... come me ne sono accorto?
beh dopo che mi sono detto: aggiorno gcc dandogli il package della mia macchina host... il problema è che nella mia macchina host ho CHOST settato a i386... bel casino... ho dovuto cancellare la root_fs della macchina virtuale perchè stava iniziando a diventare più stressante correggere il problema che altro (in altre parole emerge non partiva).

ora mi domando... se volessi cambiare sulla mia macchina il CHOST cosa dovrei fare per evitare di sputtanare tutto e ricompilare tutto a modo in maniera sicura?
ma soprattutto: conviene???
_________________
Don't buy VAIO laptops.
"It's all fun and games, until someone loses an eye" - mom


Last edited by Peach on Sun Dec 04, 2005 1:10 pm; edited 1 time in total
Back to top
View user's profile Send private message
Luca89
Veteran
Veteran


Joined: 27 Apr 2005
Posts: 2103
Location: Agrigento (Italy)

PostPosted: Sun Nov 06, 2005 12:29 pm    Post subject: Reply with quote

Devi utilizzare il tool fix_libtool_files.sh per sistemare tutto:

Code:
Usage: fix_libtool_files.sh <old-gcc-version> [--oldarch <old-CHOST>]

    Where <old-gcc-version> is the version number of the
    previous gcc version.  For example, if you updated to
    gcc-3.2.1, and you had gcc-3.2 installed, run:

      # fix_libtool_files.sh 3.2

    If you updated to gcc-3.2.3, and the old CHOST was i586-pc-linux-gnu
    but you now have CHOST as i686-pc-linux-gnu, run:

      # fix_libtool_files.sh 3.2 --oldarch i586-pc-linux-gnu

    Note that if only the CHOST and not the version changed, you can run
    it with the current version and the '--oldarch <old-CHOST>' arguments,
    and it will do the expected:

      # fix_libtool_files.sh `gcc -dumpversion` --oldarch i586-pc-linux-gnu



:wink:
_________________
Running Fast!
Back to top
View user's profile Send private message
Peach
Veteran
Veteran


Joined: 08 Mar 2003
Posts: 3461
Location: Bologna, Italy

PostPosted: Sun Nov 06, 2005 12:34 pm    Post subject: Reply with quote

si ma nn ha funzionato come doveva... continuava a lamentarsi della mancanza di libstdc++.so.5
quindi ho brasato tutto... problema nessuno.. il pacco è aspettare che finisca l'emerge sync che è eterno su una macchina nuova, anche se virtuale
_________________
Don't buy VAIO laptops.
"It's all fun and games, until someone loses an eye" - mom
Back to top
View user's profile Send private message
.:chrome:.
Veteran
Veteran


Joined: 19 Feb 2005
Posts: 4575
Location: Brescia, Italy

PostPosted: Sun Nov 06, 2005 12:36 pm    Post subject: Reply with quote

Luca89 wrote:
Devi utilizzare il tool fix_libtool_files.sh per sistemare

:?: :?: :?:

cos'è questa storia che tutti si risolve con quello?
è un tool non documentato che viene usato DALL'EBUILD durante l'aggiornamento del compilatore. leggendo sul forum sembra che possa rimediare anche alla cervicale...

emerge -e system
Back to top
View user's profile Send private message
Ic3M4n
Veteran
Veteran


Joined: 02 Nov 2004
Posts: 3376
Location: Bergamo.

PostPosted: Sun Nov 06, 2005 12:43 pm    Post subject: Reply with quote

si, con libtool non fai altro che modificare i path per le librerie...

se vuoi modificare CHOST devi ricompilarti il sistema da zero. in quanto tutti i tuoi programmi sono stati compilati per i386. se li vuoi per i686 devi prima ricompilare il compilatore e poi dare un emerge -e world. però non credo che il miglioramento prestazionale che "potresti" ottenere valga una completa ricompilazione.

...asp. ma hai appena decompresso lo stage? allora non ci metti tantissimo, penso.
Back to top
View user's profile Send private message
.:chrome:.
Veteran
Veteran


Joined: 19 Feb 2005
Posts: 4575
Location: Brescia, Italy

PostPosted: Sun Nov 06, 2005 12:45 pm    Post subject: Reply with quote

Ic3M4n wrote:
devi prima ricompilare il compilatore

non è necessario. figurati se un compilatore non può produrre output per diverse architetture :wink: non siamo in Microsoft
Back to top
View user's profile Send private message
Peach
Veteran
Veteran


Joined: 08 Mar 2003
Posts: 3461
Location: Bologna, Italy

PostPosted: Sun Nov 06, 2005 12:46 pm    Post subject: Reply with quote

Ic3M4n wrote:
si, con libtool non fai altro che modificare i path per le librerie...

se vuoi modificare CHOST devi ricompilarti il sistema da zero. in quanto tutti i tuoi programmi sono stati compilati per i386. se li vuoi per i686 devi prima ricompilare il compilatore e poi dare un emerge -e world. però non credo che il miglioramento prestazionale che "potresti" ottenere valga una completa ricompilazione.

...asp. ma hai appena decompresso lo stage? allora non ci metti tantissimo, penso.


quindi confermi che prestazionalmente parlando è inutile?
questo servirebbe per poter passare packages dall'host al guest senza dover ricompilare da zero... mi sa che quindi faccio prima a portare a i386 il guest e lasciare l'host così...
_________________
Don't buy VAIO laptops.
"It's all fun and games, until someone loses an eye" - mom
Back to top
View user's profile Send private message
.:chrome:.
Veteran
Veteran


Joined: 19 Feb 2005
Posts: 4575
Location: Brescia, Italy

PostPosted: Sun Nov 06, 2005 12:49 pm    Post subject: Reply with quote

Peach wrote:
quindi confermi che prestazionalmente parlando è inutile?
questo servirebbe per poter passare packages dall'host al guest senza dover ricompilare da zero... mi sa che quindi faccio prima a portare a i386 il guest e lasciare l'host così...

no. nessuno ha detto questo.
secondo me (ma è un'idea mia) è inutile, dal punto di vista prestazionale, diventare matti con le flag USE. ma settare correttamente il processore non può di certo far male, anzi...
Back to top
View user's profile Send private message
Peach
Veteran
Veteran


Joined: 08 Mar 2003
Posts: 3461
Location: Bologna, Italy

PostPosted: Sun Nov 06, 2005 12:59 pm    Post subject: Reply with quote

quindi in realtà sarebbe più corretto ricompilarmi la mia macchina... hmmm... magari appena ho una rete distcc per poterlo fare.

Probabilmente installando un package con CHOST diversa si rompe per forza qualcosa; non necessariamente se si cambia la CHOST flag e si ricompila normalmente -ad es- gcc.

O mi sono perso qualcosa?
_________________
Don't buy VAIO laptops.
"It's all fun and games, until someone loses an eye" - mom
Back to top
View user's profile Send private message
.:chrome:.
Veteran
Veteran


Joined: 19 Feb 2005
Posts: 4575
Location: Brescia, Italy

PostPosted: Sun Nov 06, 2005 2:11 pm    Post subject: Reply with quote

non credo proprio, anche se non ho mai provato.

un conto è compilare software per architetture diverse, lì è ovvio che non funziona, ma software compilati per versioni diverse della stessa architettura non vedo come potrebbero darsi fastidio. sarebbe come dire che un pentium non può eseguire codice i386: è assurdo, perché le due piattaforme sono compatibili.

oltretutto CHOST non setta nemmeno l'architettura target, se non sbaglio, ma sceglie il profilo del compilatore, quindi si tratterebbe solo di avere un compilatore ottimizzato o meno, che produce comunque output corretti
Back to top
View user's profile Send private message
Ic3M4n
Veteran
Veteran


Joined: 02 Nov 2004
Posts: 3376
Location: Bergamo.

PostPosted: Sun Nov 06, 2005 8:03 pm    Post subject: Reply with quote

@k.gothmog: quando dicevo che il vantaggio prestazionale non valeva la ricompilazione intendevo che quando hai tutto un sistema installato il ricompilare tutto potrebbe non valere la "spesa" di tempo per il guadagno prestazionale. poi dipende... onestamente non ho mai fatto paragoni, però molte distro compilano ancora per 386, e solo alcune tipo suse sono passate a 586, quindi non credo che il divario tra le due sia cos' ampio.

inoltre come hai detto tu nell'ultimo post in effetti avere tal parametro impostato su 386 non dovrebbe provocare un crash del sistema, potrebbe essere più facilmente una corruzione dello stage scaricato. o cose del genere cmq.
Back to top
View user's profile Send private message
randomaze
Bodhisattva
Bodhisattva


Joined: 21 Oct 2003
Posts: 9977

PostPosted: Mon Nov 07, 2005 12:51 am    Post subject: Reply with quote

Peach wrote:
quindi in realtà sarebbe più corretto ricompilarmi la mia macchina... hmmm... magari appena ho una rete distcc per poterlo fare.

Probabilmente installando un package con CHOST diversa si rompe per forza qualcosa; non necessariamente se si cambia la CHOST flag e si ricompila normalmente -ad es- gcc.

O mi sono perso qualcosa?


Quello che sicuramente cambia é la dir:
Code:
/usr/lib/gcc-lib/i686-pc-linux-gnu/


sembra una cosa stupida ma in realtá la libreria che non ti trova (libstdc++.so.5) presumibilmente si trova in:
Code:
/usr/lib/gcc-lib/i386-pc-linux-gnu/


(oppure é in i686 e non in i386)
hai provato a cercarla con find e/o locate?

N.B. Se l'errore é questo ricorda che fix_libtool_files.sh va usato con il parametro --oldarch.
_________________
Ciao da me!
Back to top
View user's profile Send private message
Peach
Veteran
Veteran


Joined: 08 Mar 2003
Posts: 3461
Location: Bologna, Italy

PostPosted: Mon Nov 07, 2005 4:10 am    Post subject: Reply with quote

randomaze wrote:
Peach wrote:
quindi in realtà sarebbe più corretto ricompilarmi la mia macchina... hmmm... magari appena ho una rete distcc per poterlo fare.

Probabilmente installando un package con CHOST diversa si rompe per forza qualcosa; non necessariamente se si cambia la CHOST flag e si ricompila normalmente -ad es- gcc.

O mi sono perso qualcosa?


Quello che sicuramente cambia é la dir:
Code:
/usr/lib/gcc-lib/i686-pc-linux-gnu/


sembra una cosa stupida ma in realtá la libreria che non ti trova (libstdc++.so.5) presumibilmente si trova in:
Code:
/usr/lib/gcc-lib/i386-pc-linux-gnu/


(oppure é in i686 e non in i386)
hai provato a cercarla con find e/o locate?

N.B. Se l'errore é questo ricorda che fix_libtool_files.sh va usato con il parametro --oldarch.


si infatti.. era in i686, quando il package aveva installato tutto in i386... fix_libtool_files.sh nn ha funzionato nemmeno passandogli --oldarch... o meglio... lui sembra funzionare, mi aveva anche segnalato il fix di un file, ma alla fine emerge continuava a lamentarsi (python chiamato da emerge in questo caso).

l'unica cosa che mi è chiara è che il package preso e sbattuto lì se aveva CHOST diverso spaccava tutto
ma nn mi è ancora chiaro se cambio CHOST e compilo regolarmente -tipo gcc- sono passibile di problemi del genere...
_________________
Don't buy VAIO laptops.
"It's all fun and games, until someone loses an eye" - mom
Back to top
View user's profile Send private message
makoomba
Moderator
Moderator


Joined: 03 Jun 2004
Posts: 1856

PostPosted: Mon Nov 07, 2005 7:15 am    Post subject: Reply with quote

dopo un cambio di CHOST, ricompilerei tutto il sistema.
in particolare, rifarei il bootstrap
Code:
emerge glibc binutils gcc && emerge glibc binutils gcc

e almeno
Code:
emerge -e world
Back to top
View user's profile Send private message
.:chrome:.
Veteran
Veteran


Joined: 19 Feb 2005
Posts: 4575
Location: Brescia, Italy

PostPosted: Mon Nov 07, 2005 1:39 pm    Post subject: Reply with quote

Ic3M4n wrote:
molte distro compilano ancora per 386, e solo alcune tipo suse sono passate a 586, quindi non credo che il divario tra le due sia cos' ampio.

quello viene fatto solo per garantire la compatibilità architetturale.

makoomba wrote:
dopo un cambio di CHOST, ricompilerei tutto il sistema

ribadisco che CHOST setta il compilatore, e non ha nessuna influenza sul codice compilato. faresti un'operazione inutile.
sarebbe cosa diversa se dovessi cambiare CFLAGS, ma anche in quel caso è più che sufficiente un emerge -e glibc, e nulla di più, dato che è solo dalle glibc che dipende tutto il sistema (e le sue prestazioni)
Back to top
View user's profile Send private message
makoomba
Moderator
Moderator


Joined: 03 Jun 2004
Posts: 1856

PostPosted: Mon Nov 07, 2005 2:12 pm    Post subject: Reply with quote

k.gothmog wrote:
ribadisco che CHOST setta il compilatore, e non ha nessuna influenza sul codice compilato. faresti un'operazione inutile

handbook wrote:
Warning: Although it might be tempting for non-stage1 users, they should not change the CHOST setting in make.conf. Doing so might render their system unusable. Again: only change this variable if you use a stage1 installation.

ti consiglio di cercare sul forum internazionale gli interventi di BobP e rac sull'argomento
Back to top
View user's profile Send private message
Peach
Veteran
Veteran


Joined: 08 Mar 2003
Posts: 3461
Location: Bologna, Italy

PostPosted: Mon Nov 07, 2005 2:16 pm    Post subject: Reply with quote

handbook wrote:
Warning: Although it might be tempting for non-stage1 users, they should not change the CHOST setting in make.conf. Doing so might render their system unusable. Again: only change this variable if you use a stage1 installation.


eh, ho fatto io la cazzata a non modificarlo quando ho fatto stage 1 a suo tempo :twisted:
_________________
Don't buy VAIO laptops.
"It's all fun and games, until someone loses an eye" - mom
Back to top
View user's profile Send private message
.:chrome:.
Veteran
Veteran


Joined: 19 Feb 2005
Posts: 4575
Location: Brescia, Italy

PostPosted: Mon Nov 07, 2005 3:05 pm    Post subject: Reply with quote

@makoomba: scusa un attimo... a me hanno insegnato a ragionare con la mia testa.
hai guardato a cosa serve CHOST? a giudicare da quello che scrivi parrebbe proprio di no
make.conf wrote:
# Host Setting
# ============
#
# Change this line as appropriate (i686, i586, i486 or i386).
# All modern systems (even Athlons) should use "i686-pc-linux-gnu".
# All K6's are i586.
CHOST="i686-pc-linux-gnu"


ora... andiamo a vedere cosa è quella roba:
Code:
chrome@morgoth ~ $ which i686-pc-linux-gnu-gcc
/usr/bin/i686-pc-linux-gnu-gcc
chrome@morgoth ~ $ ls /usr/bin/*gnu-gcc
/usr/bin/i386-pc-linux-gnu-gcc*  /usr/bin/i686-pc-linux-gnu-gcc*


si tratta degli eseguibili di gcc. niente più.
se ha un'architettura i686 è liberissimo si cambiare la dichiarazione come meglio crede (non è così immediato il viceversa). per la cronaca... quel quote l'ho preso dal mio computer di casa, realizzato a partire da stage3 e con successivo emerge -e glibc
penso che ragionare con la propria testa non sia male, di tanto in tanto.
Back to top
View user's profile Send private message
makoomba
Moderator
Moderator


Joined: 03 Jun 2004
Posts: 1856

PostPosted: Tue Nov 08, 2005 6:08 am    Post subject: Reply with quote

ma davvero ?
vuoi dare, sul tuo sistema
Code:
i386-pc-linux-gnu-gcc -v
ls -l /usr/lib/gcc-lib/i386-pc-linux-gnu

e postarmi l'output, gentilmente ?

beh, non so da te, ma sul mio sistema ho compilatore e librerie solo per i686.
cambiando CHOST, non posso compilare assolutamente nulla perchè, di fatto, non è presente alcun compilatore per la nuova architettura.
e non intendo solo l'eseguibile gcc ma anche, e soprattutto, tutte le librerie in /usr/lib/ggc-lib alle quali linkano i binari.

se si vuole cambiare CHOST, il primo passo è ricompilare gcc per la nuova architettura.
Le librerie i386 sono diverse da quelle generate per i686, avere un sistema in cui vengono utilizzate entrambe può causare problemi e malfunzionamenti difficilmente identificabili.
Per questo, nell'handbook, viene fortemente sconsigliata la modifica di CHOST a meno che si parta da uno stage1.

ora, i post che ti citavo sono relativi a ben note discussioni riguardati la "consistenza" del toolchain e quanto questa sia importante in gentoo (metadistro basata interamente sulla compilazione dei sorgenti )

in ultimo, una considerazione sulla forma.
il fatto che taluni utenti del forum possano apprezzare il "tono" di alcuni dei tuoi interventi, non implica che lo stesso valga per altri.
io sono fra gli altri, tienilo a mente.
Back to top
View user's profile Send private message
.:chrome:.
Veteran
Veteran


Joined: 19 Feb 2005
Posts: 4575
Location: Brescia, Italy

PostPosted: Tue Nov 08, 2005 5:09 pm    Post subject: Reply with quote

makoomba wrote:
ma davvero ?
vuoi dare, sul tuo sistema
Code:
i386-pc-linux-gnu-gcc -v
ls -l /usr/lib/gcc-lib/i386-pc-linux-gnu

e postarmi l'output, gentilmente ?

ho scritto...
k.gothmog wrote:
se ha un'architettura i686 è liberissimo si cambiare la dichiarazione come meglio crede (non è così immediato il viceversa).


se non fosse possibile il passaggio i386 -> i686 non funzionerebbe nemmeno nessuna delle distribuzioni pacchettizzate su macchine superiori all'i486
Back to top
View user's profile Send private message
makoomba
Moderator
Moderator


Joined: 03 Jun 2004
Posts: 1856

PostPosted: Wed Nov 09, 2005 4:52 am    Post subject: Reply with quote

k.gothmog wrote:
se non fosse possibile il passaggio i386 -> i686 non funzionerebbe nemmeno nessuna delle distribuzioni pacchettizzate su macchine superiori all'i486

Questo non è un problema, il gcc sulle distro binarie è sempre compilato per la minima architettura supportata.
prendi i binari CentOS (ma vale per qualsiasi distro RH like): CHOST=i386-redhat-linux, march=i386, mcpu=i686 e funzionano su qualsiasi x86.

Il problema sta nel cambiare CHOST "live" sulla stessa macchina.
Entrambe le architetture funzionano correttamente, ma lo switch non si riduce alla mera modifica del make.conf
Back to top
View user's profile Send private message
.:chrome:.
Veteran
Veteran


Joined: 19 Feb 2005
Posts: 4575
Location: Brescia, Italy

PostPosted: Wed Nov 09, 2005 5:52 am    Post subject: Reply with quote

makoomba wrote:
Questo non è un problema, il gcc sulle distro binarie è sempre compilato per la minima architettura supportata.
prendi i binari CentOS (ma vale per qualsiasi distro RH like): CHOST=i386-redhat-linux, march=i386, mcpu=i686 e funzionano su qualsiasi x86.

esempio secondo me sbagliato. c'è una certa divergenza strutturale tra Gentoo (di cui qui si parla) e RedHat

makoomba wrote:
Il problema sta nel cambiare CHOST "live" sulla stessa macchina.
Entrambe le architetture funzionano correttamente, ma lo switch non si riduce alla mera modifica del make.conf

ma io non ho mai sostenuto questo. se guardi qualche post indietro puoi leggere quello che io avevo suggerito
Back to top
View user's profile Send private message
makoomba
Moderator
Moderator


Joined: 03 Jun 2004
Posts: 1856

PostPosted: Wed Nov 09, 2005 6:02 am    Post subject: Reply with quote

k.gothmog wrote:
esempio secondo me sbagliato. c'è una certa divergenza strutturale tra Gentoo (di cui qui si parla) e RedHat

allora non ho capito cosa intendevi con "distro pacchettizzate"
Back to top
View user's profile Send private message
.:chrome:.
Veteran
Veteran


Joined: 19 Feb 2005
Posts: 4575
Location: Brescia, Italy

PostPosted: Wed Nov 09, 2005 7:41 am    Post subject: Reply with quote

makoomba wrote:
k.gothmog wrote:
esempio secondo me sbagliato. c'è una certa divergenza strutturale tra Gentoo (di cui qui si parla) e RedHat

allora non ho capito cosa intendevi con "distro pacchettizzate"

invece hai capito... però io avevo fatto quel riferimento alludendo ad un aspetto diverso da quello che tu hai citato: CHOST è un discorso valido solo su Gentoo e derivate. tutto questo discorso non esiste sulle altre
Back to top
View user's profile Send private message
Benve
l33t
l33t


Joined: 13 Mar 2003
Posts: 897
Location: Italy Romagna

PostPosted: Sat Nov 12, 2005 6:27 am    Post subject: Reply with quote

Salve gente, premesso che secondo me si fa prima a reinstallare.

Ho una domanda:

Se uso un pacchetto compilato con i386 su un sistema con tutto compilato per i686 dovrebbe tutto funzionare no ?
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) All times are GMT - 5 Hours
Goto page 1, 2, 3  Next
Page 1 of 3

 
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