[webkit-help] Cross-compiling webkit for ARM platform on Linux-x86 machine

Jilu Oommen jilu at tataelxsi.co.in
Thu Aug 27 06:28:39 PDT 2009


Hi,

Thanks for all at Webkit-help mailing list for your support.

For building Webkit-QT port for ARM, I built QtEmbedded-4.5.2 for ARM, 
pointed the QTDIR variable to this location and
 changed the PATH variable also accordingly.
I also had to crosscompile libraries like freetype, fontconfig, libxml 
etc also for ARM.
Then I was able to successfully build Webkit for ARM using "build-webkit 
--qt".

A couple of tips for anyone out there who is having a tough time 
building webkit on ARM

1) While building Qt-Embedded Linux
         i)  make sure that the PATH variable points correctly to the
 'bin' folderof your cross-tool chain folder, for example
*export 
PATH=/opt/ptxdist-0.10.4/gcc-4.0.2-glibc-2.3.6/arm-softfloat-linux-gnu/bin:$PATH*

        ii) invoke configure with
*./configure -embedded arm -xplatform qws/linux-arm-g++ -L 
/opt/ptxdist-0.10.4/gcc-4.0.2-glibc-2.3.6/arm-softfloat-linux-gnu/lib  
-make tools*
Only then libQtUiTools will be built which is required for building webkit
(P.S the default configuration of Qt-embedded linux does not build 
QtUiTools)
*make
sudo make install*

2) While building webkit ensure that QTDIR points to the Qt-embedded 
directory
If your QT version is not up to date,  you will get qmake -r unknown 
option while invoking build-webkit.

*export QTDIR=/usr/local/Trolltech/QtEmbedded-4.5.2-arm
export PATH=$QTDIR/bin:$PATH*
 *./WebKitTools/Scripts/build-webkit --qt*


3) while building dependant libraries like freetype, fontconfig, libxml etc
take care that the PATH variable points to the ARM cross-tool-chain bin 
directory.
Also take care that ARM platform is specified while invoking configure 
script.

*./configure --host=arm-linux 
--prefix=/usr/local/Trolltech/QtEmbedded-4.5.2-arm.
make
sudo make install*

my experience is that if you give another prefix other than the QT 
folder, you may get some
linking errors like

/warning: libxml2.so.2, needed by 
/opt/ptxdist-0.10.4/gcc-4.0.2-glibc-2.3.6/arm-softfloat-linux-gnu/lib/libfontconfig.so, 
not found
(try using -rpath or -rpath-link)/

in case you get errors like arm-linux-gcc or arm-linux-ranlib not found, 
while doing make install,
you can edit the libtool file and specify the entire path for the variables
for example
/RANLIB="/opt/ptxdist-0.10.4/gcc-4.0.2-glibc-2.3.6/arm-softfloat-linux-gnu/bin/arm-linux-ranlib"./
invoke make install again

4) when building webkit, you are likely to get some typecast errors like :

/WebKit-r47266/WebKitTools/DumpRenderTree/qt/ImageDiff.cpp:122: error: 
no matching function for call to 'qMax(qreal&,
double)'/
/difference = qMax(difference, 0.01); ->  difference = qMax(difference, 
0.01);

/Solution is to modify the line as
d/ifference = qMax(difference, 0.01); ->  difference = qMax(difference, 
qreal(0.01));
/and invoke build-webkit again/
/

Thanks and best regards,
Jil


nkbai baink wrote:
> first ,you should export QTDIR variable to the qt version compiled 
> with arm-softfloat-linux-gnu-g++.
> then export  PATH=$QTDIR/bin:$PATH
> force  build-webkit --qt to use your own qmake ,not the system qmake.
> it works when compiling webkit nightly build on my own machine.
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-help/attachments/20090827/62c10f90/attachment.html>


More information about the webkit-help mailing list