# problemi distcc fra i686 e amd64

## triki

Uso un pc fisso con core 2 due e6600 per aiutare un portatile (PIII) a compilare. Ho configurato distcc e crossdev come da guide ufficiali, noto però che quesi mai la compilazione viene distribuita sul fisso, in particolare con openoffice e glib.

Questi sono i file di configurazione:

make.conf portatile:

```

CFLAGS="-O2 -march=pentium3 -pipe -fomit-frame-pointer"

CHOST="i686-pc-linux-gnu"

CXXFLAGS="${CFLAGS}"

MAKEOPTS="-j3"

FEATURES="ccache distcc"

CCACHE_SIZE="1G"

LINGUAS="it"

ALSA_CARDS="nm256"
```

/etc/distcc/hosts portatile:

```
10.0.0.4/2
```

/etc/conf.d/distccd fisso

```

DISTCCD_OPTS=""

DISTCCD_EXEC="/usr/bin/distccd"

DISTCCD_PIDFILE="/var/run/distccd/distccd.pid"

DISTCCD_OPTS="${DISTCCD_OPTS} --port 3632"

DISTCCD_OPTS="${DISTCCD_OPTS} --log-level warning"

DISTCCD_OPTS="${DISTCCD_OPTS} --allow 10.0.0.5"

DISTCCD_NICE="15"
```

cosa posso fare soprattutto per openoffice, perchè facendolo compilare tutto al portatile rischio di bruciare tutto

grazie

----------

## skypjack

IMHO, openoffice-bin is better!  :Wink: 

Good luck ...

----------

## djinnZ

Nulla, OOo di fatto non supporta più di j2 indipendetemente da quante cpu hai perchè è "estremamente delicato" (a quel che ricordo).

Al massimo cerca se è possibile caricare tutta l'elaborazione sul remoto ma ci metterai un secolo.

@skypjack OOo binario sullo stesso pc 3 secondi per visualizzarlo contro ~1,30 (ho usato il cronometro invece di time per ragioni che non sto a piegare, quindi ho misurato dal click sull'icona a quando ha lampeggiato la prima volta il cursore sulla pagina vuota) del compilato. ;-P)

Ovviamente se non usi almeno un -O2 -fomit-frame-pointer -Wl,-O1 (ed anche --as-need, crepi l'astrologo) e non abiliti dbus odk e integrazioni varie non credo ne valga la pena, ovviamente. Ed è anche più stabile visto che ad oggi non mi ha crashato neanche una volta.  :Mr. Green: 

----------

## triki

 *djinnZ wrote:*   

> Ovviamente se non usi almeno un -O2 -fomit-frame-pointer -Wl,-O1 (ed anche --as-need, crepi l'astrologo) e non abiliti dbus odk e integrazioni varie non credo ne valga la pena, ovviamente. Ed è anche più stabile visto che ad oggi non mi ha crashato neanche una volta. 

 

k corretto il -j2 e messo tutto sul remoto perchè a me non interessa far presto ma piuttosto non bruciare tutto, per quanto riguarda le opzioni -WL,-O1 e --as-need a che servono? E come posso abilitare dbus e odk? devo metterli nelle flag use?

grazie

----------

## djinnZ

 *triki wrote:*   

> corretto il -j2

 

Non ti serve correggerlo se non ricordo male è proprio l'automake di OOo che impone il -j2 indipendentemente da quel che fai.

 *triki wrote:*   

> per quanto riguarda le opzioni -WL,-O1 e --as-need a che servono?

 

Sono LDFLAGS per l'uso e l'abuso ti consiglio di fare una ricerca (fa caldo e mi sento pigro) su questo forum e sulla doc semiufficiale o chiedere ai nostri cari devel italiani (se skianti il tutto sappi che il mandante è drittzt che me la ha suggerita o flameyes che la ha suggerita a lui se non erro).

In pratica -O1 ottimizza al linking la dimensione dell'eseguibile --as-need linka solo le funzioni effettivamente usate ma crea seri problemi perchè potrebbe perdersi qualcosa in particolare nelle librerie scritte in c++). Alla seconda devi fare molta attenzione se sei così pazzo (mah... uno che usa gentoo tanto sano di mente non è, a prescindere) da usarla e per me puoi implementarla solo gestendo le ottimizzazioni per pacchetto e non globalmente (in pratica portage-bashrc).

 *triki wrote:*   

> E come posso abilitare dbus e odk? devo metterli nelle flag use?

  of course però l'integrazione dbus ti comporta il rischio di dover ricompilare OOo ad ogni aggiornamento dello stesso quindi valuta bene cosa ti serve e cosa no.

----------

## skypjack

 *djinnZ wrote:*   

> (mah... uno che usa gentoo tanto sano di mente non è, a prescindere)

 

Da questo momento, ti adoro ufficialmente!!  :Laughing: 

----------

## Scen

 *triki wrote:*   

> noto però che quesi mai la compilazione viene distribuita sul fisso, in particolare con openoffice e glib.

 

Come ti è già stato fatto notare (ed era scritto anche nella guida):

 *http://www.gentoo.org/doc/it/distcc.xml#doc_chap5 wrote:*   

> 
> 
> 5. Risoluzione dei Problemi
> 
> Alcuni pacchetti non usano distcc
> ...

 

----------

## triki

k fin qui c'ero, però visto che ad esempio openoffice alcuni mesi fa riuscivo a distribuirlo senza problemi, vorrei sapere se c'è un modo per forzare la distribuzione, del resto ho settato distcc in modo che venga usato solo il fisso per compilare e che il portatile non faccia nulla evitando quindi compilazioni parallele.

----------

## Scen

Penso che la fregatura stia nel fatto che l'ebuild di openoffice, in src_compile, lanci

```

make || die "Build failed"

```

invece di

```

emake || die "Build failed"

```

e praticamente emerge viene "scavalcato", ignorando completamente la tua configurazione di distcc e soci. Potresti provare copiare l'ebuild in un tuo overlay locale e modificare quella riga, e farci sapere se il trucchetto funziona  :Cool: 

----------

## djinnZ

se dai uno sguardo sul bugzilla di OOo o sulla ML tedesca/internazonale dei devel forse trovi la spiegazione.

Più di una volta hanno provato ad abilitare il make parallelo e sistematicamente uscivano problemi a run time se non ricordo male (mi pare con l'ultima revisione 1.1 ma verifica).

Alcuni programmi sono organizzati in modo tale da non suppoortare il make parallelo e c'è poco da fare.

Ovviamente nulla ti vieta di provare ma te lo sconsiglio (si parlava di documenti resi inaccessibili e db devastati).

----------

## triki

k la compilazione parallela non si può fare e cmq non ho le conoscenze per forzare gli ebuild, volevo però capiore se è possibile fare in modo di usare SOLO il pc più potente e lasciare scarico il portatile per evitare che si surriscaldi; in questo modo non dovrebbe più essere una compilazione parallela o sbaglio?

----------

## drizztbsd

fatti una chroot a 32 bit sull'amd64 e creati un binario di openoffice compilato con le cflags del portatile

----------

## djinnZ

puoi anche provare montando via nfs la root del portatile in /mnt/gentoo, lanciare un mount --bind /var/tmp/portage /mnt/gentoo/var/tmp/portage ed entrare in chroot. Non è altrettanto veloce ma funziona (anche se ci metterà qualche ora in più, non so quante perchè in genere lascio il computer a compilare durante la notte).

Al più potresti pensare di adattare gli script per libc&c in ram per portarti il compilatore il jdk ed i generatori di cocumenti in ram insieme alle librerie principali e lasciare il resto su nfs.

Ti consiglio di esportarti il proc del portatile nel chroot perchè altrimenti l'automake di OOo potrebbe volere le librerie x64 comunque.

----------

## Onip

 *triki wrote:*   

> volevo però capiore se è possibile fare in modo di usare SOLO il pc più potente e lasciare scarico il portatile per evitare che si surriscaldi

 

https://forums.gentoo.org/viewtopic-t-443007-highlight-portatile+felice.html

Byez   :Wink: 

----------

