# [RISOLTO] Errore in compilazione

## silvius

Ho qualche problema nella compilazione:

```
/usr/bin/libtool: line 5966: i386-pc-linux-gnu-ar: command not found

make: *** [libjpeg.la] Error 127

!!! ERROR: media-libs/jpeg-6b-r7 failed.

Call stack:

  ebuild.sh, line 1539:   Called dyn_compile

  ebuild.sh, line 939:   Called src_compile

  jpeg-6b-r7.ebuild, line 34:   Called die

!!! make failed

!!! If you need support, post the topmost build error, and the call stack if relevant.

```

make.conf

```
CFLAGS="-O2 -march=pentium-m -msse3 -pipe -fomit-frame-pointer -fforce-addr"

CHOST="i686-pc-linux-gnu"

CXXFLAGS="${CFFLAGS}"

LDFLAGS="-W1, -O1 -W1,--sort-common -W1,--enable-new-dtags -W1,-zdynsort -W1,--as-needed"

MAKEOPTS="-j5"

CFLAGS_SAFE="-O2 -march=pentium-m -pipe -fomit-frame-pointer"

LDFLAGS_SAFE="-W1,-O1 -W1,--sort-common -W1,--enable-new-dtags -W1,-zdynsort"

GENTOO_MIRRORS="ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/gentoo http://195.56.77.10/ http://194.149.10.102/ ftp://ftp.w$

SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"

LINGUAS="it"

USE="-doc apm lm_sensor gtk -gnome kde qt dvd alsa cdr mozilla java nsplugin browserplugin userlocales usb dvdr win32codecs"

```

Le flags mi erano state suggerite, il chost l'ho cambiato da i386.... a i686...... prima ancora di compilare il kernel.( sono in prima installazione )

SalutoLast edited by silvius on Wed Aug 02, 2006 10:16 am; edited 1 time in total

----------

## .:chrome:.

quale versione di GCC usi?

----------

## silvius

 *k.gothmog wrote:*   

> quale versione di GCC usi?

 

gcc (GCC) 3.4.4 (Gentoo 3.4.4-r1, ssp-3.4.4-1.0, pie-8.7. :Cool: 

Saluto

----------

## .:chrome:.

è strano che i pacchetti diano quel tipo di errore con il compilatore stabile.

comunque mi puzzano molto le tue LDFLAGS (e anche un po' le CFLAGS) prova a commentare quelle righe nel make.conf e a fare un emerge --resume

----------

## silvius

 *k.gothmog wrote:*   

> è strano che i pacchetti diano quel tipo di errore con il compilatore stabile.
> 
> comunque mi puzzano molto le tue LDFLAGS (e anche un po' le CFLAGS) prova a commentare quelle righe nel make.conf e a fare un emerge --resume

 

Mi erano state suggerite quando avevo chiesto che flags e makeopts usare su un centrino dual core.

ho commentato tutte le ld e cf così:

```
........

#LDFLAGS="-W1, -O1 -W1,--sort-common -W1,--enable-new-dtags -W1,-zdynsort -W1,--as-needed"

MAKEOPTS="-j5"

#CFLAGS_SAFE="-O2 -march=pentium-m -pipe -fomit-frame-pointer"

#LDFLAGS_SAFE="-W1,-O1 -W1,--sort-common -W1,--enable-new-dtags -W1,-zdynsort"

......

```

Ho lanciato emerge --resume, ma ho sempre lo stesso errore.

Saluto

----------

## gutter

```
i386-pc-linux-gnu-ar
```

```
CHOST="i686-pc-linux-gnu" 
```

Hai per caso cambiato CHOST ultimamente?

----------

## .:chrome:.

 *silvius wrote:*   

> 
> 
> ```
> /usr/bin/libtool: line 5966: i386-pc-linux-gnu-ar: command not found
> ```
> ...

 

questa mi era sfuggita

 *silvius wrote:*   

> Le flags mi erano state suggerite, il chost l'ho cambiato da i386... a i686

 

come pure questa

NON SI CAMBIA CHOST! se hai un CHost sbagliato vuol dire che hai usato uno stage di installazione sbagliato!

al limite prova rifacendo l'emerge di libtool, ma di regola CHOST non si cambia!

suggerimento OT: mettere CFLAGS e LDFLAGS a casaccio non è bella cosa. meglio lasciare i valori di default quando non si sa cosa mettere

----------

## silvius

 *gutter wrote:*   

> 
> 
> ```
> i386-pc-linux-gnu-ar
> ```
> ...

 

Sono alla prima installazione su questa macchina, e quando sono arrivato al settaggio del chost ho messo i686....., perchè mi era stato suggerito così per un centrino duo.

Comunque, ho solo ricompilato il kernel ed emerso utility varie ( pciutils, lshw ecc.... ) e basta, quindi se è il caso reinstallo tutto oppure provo a rimettere i386.

Saluto

----------

## .:chrome:.

 *silvius wrote:*   

> centrino duo

 

core duo, al limite

la questione è che quel processore usa un'architettura completamente diversa da tutto quello che c'è stato un precedenza. i vecchi progetti sono stati buttati via e si è rifatto tutto da capo (finalmente), quindi difficilmente si potranno ottenere buoni risultati percorrendo la strada che hai imboccato tu. l'unica scelta secondo me sensata è cercare qualcosa che gli si avvicini in caratteristiche (centrino, appunto, con -march=pentium-m) e aspettare che le prossive revisioni del compilatore introducano un qualche tipo di supporto specifico per quell'architettura.

riempirsi di CFLAGS e LDFLAGS delle quali non si conosce nemmeno il significato è spesso controproducente e porta facilmente al risultato opposto

----------

## silvius

 *k.gothmog wrote:*   

>  *silvius wrote:*   centrino duo 
> 
> core duo, al limite
> 
> la questione è che quel processore usa un'architettura completamente diversa da tutto quello che c'è stato un precedenza. i vecchi progetti sono stati buttati via e si è rifatto tutto da capo (finalmente), quindi difficilmente si potranno ottenere buoni risultati percorrendo la strada che hai imboccato tu. l'unica scelta secondo me sensata è cercare qualcosa che gli si avvicini in caratteristiche (centrino, appunto, con -march=pentium-m) e aspettare che le prossive revisioni del compilatore introducano un qualche tipo di supporto specifico per quell'architettura.
> ...

 

Quindi consigli di rimettere in chost "i386......", e poi basta che faccio un emerge -e world dovrebbe andare a posto, giusto ?

Come CFLAGS e LDFLAGS cosa consigliate ?

Saluto

----------

## .:chrome:.

io ti suggerisco di mettere i686, ma questo vuol dire cambiare stage di installazione (o fare un emerge -e world)

per le CFLGAS la mia opinione te l'ho detta. usa una configurazione da centrino (che bene o male hai già) lasciando perdere le soluzioni esotiche che hai messo nelle LDFLAGS

----------

## silvius

 *k.gothmog wrote:*   

> io ti suggerisco di mettere i686, ma questo vuol dire cambiare stage di installazione (o fare un emerge -e world)
> 
> per le CFLGAS la mia opinione te l'ho detta. usa una configurazione da centrino (che bene o male hai già) lasciando perdere le soluzioni esotiche che hai messo nelle LDFLAGS

 

Io ho già i686...., come stage ho usato un x86.... ( penso che sia universale no? )

Le ldflags le posso anche eliminare ma adesso le ho commentate e con emerge --resume mi da sempre lo stesso errore.

Saluto

----------

## .:chrome:.

hai ricompilato libtool come ti ho detto?

----------

## silvius

 *k.gothmog wrote:*   

> hai ricompilato libtool come ti ho detto?

 

Più tardi provo, però stavo guardando i stage3 e mi pare che quello che ho usato io ( stage3-X86...... ) non è universale come pensavo.

Non è il caso che forse provo con un stage3-i686......

Saluto

----------

## .:chrome:.

cosa vuol dire che non è universale?

lo è perché è comiplato per i386 (o i486, non ricordo di preciso)

----------

## silvius

 *k.gothmog wrote:*   

> cosa vuol dire che non è universale?
> 
> lo è perché è comiplato per i386 (o i486, non ricordo di preciso)

 

Ho sempre pensato che X86 abbracciava tutti i processori intel dai più vecchio agli attuali, mentre i686 solo dal pIII in poi.

Quindi con il mio duo core ho installato x86 ( pensando che nel dubbio è sempre meglio x86 )

Che dici scarico lo stage3-i686...... e rifaccio tutto ????

Saluto

----------

## .:chrome:.

 *silvius wrote:*   

> Ho sempre pensato che X86 abbracciava tutti i processori intel dai più vecchio agli attuali, mentre i686 solo dal pIII in poi.

 

beh, non è quello che ho scritto?

il codice i386 è ovviamente compatibile anche con i processori più moderni.

in risposta alla tua domanda puoi rifare tutto o fare un emerge -e world (a quel punto puoi cambiare la variabile CHOST se proprio ci tieni)

EDIT:

come volevasi dimostrare: ho provato a installare un pacchetto dopo avere impostato le tue LDFLAGS:

```
configure: error: installation or configuration problem: C compiler cannot create executables.
```

tolte le LDFLAGS è andato tutto liscio

----------

## silvius

 *k.gothmog wrote:*   

>  *silvius wrote:*   Ho sempre pensato che X86 abbracciava tutti i processori intel dai più vecchio agli attuali, mentre i686 solo dal pIII in poi. 
> 
> beh, non è quello che ho scritto?
> 
> il codice i386 è ovviamente compatibile anche con i processori più moderni.
> ...

 

Allora se ho capito bene :

uso x86 si devo installare su hw vecchio, 386,486, ecc.....

uso i686 se devo installare su hw più moderno pentium 3,4,centrino ecc......

Giusto ?

Ho ricompilato libtool ora è tutto ok, grazie. Direi che a questo punto mi conviene toglier le LDFLAGS e setto il make.conf così:

```
CHOST="i686-pc-linux-gnu"

CFLAGS="-O2 -march=pentium-m -pipe -fomit-frame-pointer"

CXXFLAGS="${CFLAGS}" 
```

e lancio un emerge -e world, ok ?????

Saluto

----------

## .:chrome:.

 *silvius wrote:*   

> uso x86 si devo installare su hw vecchio, 386,486, ecc.....
> 
> uso i686 se devo installare su hw più moderno pentium 3,4,centrino ecc......

 

più o meno. nel senso che x86 è universale: funziona su TUTTO, anche le architetture più moderne

 *silvius wrote:*   

> Ho ricompilato libtool ora è tutto ok, grazie. Direi che a questo punto mi conviene toglier le LDFLAGS e setto il make.conf così:
> 
> ```
> CHOST="i686-pc-linux-gnu"
> 
> ...

 

giusto. in questo modo puoi fare a meno di rifare tutto lo stage. buon divertimento

----------

## silvius

 *k.gothmog wrote:*   

> 
> 
> ...
> 
> ..
> ...

 

Quindi la vera differenza tra x86 e i686 dovrebbe essere solo nelle performance ?

Saluto

----------

## .:chrome:.

 *silvius wrote:*   

> Quindi la vera differenza tra x86 e i686 dovrebbe essere solo nelle performance ?

 

indirettamente

la differenza sta nelle architetture supportate, quindi nei set di istruzioni implementati

le differenza in termini di performance è relativa al contesto: è dimostrato che le corse alla compilazione ed all'ottimizzazione extra-spinta spesso producono più danni che altro, e così le architetture più semplici sono quelle che vanno meglio.

un esempio su tutti: la distribuzione più snella e agile nei tempi di risposta che ho provato io è stata slackware, e quella è compilata per i486

alla faccia delle ottimizzazioni e dei maniaci delle opzioni di compilazione

----------

## silvius

 *k.gothmog wrote:*   

>  *silvius wrote:*   Quindi la vera differenza tra x86 e i686 dovrebbe essere solo nelle performance ? 
> 
> indirettamente
> 
> la differenza sta nelle architetture supportate, quindi nei set di istruzioni implementati
> ...

 

Alla fine ho reinstallato da capo perchè lanciando emerge -e world, ogni tanto si fermava e dovevo ricompilare qualcosa.

Saluto

----------

