[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: building qt4 for arm

On Tue, 12 Feb 2013 16:28:17 +0100
Rieker Flaik <rieker_flaik@arcor.de> wrote:

> I'm running debian arm

There is no Debian ARM port anymore, it's either armel or armhf.

> and need to rebuild libqt4 with an additional
> patch. 

For armel, it is unlikely that you want the Debian package unless you
have a full Xorg server on your armel board.

You probably need a custom build of QtEmbedded which needs additional patches.



You'll need this version of the package instead of what is in Debian
even if you are going to be building natively, unless you have a FULL
Xorg installation on your board.

> What is the best and fastest way to rebuild that package?

Cross build - and don't use ever aptitude for cross-building or
multiarch, it's broken. 

>    aptitude install emdebian-archive-keyring
>    echo "deb http://www.emdebian.org/debian/ squeeze main" >> /etc/apt/sources.list
>    aptitude update
>    aptitude install gcc-4.4-arm-linux-gnueabi cpp-4.4-arm-linux-gnueabi

Wrong - you need g++-4.4-arm-linux-gnueabi as Qt is C++

Installing g++ brings in gcc and cpp as dependencies plus the rest of
the stuff needed for C++.

apt-get install g++-4.4-arm-linux-gnueabi
> Then I did:
>    apt-get source libqt4-dev
>    dpkg-buildpackage -aarmel -j4

Drop the -j4.

Install the cross-dependencies using embuilddeps:

apt-get install xapt
apt-get source libqt4-dev
cd qt4-....
sudo embuilddeps -m -a armel
dpkg-buildpackage -aarmel -d

dpkg cannot check cross-dependencies, so you need -d to skip that check.

> The build-process started but died after 3 minutes with messages like
> this:
>    animation/qsequentialanimationgroup.cpp:467: warning: unused variable ‘q’
>    ../../include/QtCore/../../src/corelib/arch/qatomic_arm.h: Assembler messages:
>    ../../include/QtCore/../../src/corelib/arch/qatomic_arm.h:131: Error: no such instruction: `swpb %al,%bpl,[%rbx]'
>    ../../include/QtCore/../../src/corelib/arch/qatomic_arm.h:131: Error: no such instruction: `swpb %al,%bpl,[%rbx]'

Due to lack of cross-dependencies, the wrong headers got included. That
resulted in x86 assembly being included into the armel cross build, not
surprisingly, that doesn't work.

It is probably best to ensure that libqt4-dev is not installed for your
build architecture (the build arch == the Big machine or the Desktop
machine - the host arch is the handheld architecture).

You don't want libqt4-dev itself when building Qt.

> I'm still searching for a practicable way of rebuilding bigger debian
> packages.
> How do you do that?
> Any hints?

It will take many hours. Easily 5+. There again, building natively on a
Debian armel buildd box takes over 16hours.


Neil Williams

Attachment: pgpDvPs626xXm.pgp
Description: PGP signature

Reply to: