# CrossCompile: Qt:4 Problem

## Finswimmer

Hi,

mein Ziel ist es ein 32-bit Qt:4 zu haben.

Was ich bis jetzt gemacht habe:

crossdev i586-unknown-linux-gnu

export SYSROOT="/usr/i586-unknown-linux-gnu/" in /etc/bash/bashrc

cd $SYSROOT/etc

Dort dann make.globals, make.profile, make.conf angepasst.

qt:4 unmasked

xmerge qt-core:4 -av aufgerufen

(Ich habe mich an http://www.gentoo.org/proj/en/base/embedded/handbook/index.xml?part=1&chap=5 gehalten)

Nun kommt aber folgende Fehlermeldung:

```

compiling concurrent/qtconcurrentfilter.cpp                                                                                                  

compiling concurrent/qtconcurrentmap.cpp                                                                                                     

compiling concurrent/qtconcurrentresultstore.cpp                                                                                             

compiling concurrent/qtconcurrentthreadengine.cpp                                                                                            

compiling concurrent/qtconcurrentiteratekernel.cpp                                                                                           

compiling concurrent/qtconcurrentexception.cpp                                                                                               

compiling concurrent/qthreadpool.cpp                                                                                                         

compiling global/qglobal.cpp                                                                                                                 

../../include/QtCore/../../src/corelib/arch/qatomic_i386.h: Assembler messages:                                                              

../../include/QtCore/../../src/corelib/arch/qatomic_i386.h:177: Error: Incorrect register `%rbp' used with `l' suffix                        

../../include/QtCore/../../src/corelib/arch/qatomic_i386.h:177: Error: Incorrect register `%rbp' used with `l' suffix                        

make: *** [.obj/release-shared/qglobal.o] Error 1                                                                                            

make: *** Waiting for unfinished jobs....                                                                                                    

../../include/QtCore/../../src/corelib/arch/qatomic_i386.h: Assembler messages:                                                              

../../include/QtCore/../../src/corelib/arch/qatomic_i386.h:177: Error: Incorrect register `%rbp' used with `l' suffix                        

make: *** [.obj/release-shared/qthreadpool.o] Error 1 

```

Ps: Was mich auch irritiert ist das:

```
Determining system architecture... (Linux:2.6.29.1:x86_64)

    64-bit AMD 80x86 (x86_64)

    'i386' is supported

    'x86_64' is supported

System architecture: 'i386'

```

Danke

Tobi

----------

## musv

```
setarch i586
```

(eventuell auch setarch i386)

Ich hatte dasselbe Problem mit OpenOffice. Siehe dazu auch hier:

https://bugs.gentoo.org/255183 (vorletzter Beitrag)

----------

## Finswimmer

setarch i386 -- /usr/local/sbin/xmerge qt-core:4 -av

als auch

setarch i586 -- /usr/local/sbin/xmerge qt-core:4 -av

haben zu dem gleichen Fehler geführt...

Tobi

----------

## 69719

rgb ist ein 64 bit AMD Register. Bei Qt mußte man so weit ich weiß das Qt als i586 installieren, damit man cross compilen kann, da diese ihren eigenen Compiler mitbringen und nicht den gcc nutzen.

----------

## Finswimmer

 *escor wrote:*   

> rgb ist ein 64 bit AMD Register. Bei Qt mußte man so weit ich weiß das Qt als i586 installieren, damit man cross compilen kann.

 

Wie mache ich das?

Ich bin da leider aufgeschmissen.

Währenddessen kommt:

```
Determining system architecture... (Linux:2.6.29.1:i686)

    32-bit Intel 80x86 (i386)

    'i386' is supported

System architecture: 'i386'

```

Das ist doch schonmal gut, oder?

Ich frage mich, ob er den richtigen g++ aufruft:

g++  -o ptrsizetest ptrsizetest.o

Tobi

----------

