# Compilare qemu

## Karhot87

Ciao, visto che  per compilare qemu è necessario gcc-3.* ed io invece ho la 4 come torno indietro di versione o installo entrambi? Grazie mille

----------

## djinnZ

```
emerge =sys-devel/gcc-3.4.6-r2

gcc-config -l
```

avrai qualcosa del genere

```
[1] i686-pc-linux-gnu-4.1.2 *

[2] i686-pc-linux-gnu-3.4.6
```

a quel punto

```
gcc-config 2 ; source /etc/profile ; env-update

emerge qemu
```

e poi rimetti a posto le cose con 

```
gcc-config 1 ; source /etc/profile ; env-update
```

----------

## Karhot87

Grazie djinnZ una volta installato e seleziona gcc3 ecco qua questo errore nel compilare qemu: 

```

../softmmu_template.h:260: error: this is the insn:

(insn:HI 333 332 334 13 ../softmmu_template.h:290 (parallel [

            (set (reg:DI 0 ax [210])

                (lshiftrt:DI (reg/v:DI 59 [ val ])

                    (subreg:QI (reg:SI 0 ax [209]) 0)))

            (clobber (scratch:SI))

            (clobber (reg:CC 17 flags))

        ]) 309 {lshrdi3_1} (insn_list 332 (nil))

    (expr_list:REG_DEAD (reg:SI 0 ax [209])

        (expr_list:REG_UNUSED (reg:CC 17 flags)

            (expr_list:REG_UNUSED (scratch:SI)

                (nil)))))

../softmmu_template.h:260: confused by earlier errors, bailing out

make[1]: *** [helper.o] Error 1

make[1]: *** Waiting for unfinished jobs....

/var/tmp/portage/app-emulation/qemu-softmmu-0.9.0-r1/work/qemu-0.9.0/target-i386/ops_sse.h: In function `op_psrlq_mmx':

/var/tmp/portage/app-emulation/qemu-softmmu-0.9.0-r1/work/qemu-0.9.0/target-i386/ops_sse.h:213: error: unable to find a register to spill in class `GENERAL_REGS'

/var/tmp/portage/app-emulation/qemu-softmmu-0.9.0-r1/work/qemu-0.9.0/target-i386/ops_sse.h:213: error: this is the insn:

(insn:HI 36 35 37 3 /var/tmp/portage/app-emulation/qemu-softmmu-0.9.0-r1/work/qemu-0.9.0/target-i386/ops_sse.h:207 (parallel [

            (set (reg:DI 63 [ <variable>.q ])

                (lshiftrt:DI (reg:DI 63 [ <variable>.q ])

                    (subreg:QI (reg/v:SI 60 [ shift ]) 0)))

            (clobber (scratch:SI))

            (clobber (reg:CC 17 flags))

        ]) 309 {lshrdi3_1} (insn_list 33 (insn_list 35 (nil)))

    (expr_list:REG_DEAD (reg/v:SI 60 [ shift ])

        (expr_list:REG_UNUSED (reg:CC 17 flags)

            (expr_list:REG_UNUSED (scratch:SI)

                (nil)))))

/var/tmp/portage/app-emulation/qemu-softmmu-0.9.0-r1/work/qemu-0.9.0/target-i386/ops_sse.h:213: confused by earlier errors, bailing out

make[1]: *** [op.o] Error 1

make[1]: Leaving directory `/var/tmp/portage/app-emulation/qemu-softmmu-0.9.0-r1/work/qemu-0.9.0/i386-softmmu'

make: *** [subdir-i386-softmmu] Error 2

 * 

 * ERROR: app-emulation/qemu-softmmu-0.9.0-r1 failed.

 * Call stack:

 *                      ebuild.sh, line 1701:  Called dyn_compile

 *                      ebuild.sh, line 1039:  Called qa_call 'src_compile'

 *                      ebuild.sh, line   44:  Called src_compile

 *   qemu-softmmu-0.9.0-r1.ebuild, line   99:  Called die

 * The specific snippet of code:

 *      emake || die "make failed"

 *  The die message:

 *   make failed

 * 

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

 * A complete build log is located at '/var/tmp/portage/app-emulation/qemu-softmmu-0.9.0-r1/temp/build.log'.

 * 

 * Messages for package app-emulation/qemu-softmmu-0.9.0-r1:

 * 

 * ERROR: app-emulation/qemu-softmmu-0.9.0-r1 failed.

 * Call stack:

 *                      ebuild.sh, line 1701:  Called dyn_compile

 *                      ebuild.sh, line 1039:  Called qa_call 'src_compile'

 *                      ebuild.sh, line   44:  Called src_compile

 *   qemu-softmmu-0.9.0-r1.ebuild, line   99:  Called die

 * The specific snippet of code:

 *      emake || die "make failed"

 *  The die message:

 *   make failed

 * 

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

 * A complete build log is located at '/var/tmp/portage/app-emulation/qemu-softmmu-0.9.0-r1/temp/build.log'.

```

----------

## djinnZ

cercando sul wiki:

http://gentoo-wiki.com/HOWTO:_Qemu#Build_with_gcc3

cercando sul forum:

https://forums.gentoo.org/viewtopic-t-633725-highlight-qemu.html

https://forums.gentoo.org/viewtopic-t-637277-highlight-qemu.html

non posso dirti molto altro perchè io ho un sistema hardened ed il gcc 3.x è quello nativo.

----------

## Karhot87

Allora ho provato a seguire questa guida:

http://gentoo-wiki.com/HOWTO:_Qemu#Build_with_gcc3

premetto che la mia conoscenza dell'inglese è limitata  :Laughing:  cmq ho fatto questo:

Lanciando

```
equery list --installed --exact-name 'sys-devel/gcc' 
```

mi ritorna che sono installati entrambi i compilatori ossia :

```

[I--] [ -] sys-devel/gcc-3.4.6-r2 (3.4)

[I--] [ -] sys-devel/gcc-4.1.2 (4.1)
```

la lista dei compilatori disponibili è questa:

```
# gcc-config -l

 [1] i686-pc-linux-gnu-3.4.6

 [2] i686-pc-linux-gnu-3.4.6-hardened

 [3] i686-pc-linux-gnu-3.4.6-hardenednopie

 [4] i686-pc-linux-gnu-3.4.6-hardenednopiessp

 [5] i686-pc-linux-gnu-3.4.6-hardenednossp

 [6] i686-pc-linux-gnu-4.1.2 *
```

seleeziono il primo con 

```
# gcc-config  1

 # gcc-config -l

 [1] i686-pc-linux-gnu-3.4.6 *

 [2] i686-pc-linux-gnu-3.4.6-hardened

 [3] i686-pc-linux-gnu-3.4.6-hardenednopie

 [4] i686-pc-linux-gnu-3.4.6-hardenednopiessp

 [5] i686-pc-linux-gnu-3.4.6-hardenednossp

 [6] i686-pc-linux-gnu-4.1.2

source /etc/profile

env-update 

[/url]

```

ma il risultato è questo:

```
make[1]: *** [helper.o] Error 1

make[1]: Leaving directory `/var/tmp/portage/app-emulation/qemu-softmmu-0.9.0-r1/work/qemu-0.9.0/i386-softmmu'

make: *** [subdir-i386-softmmu] Error 2

 * 

 * ERROR: app-emulation/qemu-softmmu-0.9.0-r1 failed.

 * Call stack:

 *                      ebuild.sh, line 1701:  Called dyn_compile

 *                      ebuild.sh, line 1039:  Called qa_call 'src_compile'

 *                      ebuild.sh, line   44:  Called src_compile

 *   qemu-softmmu-0.9.0-r1.ebuild, line   99:  Called die

 * The specific snippet of code:

 *      emake || die "make failed"

 *  The die message:

 *   make failed

 * 

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

 * A complete build log is located at '/var/tmp/portage/app-emulation/qemu-softmmu-0.9.0-r1/temp/build.log'.

 * 

 * Messages for package app-emulation/qemu-softmmu-0.9.0-r1:

 * 

 * ERROR: app-emulation/qemu-softmmu-0.9.0-r1 failed.

 * Call stack:

 *                      ebuild.sh, line 1701:  Called dyn_compile

 *                      ebuild.sh, line 1039:  Called qa_call 'src_compile'

 *                      ebuild.sh, line   44:  Called src_compile

 *   qemu-softmmu-0.9.0-r1.ebuild, line   99:  Called die

 * The specific snippet of code:

 *      emake || die "make failed"

 *  The die message:

 *   make failed

 * 

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

 * A complete build log is located at '/var/tmp/portage/app-emulation/qemu-softmmu-0.9.0-r1/temp/build.log'.
```

----------

## crisandbea

guarda qui https://bugs.gentoo.org/show_bug.cgi?id=194681

```
emerge -av =sys-devel/gcc-3.3.6-r1
```

 prima però inseriscilo in 

```
/etc/portage/package.keywords
```

ciauz

----------

## Scen

Vado leggermente OT:

@Karhot87: ma DEVI per forza utilizzare qemu, o sei alla ricerca di un software di virtualizzazione senza tanti fronzoli? Se è la seconda ipotesi, hai mai provato ad utilizzare app-emulation/virtualbox(-bin)?

----------

## crisandbea

 *Scen wrote:*   

> Vado leggermente OT:
> 
> @Karhot87: ma DEVI per forza utilizzare qemu, o sei alla ricerca di un software di virtualizzazione senza tanti fronzoli? Se è la seconda ipotesi, hai mai provato ad utilizzare app-emulation/virtualbox(-bin)?

 

@Scen 

[OT]

ma virtualbox  è compilato solo per x86 ovvero se uno usa una livecd ottimizzata per i686 non girerà mai con virtualbox, o esiste un metodo per dirgli che modello di architettura usare????

[/OT]

ciauz

----------

## Karhot87

 *crisandbea wrote:*   

> guarda qui https://bugs.gentoo.org/show_bug.cgi?id=194681
> 
> ```
> emerge -av =sys-devel/gcc-3.3.6-r1
> ```
> ...

 

da sempre errore.

Quello che volevo fare io era emulare windows Xp per vedere come andava, e se l'esito era positvo togliere il dual boot nel mio pc e tenere winzz emulato quando mi serviva   :Laughing: 

----------

## crisandbea

 *Karhot87 wrote:*   

>  *crisandbea wrote:*   guarda qui https://bugs.gentoo.org/show_bug.cgi?id=194681
> 
> ```
> emerge -av =sys-devel/gcc-3.3.6-r1
> ```
> ...

 

una volta emerso quella versione di gcc-3.3.6-r1 , ed ovviamente aver tolto la 3.4,  devi dire al sistema di usare quel compilatore, poi emergi qemu.

e vedi che l'errore non deve dartelo, l'ho appena emerso io facendo cosi, è non da problemi. 

comunque per fare quello che vuoi tu fai prima ad usare virtualbox.

ciao

----------

## djinnZ

Non devi togliere la 3.4 ma usare la 3.4 per compilare la 3.3. Alle volte funziona. Nei link c'era una patch specifica tra l'altro.

----------

## Karhot87

Sto provando virtualbox e devo dire che è stato molto semplice installarlo   :Laughing:  L'accelerazione 3d non c'è vero? Cmq ho provato a compilare gcc3.3 con il gcc 3.4 ma da errore(sempre lo stesso)

----------

## crisandbea

 *Karhot87 wrote:*   

> Sto provando virtualbox e devo dire che è stato molto semplice installarlo   L'accelerazione 3d non c'è vero? Cmq ho provato a compilare gcc3.3 con il gcc 3.4 ma da errore(sempre lo stesso)

 

per me hai cappellato qualcosa ...    :Wink:   , comunque se virtualbox fa ciò che chiedevi va molto meglio di qemu.  

ciauz

----------

## Karhot87

Ovviamente ho sbagliato qualcosa quello non lo metto in dubbio adesso faccio prove con virtualbox

----------

## djinnZ

prova ad aggiungere (solo per compilare qemu, mi raccomando) -fnopie (o come diavolo si fa per disabilitare pie ed ssp) alle cflags.

In realtà la cosa che mi torna strana è che hai le impostazioni gcc per la hardened mentre pare che la tua è la gentoo normale.

----------

## crisandbea

 *djinnZ wrote:*   

> prova ad aggiungere (solo per compilare qemu, mi raccomando) -fnopie (o come diavolo si fa per disabilitare pie ed ssp) alle cflags.
> 
> In realtà la cosa che mi torna strana è che hai le impostazioni gcc per la hardened mentre pare che la tua è la gentoo normale.

 

le impostazioni gentoo per hardened le ha perchè ha installato precedentemente la versione di gcc-3.4.6-r2, che non sò per quale motivo inseriva anche quella configurazione, diversamente se togli il 3.4.6-r2, e metti la 3.3 non hai quel problema e qemu compila.

ciauz

----------

## djinnZ

la 3.3 (anzi non dovrebbe funzionare proprio) è problematica su sistemi 4.1 nativi però. E visto che la ho tolta da poco tempo sono sicuro che prevedeva le stesse opzioni della 3.4 per hardened e sulla gentoo "normale" non dovrebbero esserci.

----------

## crisandbea

 *djinnZ wrote:*   

> la 3.3 (anzi non dovrebbe funzionare proprio) è problematica su sistemi 4.1 nativi però. E visto che la ho tolta da poco tempo sono sicuro che prevedeva le stesse opzioni della 3.4 per hardened e sulla gentoo "normale" non dovrebbero esserci.

 

purtroppo invece è cosi, ho testato ed anche io se installo la 3.4 mi da i profili per hardned, viceversa se uso la 3.3 ho solo quel profilo come dovrebbe.

ciauz

----------

