View previous topic :: View next topic |
Author |
Message |
Kind_of_blue Guru
Joined: 10 Oct 2004 Posts: 485
|
Posted: Tue Dec 13, 2005 8:55 pm Post subject: passare da uno stage 3 a uno stage 1 con gcc 3.4 e NPTL |
|
|
Ho una configurazione da stage 3 (è un portatile ... e avevo un pò di fretta ... quindi ho dato retta a quei post che affermano che posso mettere uno stage 3 ... e poi una martellata qui ... una piallata li ... e alla fine potrebbe assomigliare molto a uno stage 1)
per ottimizzarla ... gli obiettivi sono 3:
1) Un CHOST meglio declinato per il centrino
2) gcc 3.4.3
3) nptl
in quale ordine aggiornare? ... spulciando i vari docs o interpretato cosi:
1) aggiornamento GCC senza ottimizzazioni di CHOST:
Code: | # emerge -uav gcc
# gcc-config i686-pc-linux-gnu-3.4.4
# source /etc/profile
# emerge --oneshot sys-libs/libstdc++-v3
# emerge -e system
# emerge -e world
# emerge -aC =sys-devel/gcc-3.3* |
2)aggiornare il Make.conf con:
Code: | #CFLAGS="-O3 -march=pentium-m -mtune=pentium-m -pipe -ftracer -fomit-frame-pointer -ffast-math -momit-leaf-frame-pointers"
#LDFLAGS="-Wl,-O1" |
3) devo rifare gli emerge di World e di System ora?
4) aggiungere "nptl" e "nptlonly" tra le USE flags in make.conf
5) riemergere:
Code: | #emerge --newuse -p world |
da quello che ho capito non c'è piu bisogno di scaricare le headers 2.6 xche sono gia quele di default ...
sbaglio qualcosa? ... ci metterò qlc giorno ... per fortuna non ho piu la fretta di quando avevo installatao lo stage 3 ... |
|
Back to top |
|
|
=DvD= Veteran
Joined: 25 Mar 2004 Posts: 1353
|
Posted: Tue Dec 13, 2005 9:40 pm Post subject: |
|
|
Basta che fai tutto al contrario di come l'hai scritto =P // <-- non è vero!
Alcune osservazioni in ordine sparso:
Il make.conf lo usi per dire a gcc come compilare le cose, quindi lo devi modificare prima di compilare le cose (anche gcc stesso).
Lo stage 3 è uguale allo stage 1 se ti ricompili tutto (emerge -e world) (o in altri modi più esotici dipo system + system + world + world)
Tu devi solo cambiare il make.conf come vuoi, emergere gcc nuovo, emergere system, emergere world; ovviamente devi anche cambiare le use prima di emergere le cose!
Ah le CFLAGS le ottimizzi per quello che vuoi, ma il CHOST deve rimanere i686 (o sbaglio?)
salut! |
|
Back to top |
|
|
Kind_of_blue Guru
Joined: 10 Oct 2004 Posts: 485
|
Posted: Tue Dec 13, 2005 9:59 pm Post subject: |
|
|
ma la guida di migrazione di GCC dice di non modificare le CFLAGS prima di compilare lo stesso GCC ... lo hanno messo come avviso ... IN ROSSO!
edito: ecco il warning
Quote: | Warning: Do not set any GCC 3.4-specific CFLAGS such as -march=pentium-m at this time. Doing so could cause failures in your compiles. You can set these flags after you remove gcc-3.3, which will not recognize them. |
PPS. il CHHOST ... beh ... mi hai beccato ... non ci pensavo ... come va?
Last edited by Kind_of_blue on Tue Dec 13, 2005 10:04 pm; edited 1 time in total |
|
Back to top |
|
|
=DvD= Veteran
Joined: 25 Mar 2004 Posts: 1353
|
Posted: Tue Dec 13, 2005 10:03 pm Post subject: |
|
|
dice di non mettere nessuna flag specifica del 3.4 prima di avere installato il 3.4 ha senso.
quelle del 3.3 puoi metterle! |
|
Back to top |
|
|
.:chrome:. Advocate
Joined: 19 Feb 2005 Posts: 4588 Location: Brescia, Italy
|
Posted: Tue Dec 13, 2005 11:28 pm Post subject: Re: passare da uno stage 3 a uno stage 1 con gcc 3.4 e NPTL |
|
|
io direi:
emerge gcc-3.4 e revdep-rebuild (che è più che sufficiente)
dopo il primo giro fai un
emerge sys-libs/libstdc++-v3 (senza --oneshot )
alla fine metti nptl e nptlonly in make.conf e fai un
emerge -uDN world
secondo me non serve (ed è inutile) fare la sequenza
emerge -e system
emerge -e world |
|
Back to top |
|
|
=DvD= Veteran
Joined: 25 Mar 2004 Posts: 1353
|
Posted: Tue Dec 13, 2005 11:36 pm Post subject: Re: passare da uno stage 3 a uno stage 1 con gcc 3.4 e NPTL |
|
|
k.gothmog wrote: | secondo me non serve (ed è inutile) fare la sequenza
emerge -e system
emerge -e world |
non è inutile, serve a qualcosa, ma spessissimo si puo voler fare a meno.
Ci sono un bel po' di thread al riguardo |
|
Back to top |
|
|
makoomba Bodhisattva
Joined: 03 Jun 2004 Posts: 1856
|
Posted: Wed Dec 14, 2005 9:24 am Post subject: |
|
|
cambiano CHOST, compilatore e glibc (da liscio a nptlonly) ?
/me che consiglia emerge -e system && emerge -e world
--oneshot su libstdc++-v3 è giusto perchè è una dipendenza di system (gcc-3.4.X) _________________ When all else fails, read the instructions. |
|
Back to top |
|
|
Kind_of_blue Guru
Joined: 10 Oct 2004 Posts: 485
|
Posted: Wed Dec 14, 2005 10:35 am Post subject: |
|
|
sbaglio di molto a pensare che senza un "emerge -e system" dopo al passaggio a gcc 3.4 ... non si può levare il 3.3?
ps.
si ... da liscio a nptlonly
ma il CHOST allora lo devo cambiare o devo lasciare il 686? |
|
Back to top |
|
|
thewally l33t
Joined: 12 May 2005 Posts: 703 Location: Genova
|
Posted: Wed Dec 14, 2005 11:44 am Post subject: |
|
|
Io risolverei tutto così:
1 ) cambiare le use (nptl)
2 ) emergere gcc (passare al 3.4)
3 ) emerge -P gcc
4 ) Selezionare gcc 3.4 con gcc-config
5 ) source /etc/profile
6 ) cambiare cflags e ldflags
7 ) emerge -e system
8 ) emerge -e world
Kind_of_blue wrote: | sbaglio di molto a pensare che senza un "emerge -e system" dopo al passaggio a gcc 3.4 ... non si può levare il 3.3? |
IMHO si, ma un "emerge -e system" ottimizza il tutto con le cflags del 3.4 (il che mi sembra una buona idea ).
Kind_of_blue wrote: | ps.
si ... da liscio a nptlonly |
Io non metterei nptonly, ci sono sempre i vecchi discorsi relativi a jack e simili.
Kind_of_blue wrote: | ma il CHOST allora lo devo cambiare o devo lasciare il 686? |
Io lascerei 686, un eventuale cambio di chost non incide visibilmente sulle prestazioni. _________________ Proudly Member of GeCHI |
|
Back to top |
|
|
Kind_of_blue Guru
Joined: 10 Oct 2004 Posts: 485
|
Posted: Wed Dec 14, 2005 12:11 pm Post subject: |
|
|
quai sono le IdFlags?
poi rimane sempre un sospeso ... nel senso che le CFLAGS definitive (pentium-m) le posso mettere solo dopo avere ricompilato cn gcc 3.4 e avere rimosso il 3.3 |
|
Back to top |
|
|
=DvD= Veteran
Joined: 25 Mar 2004 Posts: 1353
|
Posted: Wed Dec 14, 2005 12:33 pm Post subject: |
|
|
Non è strettamente necessario che tu levi il vecchio gcc prima di compilare con il nuovo.
Basta che lo selezioni con gcc-config |
|
Back to top |
|
|
Kind_of_blue Guru
Joined: 10 Oct 2004 Posts: 485
|
Posted: Wed Dec 14, 2005 12:35 pm Post subject: |
|
|
si si ... il vecchio lo tolgo solo alla fine |
|
Back to top |
|
|
.:chrome:. Advocate
Joined: 19 Feb 2005 Posts: 4588 Location: Brescia, Italy
|
Posted: Wed Dec 14, 2005 11:12 pm Post subject: Re: passare da uno stage 3 a uno stage 1 con gcc 3.4 e NPTL |
|
|
=DvD= wrote: | k.gothmog wrote: | secondo me non serve (ed è inutile) fare la sequenza
emerge -e system
emerge -e world |
non è inutile, serve a qualcosa, ma spessissimo si puo voler fare a meno.
Ci sono un bel po' di thread al riguardo |
lo so che se n'è parlato più volte. spesso ho sollevato il mio dubbio, ma nessuno mi ha mai fornito una spiegazione
system è un sottoinsieme stretto di world, quindi nel momento in cui faccio quei due emerge in sequenza ci sono un bel po' di pacchetti che vengono compilati due volte.
per carità... forse a me sta sfuggendo qualcosa, ma visto così mi pare solo una perdita di tempo (e di risorse).
nel caso specifco di Kind_of_blue, non credo sia necessario ricompilare tutto.
per abilitare NPTL basta ricompilare glibc, e il cambio di compilatore riguarda solo il codice C++, quindi si può limitare molto la portata dell'intervento |
|
Back to top |
|
|
Kind_of_blue Guru
Joined: 10 Oct 2004 Posts: 485
|
Posted: Thu Dec 15, 2005 1:33 pm Post subject: |
|
|
da quello ce ho capito, dopo l'aggiornamento di gcc a 3.4:
1) emerge -e system --> si ottiene il sottoinsieme system compilato con gcc 3.4 ... che è stato però a sua vlta compilato col gcc 3.3 ... e si ricompila anche lo sess gcc
2) emerge -e world --> si ottiene tutto compilato con gcc 3.4 piu "puro"
Il mio probl però sono le CFLAGS specifiche del 3.4 (pentium-m) ... ora sono passato al 3.4 senza metterle ... una volta aggiornate devo riemergere world vero? |
|
Back to top |
|
|
xchris Advocate
Joined: 10 Jul 2003 Posts: 2824
|
Posted: Thu Dec 15, 2005 2:33 pm Post subject: |
|
|
hhihii stranamente mi trovo a dar ragione k.gothmog
emergere system e poi world e' del tutto insensato.
emerge world purtroppo ha un significato bislacco.
emerge -e world significa:
emergi i pacchetti system + i pacchetti world e considera tutti i pacchetti come non emersi (empty tree)
Non ci credete?
Spostate il world file (ocio eh..) e fate un bel emerge -ep world.
Come magia equivale ad un emerge system
Code: |
cd /usr/lib/portage
lyra portage # mv world world2
lyra portage # emerge -ep world | grep ebuild | wc -l
117
lyra portage # emerge -ep system | grep ebuild | wc -l
117
lyra portage # emerge -ep system | grep ebuild | wc -l
|
ciauz
EDIT: un test migliore
Code: |
lyra ~ # cd /var/lib/portage/
lyra portage # mv world world2
lyra portage # emerge -ep world | grep ebuild | sort > pkt_world
lyra portage # emerge -ep system | grep ebuild | sort > pkt_system
lyra portage # diff pkt_world pkt_system
lyra portage #
|
ciao _________________ while True:Gentoo() |
|
Back to top |
|
|
Kind_of_blue Guru
Joined: 10 Oct 2004 Posts: 485
|
Posted: Thu Dec 15, 2005 5:24 pm Post subject: |
|
|
non vedo come contraddica la logica di quello che ho scritto sopra ... ciò non toglie che possa avere detto delle min**iate |
|
Back to top |
|
|
xchris Advocate
Joined: 10 Jul 2003 Posts: 2824
|
Posted: Thu Dec 15, 2005 11:01 pm Post subject: |
|
|
no kind_of_blue,
mi riferivo al solo discorso di emersione doppia senza alcuna considerazione su gcc e nptl
ciao _________________ while True:Gentoo() |
|
Back to top |
|
|
|