Problem with qt4.6.3 compilation.

Dhruv Vyas
Hi.....

I am following this tutorial for compiling qt4 for mini2440.

http://mini2440vietnam.blogspot.in/2011/04/upgrade-qt462-in-mini2440.html

and I am getting this error on step....

make after configuring.

Error: selected processor does not support Thumb mode `swp r4,r3,[r2]'

Can anyone help ?

Dave McLaughlin
Have you tried copying and pasting the error into Google?

I tried and got lots of hits but as I am not using QT I have no idea which
would help you but it would be a good start.

Dave...

Dhruv Vyas
I tried it but i could not get how to solve it.

I am damn sure that i did something wrong in my qmake.conf file.

davef
Shows us your qmake.conf file.  This was one problem I didn't have trying
to get QT to work on the mini2440.

And that tutorial was the most useful one, when I was working on Qt.

Dhruv Vyas
This is the content of my qmake.conf file.
It is as per the tutorial. I made necessary changes according to my tool
chain. Everything else is fine.

#
# qmake configuration for building with arm-linux-g++
#

include(../../common/g++.conf)
include(../../common/linux.conf)
include(../../common/qws.conf)

# modifications to g++.conf
QMAKE_CC                = /usr/bin/arm-linux-gnueabi-gcc -march=armv4t
-mtune=arm920t -O0 -lts
QMAKE_CXX               = /usr/bin/arm-linux-gnueabi-g++ -march=armv4t
-mtune=arm920t -O0 -lts
QMAKE_LINK              = /usr/bin/arm-linux-gnueabi-g++ -march=armv4t
-mtune=arm920t -O0 -lts
QMAKE_LINK_SHLIB        = /usr/bin/arm-linux-gnueabi-g++ -march=armv4t
-mtune=arm920t -O0 -lts

# modifications to linux.conf
QMAKE_AR                = /usr/bin/arm-linux-gnueabi-ar cqs
QMAKE_OBJCOPY           = /usr/bin/arm-linux-gnueabi-objcopy
QMAKE_STRIP             = /usr/bin/arm-linux-gnueabi-strip

QMAKE_INCDIR     += /home/tslib/include/
QMAKE_LIBDIR  += /home/tslib/lib/


QMAKE_CFLAGS_RELEASE   += -march=armv4 -mtune=arm920t
QMAKE_CFLAGS_DEBUG   += -march=armv4t -mtune=arm920t
QMAKE_CFLAGS_MT   += -march=armv4t -mtune=arm920t
QMAKE_CFLAGS_MT_DBG   += -march=armv4t -mtune=arm920t
QMAKE_CFLAGS_MT_DLL   += -march=armv4t -mtune=arm920t
QMAKE_CFLAGS_MT_DLLDBG   += -march=armv4t -mtune=arm920t
QMAKE_CFLAGS_SHLIB   += -march=armv4t -mtune=arm920t
QMAKE_CFLAGS_THREAD   += -march=armv4t -mtune=arm920t
QMAKE_CFLAGS_WARN_OFF   += -march=armv4t -mtune=arm920t
QMAKE_CFLAGS_WARN_ON   += -march=armv4t -mtune=arm920t


QMAKE_CXXFLAGS_DEBUG   += -march=armv4t -mtune=arm920t
QMAKE_CXXFLAGS_MT   += -march=armv4t -mtune=arm920t
QMAKE_CXXFLAGS_MT_DBG   += -march=armv4t -mtune=arm920t
QMAKE_CXXFLAGS_MT_DLL   += -march=armv4t -mtune=arm920t
QMAKE_CXXFLAGS_MT_DLLDBG  += -march=armv4t -mtune=arm920t
QMAKE_CXXFLAGS_RELEASE   += -march=armv4t -mtune=arm920t
QMAKE_CXXFLAGS_SHLIB   += -march=armv4t -mtune=arm920t
QMAKE_CXXFLAGS_THREAD   += -march=armv4t -mtune=arm920t
QMAKE_CXXFLAGS_WARN_OFF  += -march=armv4t -mtune=arm920t
QMAKE_CXXFLAGS_WARN_ON   += -march=armv4t -mtune=arm920t

load(qt_config)

Dhruv Vyas
However let me tell you one more thing. I am trying to compile 4.6.3 and
tut is about compiling 4.6.2. Hope it doesn't make any difference.

Dhruv Vyas
I am getting this kind of statement while configuring. 

./configure: 6390: ./configure: arm920t: not found

davef
Maybe, this might make a difference

# modifications to g++.conf
QMAKE_CC = /usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-gcc -msoft-float
-D__GCC_FLOAT_NOT_NEEDED -march=armv4t -mtune=arm920t -O0 -lts
QMAKE_CXX = /usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-g++
-msoft-float -D__GCC_FLOAT_NOT_NEEDED -march=armv4t -mtune=arm920t -O0 -lts
QMAKE_LINK = /usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-g++
-msoft-float -D__GCC_FLOAT_NOT_NEEDED -march=armv4t -mtune=arm920t -O0 -lts
QMAKE_LINK_SHLIB = /usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-g++
-msoft-float -D__GCC_FLOAT_NOT_NEEDED -march=armv4t -mtune=arm920t -O0 -lts


Adjust for your compiler and the path to it.

Dave Festing
Attachment: Qt tutorial.zip (30 KB)
Here's my re-write of that tutorial.  Rename it as a Qt tutorial.doc 

Good luck.

Dhruv Vyas
Hi...

@ dave....
I tried your tutorial but it is showing me the same error.

I don't understand the problem yet.

First while configuring i see a line mentioning.

./configure: 6390: ./configure: arm920t: not found

@ dave --> what difference does it make ? I made it as per my toolchain
path.

# modifications to g++.conf
QMAKE_CC = /usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-gcc -msoft-float
-D__GCC_FLOAT_NOT_NEEDED -march=armv4t -mtune=arm920t -O0 -lts
QMAKE_CXX = /usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-g++
-msoft-float -D__GCC_FLOAT_NOT_NEEDED -march=armv4t -mtune=arm920t -O0 -lts
QMAKE_LINK = /usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-g++
-msoft-float -D__GCC_FLOAT_NOT_NEEDED -march=armv4t -mtune=arm920t -O0 -lts
QMAKE_LINK_SHLIB = /usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-g++
-msoft-float -D__GCC_FLOAT_NOT_NEEDED -march=armv4t -mtune=arm920t -O0 -lts

Let me know if you have any tutorial to develop gui over existing qtopia
image.

Dave Festing
Doubt if it will help, but which kernel are you using?

There are tutorials out there, but I never went any further after I got the
/demo/browser to work.  And that was quite painful.

Dhruv Vyas
As in ? My pc or kernel for mini2440 ?

I am running 2.6.32.2 kernel for mini2440.

I am running ubuntu 12.04 on my laptop.

davef
> arm-linux-gnueabi-gcc

Which toolchain does that version come in?

Dhruv Vyas
arm-linux-gnueabi-gcc --version
arm-linux-gnueabi-gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
Copyright (C) 2011 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

It shows me this when I execute arm-linux-gnueabi-gcc --version.

Which toolchain do you recommend ?

Earlier i was trying, arm-linux-gcc however it was showing me error while
using that ....
.arm-none-linux-gcc not found.

So I shifted to arm-linux-gnueabi-gcc.

I compiled kernel 2.6.32.2 and uploaded on the board. It was working fine
with supervivi64M --> (my zImage) --> root_qtopia64M.bin (shipped with
dvd).

So I guess toolchain works fine.

Let me know your views.

Dhruv Vyas
I followed this tutorial to set up that toolchain.

http://www.acmesystems.it/foxg20_arm9_cross_compiler

davef
Referring to the link:

Except you changed to another cross-compiler (4.6.3) From my understanding
if the correct library versions are NOT compiled with the same
cross-compiler, as the kernel, you MIGHT have problems.

Looks like you are OK.  

There are rules that generally result in success when you are building from
scratch.  Using one cross-compiler for everything seems to be one of them.

In my experience it is "minefield" of things that can go wrong.

The toolchain I use comes with the Pengutronix package and using it has
reduced my frustration level by orders of magnitude.

Keep hacking away at it, it is a good learning experience.

Good luck!

Dhruv Vyas
@ davef

Can you assist me through this ?

I am planning to use arm-linux-gcc 4.4.3 toolchain for this.

I extracted it and set the path according to procedure.

however when i type arm-linux-gcc --version command, it throws me an error
as below :

/opt/FriendlyARM/toolschain/4.4.3/bin/arm-linux-gcc: 15: exec:
/opt/FriendlyARM/toolschain/4.4.3/bin/.arm-none-linux-gnueabi-gcc: not
found


Let me know if you have any solution to this program.

Sandeep Sondagar
Problem:-
"/opt/FriendlyARM/toolschain/4.4.3/bin/.arm-none-linux-gnueabi-gcc: not
found " 

Discription :- You are running on x64 bit host and trying to use compile
with 32bit tool-chain.

Solution :- "sudo apt-get install lib32ncurses5"