I am trying to compile qt 4.7.4 using the angstrom tool chain installed at /home/user/Software for a beagle board.
The error I am receiving is:
/corelib/arch/qatomic_arm.h:131: Error: no such instruction: `swpb %al,%dl,[%esi]’
My qmake.conf file is as follows:
#
# qmake configuration for building with arm-none-linux-gnueabi-g++
#
include(../../common/g++.conf)
include(../../common/linux.conf)
include(../../common/qws.conf)
# modifications to g++.conf
QMAKE_CC = arm-angstrom-linux-gnueabi-gcc
QMAKE_CXX = arm-angstrom-linux-gnueabi-g++
QMAKE_LINK = arm-angstrom-linux-gnueabi-g++
QMAKE_LINK_SHLIB = arm-angstrom-linux-gnueabi-g++
# modifications to linux.conf
QMAKE_AR = arm-angstrom-linux-gnueabi-ar cqs
QMAKE_OBJCOPY = arm-angstrom-linux-gnueabi-objcopy
QMAKE_STRIP = arm-angstrom-linux-gnueabi-strip
QMAKE_LIBDIR_QT = /usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/${libdir}
QMAKE_MOC = /usr/local/angstrom/arm/bin/moc4
QMAKE_UIC = /usr/local/angstrom/arm/bin/uic4
QMAKE_UIC3 = /usr/local/angstrom/arm/bin/uic34
QMAKE_RCC = /usr/local/angstrom/arm/bin/rcc4
QMAKE_QDBUSCPP2XML = /usr/local/angstrom/arm/bin/qdbuscpp2xml4
QMAKE_QDBUSXML2CPP = /usr/local/angstrom/arm/bin/qdbusxml2cpp4
QMAKE_INCDIR = /usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/include
QMAKE_LIBDIR = /usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/lib
QMAKE_INCDIR_X11 = /usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/usr/include
QMAKE_LIBDIR_X11 = /usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/usr/lib
QMAKE_INCDIR_QT = $$[QT_INSTALL_HEADERS]
QMAKE_LIBDIR_QT = $$[QT_INSTALL_LIBS]
QMAKE_INCDIR_OPENGL = /usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/usr/include
QMAKE_LIBDIR_OPENGL = /usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/usr/lib
QMAKE_INCDIR_OPENGL_ES1 = $$QMAKE_INCDIR_OPENGL
QMAKE_LIBDIR_OPENGL_ES1 = $$QMAKE_LIBDIR_OPENGL
QMAKE_INCDIR_OPENGL_ES2 = $$QMAKE_INCDIR_OPENGL
QMAKE_LIBDIR_OPENGL_ES2 = $$QMAKE_LIBDIR_OPENGL
QMAKE_INCDIR_EGL =
QMAKE_LIBDIR_EGL =
QMAKE_INCDIR_OPENVG =
QMAKE_LIBDIR_OPENVG =
load(qt_config)
my configure command is below
./configure -embedded arm -prefix /home/thwijeth/Software/qt-4.7.4-embedded -xplatform qws/linux-arm-gnueabi-g++ -fast -little-endian -opensource
Can someone figure out why this happens?
Some Googling suggests the following:
BeagleBoard uses TI’s OMAP 3530 processor, which uses ARMv7 instruction set (according to Wikipedia).
The ARM website suggests that the
swpbinstruction has been deprecated (and disabled by default) since ARMv6:A bug report goes into more detail:
I’m afraid this isn’t my core area of expertise and I don’t have such a board in front of me at the moment.
My advice, however is to try enabling the System Control Register SW bit and see if that helps you (seeing as you’re not using multiple cores, perhaps the problems referred to in the bug report above will not affect you).
Alternatively, this patch looks like it could provide another route for you by emulating the problem instructions using alternative means.
Good luck!