[Development] Issues with cross-compilation

Girish Ramakrishnan girish at forwardbias.in
Fri Mar 23 04:43:48 CET 2012


Hi Pierre,

On Thu, Mar 22, 2012 at 4:30 AM, Pierre Vorhagen <pvorhagen at gmail.com> wrote:
> Hello,
>
> I have had 2 issues with cross-compilation of Qt 5 to an ARM board, that
> I have not found clean solutions for.
>
> 1. For libbootstrap, qmake seems to pick up the cross-compiler, instead
> of the one of the development system. This results in failure when said
> library is seen to be in the wrong format.
>
> Adding "QMAKE_CC = gcc" in bootstrap.pro fixes this. However, that is
> not a very clean solution, and I was wondering if this happened to
> anyone else, or if it could be a bug somewhere. In any case, I'm quite
> sure that there must be another solution...
>

I cross compile Qt5 here all the time and haven't faced this problem.
What is your configure line and can you post your mkspecs? Do you set
CC, CXX and other env variables to point to the cross-compiler instead
of the host compiler (don't, because configure supports it!) ?

> 2. When configuring with a -prefix specific to my target system, I
> install qtbase with INSTALL_ROOT=<some_development_directory>, so that I
> can continue building other modules, and possibly tweak the current qt
> installation before putting it onto the actual board, at the location
> configured with -prefix. However, that results in the mkspec not being
> found, which can be resolved by setting QMAKESPEC but then fails when
> not finding syncqt.
>
> I fix this by adding a symlink on my development system from the -prefix
> path to the actual install, in my development directory. This is an ugly
> hack. How can I do this in a nicer way? Are there other variables like
> QMAKESPEC to be set, or is there one that gives an "INSTALL_ROOT" to qmake?
>

Yes, the whole thing doesn't work. This will be fixed by someone soon
(I know atleast Ossi is working on this). What I do is to actually
install somewhere locally /home/girish/install for example. After
that, I actually, install the whole thing in /home/girish/install on
the target :P. If you don't like that, install to /home/girish/install
on your host and use a qt.conf in your target.

> A 3rd issue would be the one I am currently on, that is hardfloat config
> test now failing when trying to build qtjsbackend, although I've built a
> functional Qt5 before, with the same toolchain... that would need more
> investigating on my part though, but if someone knows  how to resolve
> it, I would save some time. :)
>

By hardfloat config test, do you mean the test I introduced in
0b1bc97509c34881b1ee2f3bc7283a5772be9a44 ? If you have that change,
qtjsbackend should automatically detect whether your compiler is
building with hard float enabled. The test requires readelf from
binutils. Do you have readelf installed? If yes, what is the output of
"readelf -A hardfloat | grep -q \'Tag_ABI_VFP_args: VFP registers\'"
(where hardfloat is the binary generated by xcompiling
config.tests/hardfloat/)

Girish



More information about the Development mailing list