Re: assembler error in qt
Is swpb a valid instruction for ARM? Is there a chance you assembler doesn't support it even though it's valid?
Re: assembler error in qt
Hey everybody,
here is my problem:
{standard input}: Assembler messages:
{standard input}:143: Error: no such instruction: `swpb %edx,%al,[%ecx]'
{standard input}:172: Error: no such instruction: `swpb %edx,%al,[%ecx]'
{standard input}:195: Error: no such instruction: `swpb %edx,%al,[%ecx]'
{standard input}:217: Error: no such instruction: `swpb %edx,%bl,[%ecx]'
{standard input}:675: Error: no such instruction: `swpb %edx,%al,[%ecx]'
{standard input}:699: Error: no such instruction: `swpb %edx,%bl,[%ecx]'
{standard input}:974: Error: no such instruction: `swpb %ecx,%al,[%edx]'
{standard input}:995: Error: no such instruction: `swpb %eax,%cl,[%edx]'
{standard input}:1069: Error: no such instruction: `swpb %ecx,%al,[%edx]'
{standard input}:1090: Error: no such instruction: `swpb %eax,%cl,[%edx]'
make: *** [can_in_out.o] Fehler 1
It looks like you have the same Problem like me. So what’s the solution? Did you found one?
Re: assembler error in qt
Hello :),
I have the same problem building Qt-Extended-4.4.3 for ARM with the same qfutureinterface.cpp file.
I dug deeper to find the reason and here is what I found:
- I am compiling with the option -mthumb which instructs the assembler to use the Thumb set of ARM instructions.
- The instructions SWP and SWPB are available in all ARM architectures instruction sets.
- The instructions SWP and SWPB are NOT available in Thumb mode.
I removed the -mthumb option from my configuration and the problem was solved.
I still do not know why the qfutureinterface.cpp is needing these instructions :confused: - I believe it is something related to critical sections (QMutexLocker).
Regards,
Aleks
Re: assembler error in qt
Hi,
I am using AM3517 EVM and omap3_qt46_config.patch so that I can run the demos on EVM kit. I have attached the cofigure_omap3 file below for reference.
./configure_omap3
gmake
but it gives me similar errors. I don't see any option like -mthumb.
Please, tell me what I should do to resolve this error.
regards,
../../include/QtCore/../../src/corelib/tools/qsharedpointer_impl.h:405: warning: lowering visibility of ‘QSharedPointer<X> QtSharedPointer::copyAndSetPointer(X*, const QSharedPointer<Y>&) [with X = X, Y = Y, T = QAbstractAnimation]’ to match its type
{standard input}: Assembler messages:
{standard input}:560: Error: no such instruction: `swpb %cl,%al,[%edi]'
{standard input}:573: Error: no such instruction: `swpb %al,%sil,[%edi]'
{standard input}:585: Error: no such instruction: `swpb %cl,%al,[%edi]'
{standard input}:939: Error: no such instruction: `swpb %cl,%al,[%esi]'
{standard input}:952: Error: no such instruction: `swpb %al,%dil,[%esi]'
{standard input}:963: Error: no such instruction: `swpb %cl,%al,[%esi]'
{standard input}:1406: Error: no such instruction: `swpb %cl,%al,[%esi]'
{standard input}:1419: Error: no such instruction: `swpb %al,%dil,[%esi]'
{standard input}:1430: Error: no such instruction: `swpb %cl,%al,[%esi]'
{standard input}:1597: Error: no such instruction: `swpb %cl,%al,[%esi]'
{standard input}:1610: Error: no such instruction: `swpb %al,%dil,[%esi]'
{standard input}:1621: Error: no such instruction: `swpb %dl,%al,[%esi]'
{standard input}:1631: Error: no such instruction: `swpb %cl,%al,[%esi]'
{standard input}:1644: Error: no such instruction: `swpb %al,%dil,[%esi]'
{standard input}:1655: Error: no such instruction: `swpb %dl,%al,[%esi]'
{standard input}:1663: Error: no such instruction: `swpb %cl,%al,[%esi]'
{standard input}:1676: Error: no such instruction: `swpb %al,%dil,[%esi]'
{standard input}:1687: Error: no such instruction: `swpb %cl,%al,[%esi]'
{standard input}:1757: Error: no such instruction: `swpb %cl,%al,[%esi]'
{standard input}:1770: Error: no such instruction: `swpb %al,%dil,[%esi]'
{standard input}:1781: Error: no such instruction: `swpb %dl,%al,[%esi]'
{standard input}:1788: Error: no such instruction: `swpb %cl,%al,[%esi]'
{standard input}:1801: Error: no such instruction: `swpb %al,%dil,[%esi]'
{standard input}:1812: Error: no such instruction: `swpb %dl,%al,[%esi]'
{standard input}:1821: Error: no such instruction: `swpb %cl,%al,[%esi]'
{standard input}:1834: Error: no such instruction: `swpb %al,%dil,[%esi]'
{standard input}:1845: Error: no such instruction: `swpb %dl,%al,[%esi]'
{standard input}:2127: Error: no such instruction: `swpb %cl,%al,[%esi]'
{standard input}:2140: Error: no such instruction: `swpb %al,%dil,[%esi]'
{standard input}:2152: Error: no such instruction: `swpb %cl,%al,[%esi]'
{standard input}:2236: Error: no such instruction: `swpb %dl,%al,[%esi]'
{standard input}:2248: Error: no such instruction: `swpb %al,%dil,[%esi]'
{standard input}:2826: Error: no such instruction: `swpb %cl,%al,[%esi]'
{standard input}:2839: Error: no such instruction: `swpb %al,%dil,[%esi]'
{standard input}:2850: Error: no such instruction: `swpb %dl,%al,[%esi]'
{standard input}:2857: Error: no such instruction: `swpb %cl,%al,[%esi]'
{standard input}:2870: Error: no such instruction: `swpb %al,%dil,[%esi]'
{standard input}:2881: Error: no such instruction: `swpb %dl,%al,[%esi]'
{standard input}:2890: Error: no such instruction: `swpb %cl,%al,[%esi]'
{standard input}:2903: Error: no such instruction: `swpb %al,%dil,[%esi]'
{standard input}:2914: Error: no such instruction: `swpb %dl,%al,[%esi]'
{standard input}:3019: Error: no such instruction: `swpb %cl,%al,[%edi]'
{standard input}:3032: Error: no such instruction: `swpb %al,%sil,[%edi]'
{standard input}:3043: Error: no such instruction: `swpb %dl,%al,[%edi]'
{standard input}:3112: Error: no such instruction: `swpb %al,%dl,[%edi]'
{standard input}:3125: Error: no such instruction: `swpb %al,%sil,[%edi]'
{standard input}:3137: Error: no such instruction: `swpb %dl,%cl,[%edi]'
{standard input}:3168: Error: no such instruction: `swpb %al,%dl,[%edi]'
{standard input}:3181: Error: no such instruction: `swpb %al,%sil,[%edi]'
{standard input}:3193: Error: no such instruction: `swpb %dl,%cl,[%edi]'
{standard input}:3239: Error: no such instruction: `swpb %cl,%al,[%edi]'
{standard input}:3251: Error: no such instruction: `swpb %al,%sil,[%edi]'
{standard input}:3262: Error: no such instruction: `swpb %cl,%al,[%edi]'
{standard input}:3289: Error: no such instruction: `swpb %cl,%al,[%edi]'
{standard input}:3301: Error: no such instruction: `swpb %al,%sil,[%edi]'
{standard input}:3312: Error: no such instruction: `swpb %cl,%al,[%edi]'
{standard input}:3347: Error: no such instruction: `swpb %cl,%al,[%edi]'
{standard input}:3360: Error: no such instruction: `swpb %al,%sil,[%edi]'
{standard input}:3371: Error: no such instruction: `swpb %dl,%al,[%edi]'
{standard input}:3401: Error: no such instruction: `swpb %cl,%al,[%edi]'
{standard input}:3413: Error: no such instruction: `swpb %al,%sil,[%edi]'
{standard input}:3424: Error: no such instruction: `swpb %cl,%al,[%edi]'
{standard input}:3453: Error: no such instruction: `swpb %al,%cl,[%edi]'
{standard input}:3466: Error: no such instruction: `swpb %al,%sil,[%edi]'
{standard input}:3477: Error: no such instruction: `swpb %dl,%cl,[%edi]'
{standard input}:3527: Error: no such instruction: `swpb %al,%dl,[%edi]'
{standard input}:3540: Error: no such instruction: `swpb %al,%sil,[%edi]'
{standard input}:3552: Error: no such instruction: `swpb %dl,%cl,[%edi]'
{standard input}:3593: Error: no such instruction: `swpb %al,%cl,[%edi]'
{standard input}:3606: Error: no such instruction: `swpb %al,%sil,[%edi]'
{standard input}:3617: Error: no such instruction: `swpb %dl,%cl,[%edi]'
{standard input}:3696: Error: no such instruction: `swpb %cl,%al,[%edi]'
{standard input}:3708: Error: no such instruction: `swpb %al,%sil,[%edi]'
{standard input}:3719: Error: no such instruction: `swpb %cl,%al,[%edi]'
{standard input}:3772: Error: no such instruction: `swpb %cl,%al,[%edi]'
{standard input}:3784: Error: no such instruction: `swpb %al,%sil,[%edi]'
{standard input}:3795: Error: no such instruction: `swpb %cl,%al,[%edi]'
{standard input}:3835: Error: no such instruction: `swpb %cl,%al,[%edi]'
{standard input}:3847: Error: no such instruction: `swpb %al,%sil,[%edi]'
{standard input}:3858: Error: no such instruction: `swpb %cl,%al,[%edi]'
gmake[1]: *** [.obj/release-shared-emb-arm/qabstractanimation.o] Error 1
gmake[1]: Leaving directory `/opt/qtembedded/qt-everywhere-opensource-src-4.6.2/src/corelib'
gmake: *** [sub-corelib-make_default-ordered] Error 2
================================================== =====================
configure_omap3 file
----------------------
#!/bin/sh
#------------------------------------------------------------------------------
# Configuration Settings
#
# *** YOU MUST MODIFY THE FOLLOWING SETTINGS FOR YOUR SYSTEM ***
#------------------------------------------------------------------------------
#
# QT_TARGET_DIR : Target-relative location of Qt Installation
# CSTOOL_DIR : Location of CodeSourcery 2008q1 Toolset
# GFX_SDK_DIR : Location of your graphics SDK directory
# GFX_ES_DIR : Graphics SDK sub-directory that contains your OpenGL
# libraries. This should be "gfx_rel" if you have ES 3.x
# silicon, and "gfx_rel_es2.x" if you have ES 2.x silicon.
QT_TARGET_DIR=/opt/qtembedded/qt-everywhere-opensource-src-4.6.2
CSTOOL_DIR=/opt/toolchain/arm-2009q1
GFX_SDK_DIR=/opt/OMAP35x_Graphics_SDK_3_01_00_02
GFX_ES_DIR=gfx_rel_es3.x
# Configure the qmake.conf file
# NOTE: The only reason we need to set QMAKE_CXX here is because the
# configure script does a version check on the compiler, and it doesn't
# evaluate qmake variables, so we need to set the absolute path here.
echo "Configuring linux-omap3-g++/qmake.conf for your system..."
OMAP3_SPEC=mkspecs/qws/linux-omap3-g++/qmake.conf
sed -i "s#^QMAKE_CSTOOL_DIR =.*\$#QMAKE_CSTOOL_DIR = ${CSTOOL_DIR}#" ${OMAP3_SPEC}
sed -i "s#^QMAKE_GFX_SDK_DIR =.*\$#QMAKE_GFX_SDK_DIR = ${GFX_SDK_DIR}#" ${OMAP3_SPEC}
sed -i "s#^QMAKE_GFX_ES_DIR =.*\$#QMAKE_GFX_ES_DIR = ${GFX_ES_DIR}#" ${OMAP3_SPEC}
sed -i "s#^QMAKE_CXX =.*\$#QMAKE_CXX = ${CSTOOL_DIR}/bin/arm-none-linux-gnueabi-g++#" ${OMAP3_SPEC}
# Run configure
echo "Running configure..."
exec ./configure -prefix ${QT_TARGET_DIR} -embedded arm -little-endian -fast -D QT_NO_QWS_CURSOR -D QT_QWS_CLIENTBLIT -depths 16,24,32 -platform linux-g++ -xplatform qws/linux-omap3-g++ -arch arm -opengl es2 -openvg -plugin-gfx-powervr -no-openssl -no-cups -no-largefile -qt-mouse-pc -plugin-mouse-pc -no-webkit -no-script -qt-gfx-vnc -R ${GFX_SDK_DIR}/${GFX_ES_DIR} $*
Re: assembler error in qt
Hi,
the "-mthumb option" is actually a compiler flag. You have to edit the configuration of your compiler, not the qt configuration.
Regards,
Aleks
Re: assembler error in qt
ok.
I am using the CodeSourcery toolchain of ARM GNU/Linux 2009q1
do you know in which file do I need to make changes? I do not know at present.
Re: assembler error in qt
ok. thanks for the quick reply.
I am using the CodeSourcery toolchain of ARM GNU/Linux 2009q1
do you know in which file do I need to make changes? I do not know at present.
Re: assembler error in qt
Sorry for updating old thread, but this might be useful for future readers (this thread comes first on Google).
I got the same error, not because of a -mthumb, but because it was compiling with g++ (x86) instead for the cross-compiler.
I tried "configure -embedded arm-gnueabi ..."
I tried "configure -embedded arm -xplatform qws/linux-arm-gnueabi-g++ ..."
I tried "configure -embedded -xplatform qws/linux-arm-gnueabi-g++ ..."
Nothing works, it always end-up mixing up the g++ and arm-linux-gnueabi-g++ stuff.
The internals of the configure script attempts to be smart about guessing the platforms (QWS yes,no,maybe stuff), but even "./configure -embedded -help" is not clear about the "official" parameters for cross-compiling.
I can't confirm that older posts had the same issue, because none of them included the full compiler command line leading to the error messages.
Re: assembler error in qt
hi
I'm sorry for posting an old thread, but I've encountered the same problem when compiling the qwt.
but maybe my problem is easier: the same program can go well in x86-arch qmake, but cannot go with the arm-arch qmake.
so I clean all the project, and rebuild it.
It works!