View Full Version : Vi va di parlare di apt-build?
Dcromato
26-04-2009, 12:00
L'ho usato qualche volta e tempo fa ma a quanto pare era troppo presto, non tanto per il grado di maturità del prodotto, ma credo piu al fatto che Debian/Ubuntu non lo digerissero piu di tanto.Ora sto provando a ricompilare qualcosina e sembra anche andar bene (nautilus sembra aver guadagnato).Comunque:questo è il mio apt-build.conf
build-dir = /var/cache/apt-build/build
repository-dir = /var/cache/apt-build/repository
Olevel = -O3
mtune = -mtune=nocona
options = " "
make_options = "-j3 "
che consigli mi date per migliorarlo?
Gimli[2BV!2B]
26-04-2009, 13:55
Il -O3 è sconsigliato per compilatori gcc 4.x perché allunga sensibilmente i tempi di compilazione producendo eseguibili più grandi e raramente più efficienti.
Ti consiglierei march al posto di mtune:
mtune (not --mtune): Tune to CPU-TYPE everything applicable about the generated code, except for the ABI and the set of available instructions.
march: Generate instructions for the machine type CPU-TYPE. Specifying -march=CPU-TYPE implies -mtune=CPU-TYPE.
Puoi provare questo script (http://www.pixelbeat.org/scripts/gcccpuopt), a me ha dato una dritta sensata da aggiungere al march/mtune.
Almeno un anno fa provai a dare una compilata a Iceweasel, ma non gradii il modo in cui veniva trattato il repository dei pacchetti compilati.
Mi hai fatto venir voglia di riprovare...
Dcromato
26-04-2009, 14:18
grazie
Dici che è meglio -O2 ?
oppure -Os che una volta consilgiavano su Gentoo per binari piu piccoli?
comunque lo uso per ricompilare applicazioni che uso di piu come Firefox e Evolution.
Gimli[2BV!2B]
26-04-2009, 15:35
L'O3 l'ho usato per un po' nella mia Gentoo, i tempi di compilazione erano più lunghi e non ho notato grandi miglioramenti quando ha raggiunto ogni pacchetto del sistema, ma non ho fatto prove scientifiche perché avrebbero richiesto un po' troppo tempo (emerge -e world su un Athlon XP richiede circa 3 giorni con un sistema Kde completo).
L'Os non te lo consiglio perché il tuo nocona ha una buona cache; può rivelarsi più performante con cpu con la cache molto piccola.
Per esempio il kernel compilato con Os sul mio Via Esther (cache size: 128 KB) risulta più veloce al boot di qualche secondo; già l'Athlon (cache size: 256 KB) con Os ha tempi di boot di meno di un secondo più veloce.
In ogni caso ho provato questo:
root@altarf:~# apt-build --remove-builddep --noupdate install xulrunner-1.9 iceweasel
Con questo apt-build.conf:
build-dir = /var/cache/apt-build/build
repository-dir = /var/cache/apt-build/repository
mtune = -mtune=pentium-m
Olevel = -O2
options = " -march=pentium-m -mfpmath=sse"
make_options = " -j2"
Però durante il configure succede questo:
creating cache ./config.cache
checking host system type... i486-pc-linux-gnu
checking target system type... i486-pc-linux-gnu
checking build system type... i486-pc-linux-gnu
Poi, durante la compilazione, viene usato -Os e basta. C'è qualche cosa che non mi torna.
Non serve nemmeno impostare le varie variabili di compilazione:
CHOST="i686-pc-linux-gnu"; export CHOST
CFLAGS="-march=pentium-m -O2 -mfpmath=sse -pipe -fomit-frame-pointer"; export CFLAGS
CXXFLAGS="-march=pentium-m -O2 -mfpmath=sse -pipe -fomit-frame-pointer"; export CXXFLAGS
Mi son perso qualcosa?
Dcromato
26-04-2009, 17:11
guarda ne so meno di te...ora sono a lavoro con un C7m e il tuo script mi indicava c3:confused:
Comunque ho provato a dare un occhiata a sta guida.
http://guide.debianizzati.org/index.php/Apt-build:_ottimizzazione_dei_pacchetti
~FullSyst3m~
26-04-2009, 23:46
Qualcosa di più tecnico e approfondito a riguardo c'è? Non ho trovato nulla di particolarmente interessante.
Gimli[2BV!2B]
27-04-2009, 01:02
Ho impostato il wrapper di apt-build come cc, ma non è servito a nulla.
@ ~FullSyst3m~, non ho trovato niente di più di piccole guide che illustrano i passi di configurazione e invocano il magico apt-build world.
Mi lascia piuttosto perplesso dalla struttura dell'apt-build.conf.
Sono abbastanza certo che l'i486-pc-linux-gnu del configure sia corretta, trattandosi di Debian, mentre resto nell'oscurità riguardo all'Os che risultava essere l'unica flag utilizzata durante la compilazione.
Ipotesi relative al problema che ho riscontrato:
Scelta infelice del pacchetto per fare le mie prove? (in Gentoo c'è una flag per attivare le ottimizzazioni in Xulrunner/Firefox (http://gentoo-portage.com/net-libs/xulrunner/USE))
Wrapper configurato male/documentato poco?
Dcromato, durante la compilazione vedi effettivamente utilizzate la flag che hai impostato?
Dcromato
27-04-2009, 01:28
io si però sono su ubuntu...ma non è che il comando che hai dato:
apt-build --remove-builddep --noupdate xulrunner-1.9 iceweasel
manca di qualcosa?so che ci dev'essere un comando primario come install o upgrade
~FullSyst3m~
27-04-2009, 10:16
;27247657']Ho impostato il wrapper di apt-build come cc, ma non è servito a nulla.
@ ~FullSyst3m~, non ho trovato niente di più di piccole guide che illustrano i passi di configurazione e invocano il magico apt-build world.
Mi lascia piuttosto perplesso dalla struttura dell'apt-build.conf.
Sono abbastanza certo che l'i486-pc-linux-gnu del configure sia corretta, trattandosi di Debian, mentre resto nell'oscurità riguardo all'Os che risultava essere l'unica flag utilizzata durante la compilazione.
Ipotesi relative al problema che ho riscontrato:
Scelta infelice del pacchetto per fare le mie prove? (in Gentoo c'è una flag per attivare le ottimizzazioni in Xulrunner/Firefox (http://gentoo-portage.com/net-libs/xulrunner/USE))
Wrapper configurato male/documentato poco?
Dcromato, durante la compilazione vedi effettivamente utilizzate la flag che hai impostato?
Al momento non mi interessa molto la cosa, mi informerò in un secondo momento.
con gcc aggiungi -pipe -fomit-frame-pointer (perdi possibilità di debug ma sono flags sicure), usa O2, di più non ha senso
Se intendi giocare tanto con ricompila gcc e glibc(magari solo con le localizzazioni che ti servono), che magari in seguito stai meno tempo a compilare ;)
se puoi usa icc al posto di gcc (fino a +20%);) (ma attento alla licenza dei binari ottenuti)
per ottimizzazioni più spinte, imho, non ne vale la pena, a meno di dover tirare su un cluster di calcolo (per elaborazioni MOLTO specializzate) in cui anche il 3% di incremento di prestazioni è importante.
PS: se hai tanta ram COMPILA IN RAM!!!!! fa miracoli.
poi usa ccache, per non dover ri-buildare le stesse cose n volte!
Gimli[2BV!2B]
27-04-2009, 20:10
@ Dcromato, ho copiato male, stavo litigando con Konsole 4.2.2-1... dannata, se si chiude un tab ci si gioca il menù destro, in automatico vado di ctrl C per copiare, ma naturalmente non è la scelta migliore...
Ho fatto un paio di prove con delle pulci di pacchetti (most e dash), durante la compilazione l'unica flag attivata è l'On:
[most...]
gcc -c -O2 -g -Wall -DUTF8 -Dunix -DMOST_SYSTEM_INITFILE='"/etc/most.conf"' /var/cache/apt-build/build/most-5.0.0a/src/most.c
[...]
[dash...]
gcc -DHAVE_CONFIG_H -I. -I../../src -I.. -include ../config.h -DBSD=1 -DSHELL -DIFS_BROKEN -Wall -g -O2 -Wall -MT histedit.o -MD -MP -MF ".deps/histedit.Tpo" -c -o histedit.o ../../src/histedit.c
[...]
Ora sto provando bash (che builddep bizzarre... texlive-latex-base-doc?)
Pure qua solo O2:
gcc -c -I. -I../.. -I../../../bash -I../../../bash/lib -I../../../bash/include -I../../../bash/lib/sh -DHAVE_CONFIG_H -DSHELL -g -O2 -Wall ../../../bash/lib/sh/shtty.c
Certo l'O2 non è da buttare, ma vorrei capire perché non vengono utilizzate la altre flag. Perché tutte le librerie collegate al programma andrebbero ricompilate con le stesse opzioni, quindi vengono eliminate d'ufficio? È colpa degli alieni?
Resta che la ricompilazione di Iceweasel/Firefox-Xulrunner sembra imporre l'utilizzo di Os, rendendo di fatto la cosa una pura e semplice perdita di tempo (si vede che son di cattivo umore?).
Vabbè, credo proprio che ora lo disinstallerò e non proverò più a trasformare la mia amata Debian in Gentoo.
P.S. --remove-builddep non mia ha rimosso le builddep installate ad apt-build.
Dcromato
27-04-2009, 21:45
;27258782']
P.S. --remove-builddep non mia ha rimosso le builddep installate ad apt-build.
quoto, e la cosa mi scoccia alquanto
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.