Skip to contentSkip to conversation

New: qt build failure with Sourcery CodeBench ARM 2010.09

Buildroot bugzilla at busybox.net 1 participant 6 messages Jul 26, 2012 – Oct 30, 2013

lore
Share & tools
lore
#0 lore raw

https://bugs.busybox.net/show_bug.cgi?id=5408

Summary: qt build failure with Sourcery CodeBench ARM 2010.09
Product: buildroot
Version: unspecified
Platform: PC
OS/Version: Linux
Status: NEW
Severity: minor
Priority: P5
Component: Other
AssignedTo: unassigned at buildroot.uclibc.org
ReportedBy: luca.ceresoli at tiscali.it
CC: buildroot at uclibc.org
Estimated Hours: 0.0

Created attachment 4454
--> https://bugs.busybox.net/attachment.cgi?id=4454
Defconfig to reproduce the problem

Current Buildroot master (fd08153b9d677) fails building with a minimalistic ARM Cortex-A8 config with Sourcery CodeBench ARM 2010.09 and just Qt enabled.

This is the make output:

$ LANG= make BR2_DL_DIR=~/src BR2_JLEVEL=1
Quoted 1 line
Quoted 1 line
Quoted 1 line

qt 4.8.2 Building

PATH="/home/murray/devel/buildroot/output/host/bin:/home/murray/devel/buildroot/output/host/usr/bin:/home/murray/devel/buildroot/output/host/usr/sbin/:/home/murray/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" PERLLIB="/home/murray/devel/buildroot/output/host/usr/lib/perl" /usr/bin/make
-j1 -C /home/murray/devel/buildroot/output/build/qt-4.8.2
make[1]: Entering directory
`/home/murray/devel/buildroot/output/build/qt-4.8.2'
cd src/tools/bootstrap/ && /usr/bin/make -f Makefile
make[2]: Entering directory
`/home/murray/devel/buildroot/output/build/qt-4.8.2/src/tools/bootstrap'
make[2]: Nothing to be done for `first'.
make[2]: Leaving directory
`/home/murray/devel/buildroot/output/build/qt-4.8.2/src/tools/bootstrap'
cd src/tools/moc/ && /usr/bin/make -f Makefile
make[2]: Entering directory
`/home/murray/devel/buildroot/output/build/qt-4.8.2/src/tools/moc'
make[2]: Nothing to be done for `first'.
make[2]: Leaving directory
`/home/murray/devel/buildroot/output/build/qt-4.8.2/src/tools/moc'
cd src/tools/rcc/ && /usr/bin/make -f Makefile
make[2]: Entering directory
`/home/murray/devel/buildroot/output/build/qt-4.8.2/src/tools/rcc'
make[2]: Nothing to be done for `first'.
make[2]: Leaving directory
`/home/murray/devel/buildroot/output/build/qt-4.8.2/src/tools/rcc'
cd src/tools/uic/ && /usr/bin/make -f Makefile
make[2]: Entering directory
`/home/murray/devel/buildroot/output/build/qt-4.8.2/src/tools/uic'
make[2]: Nothing to be done for `first'.
make[2]: Leaving directory
`/home/murray/devel/buildroot/output/build/qt-4.8.2/src/tools/uic'
cd src/corelib/ && /usr/bin/make -f Makefile
make[2]: Entering directory
`/home/murray/devel/buildroot/output/build/qt-4.8.2/src/corelib'
compiling animation/qabstractanimation.cpp
In file included from ../../include/QtCore/qatomic_armv6.h:1:0,
from
../../include/QtCore/../../src/corelib/arch/qatomic_armv7.h:56,

                 from ../../include/QtCore/qatomic_armv7.h:1,
                 from
../../include/QtCore/../../src/corelib/arch/qatomic_arm.h:53,
                 from ../../include/QtCore/qatomic_arm.h:1,
                 from
../../include/QtCore/../../src/corelib/arch/qatomic_arch.h:56,
                 from ../../include/QtCore/qatomic_arch.h:1,
                 from
../../include/QtCore/../../src/corelib/thread/qbasicatomic.h:227,
                 from ../../include/QtCore/qbasicatomic.h:1,
                 from
../../include/QtCore/../../src/corelib/thread/qatomic.h:46,
                 from ../../include/QtCore/qatomic.h:1,
                 from
../../include/QtCore/../../src/corelib/tools/qbytearray.h:45,
                 from ../../include/QtCore/qbytearray.h:1,
                 from
../../include/QtCore/../../src/corelib/tools/qstring.h:46,
                 from ../../include/QtCore/qstring.h:1,
                 from
../../include/QtCore/../../src/corelib/kernel/qobject.h:48,
                 from ../../include/QtCore/qobject.h:1,
                 from
../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:45,
                 from ../../include/QtCore/qcoreapplication.h:1,
                 from global/qt_pch.h:58:

../../include/QtCore/../../src/corelib/arch/qatomic_armv6.h: In function 'QThreadStorage<QUnifiedTimer*>* unifiedTimer()':
../../include/QtCore/../../src/corelib/arch/qatomic_armv6.h:223:25: error:
output number 1 not directly addressable ../../include/QtCore/../../src/corelib/arch/qatomic_armv6.h:223:25: warning:
use of memory input without lvalue in asm operand 5 is deprecated ../../include/QtCore/../../src/corelib/arch/qatomic_armv6.h: In constructor 'QUnifiedTimer::QUnifiedTimer()':
../../include/QtCore/../../src/corelib/arch/qatomic_armv6.h:127:35: error:
output number 2 not directly addressable ../../include/QtCore/../../src/corelib/arch/qatomic_armv6.h:127:35: warning:
use of memory input without lvalue in asm operand 4 is deprecated ../../include/QtCore/../../src/corelib/arch/qatomic_armv6.h:127:35: error:
output number 2 not directly addressable ../../include/QtCore/../../src/corelib/arch/qatomic_armv6.h:127:35: warning:
use of memory input without lvalue in asm operand 4 is deprecated ../../include/QtCore/../../src/corelib/arch/qatomic_armv6.h:127:35: error:
output number 2 not directly addressable ../../include/QtCore/../../src/corelib/arch/qatomic_armv6.h:127:35: warning:
use of memory input without lvalue in asm operand 4 is deprecated ../../include/QtCore/../../src/corelib/arch/qatomic_armv6.h: In destructor 'QList<T>::~QList() [with T = QAbstractAnimation*]':
../../include/QtCore/../../src/corelib/arch/qatomic_armv6.h:145:35: error:
output number 2 not directly addressable ../../include/QtCore/../../src/corelib/arch/qatomic_armv6.h:145:35: warning:
use of memory input without lvalue in asm operand 4 is deprecated ../../include/QtCore/../../src/corelib/arch/qatomic_armv6.h: In member function 'QList<T>::Node* QList<T>::detach_helper_grow(int, int) [with T = QAbstractAnimation*]':
../../include/QtCore/../../src/corelib/arch/qatomic_armv6.h:145:35: error:
output number 2 not directly addressable ../../include/QtCore/../../src/corelib/arch/qatomic_armv6.h:145:35: warning:
use of memory input without lvalue in asm operand 4 is deprecated ../../include/QtCore/../../src/corelib/arch/qatomic_armv6.h: In member function 'void QList<T>::detach_helper(int) [with T = QAbstractAnimation*]':
../../include/QtCore/../../src/corelib/arch/qatomic_armv6.h:145:35: error:
output number 2 not directly addressable ../../include/QtCore/../../src/corelib/arch/qatomic_armv6.h:145:35: warning:
use of memory input without lvalue in asm operand 4 is deprecated ../../include/QtCore/../../src/corelib/arch/qatomic_armv6.h: In member function 'void QList<T>::clear() [with T = QAbstractAnimation*]':
../../include/QtCore/../../src/corelib/arch/qatomic_armv6.h:127:35: error:
output number 2 not directly addressable ../../include/QtCore/../../src/corelib/arch/qatomic_armv6.h:127:35: warning:
use of memory input without lvalue in asm operand 4 is deprecated make[2]: *** [.obj/release-shared-emb-arm/qabstractanimation.o] Error 1 make[2]: Leaving directory `/home/murray/devel/buildroot/output/build/qt-4.8.2/src/corelib' make[1]: *** [sub-corelib-make_default-ordered] Error 2
make[1]: Leaving directory `/home/murray/devel/buildroot/output/build/qt-4.8.2'
make: *** [/home/murray/devel/buildroot/output/build/qt-4.8.2/.stamp_built] Error 2

And here's the offending code around line 223:

template <typename T>
Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetRelaxed(T *expectedValue, T *newValue)

{
    register T *result;
    asm volatile("0:\n"
                 "ldrex %[result], [%[_q_value]]\n"
                 "eors %[result], %[result], %[expectedValue]\n"
                 "itt eq\n"
                 "strexeq %[result], %[newValue], [%[_q_value]]\n"
                 "teqeq %[result], #1\n"
                 "beq 0b\n"
                 : [result] "=&r" (result),
                   "+m" (_q_value)
                 : [expectedValue] "r" (expectedValue),
                   [newValue] "r" (newValue),
                   [_q_value] "r" (&_q_value)
                 : "cc");   // <--- line 223
    return result == 0;
}

Other errors raise from similar pieces of code.

Signature · 3 lines
Configure bugmail: https://bugs.busybox.net/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
#1 lore raw

[Buildroot] [Bug 5408] qt build failure with Sourcery CodeBench ARM 2010.09

https://bugs.busybox.net/show_bug.cgi?id=5408

Luca Ceresoli <[email protected]> changed:

What |Removed |Added
----------------------------------------------------------------------------
CC| |luca.ceresoli at tiscali.it

--- Comment #1 from Luca Ceresoli <[email protected]> 2012-07-27 15:30:15 UTC --- This is a gcc 4.5 bug, as discussed in great detail at
https://bugs.launchpad.net/gcc-linaro/+bug/675347 and it affects Sourcery 2010.09 too.

The bug has been fixed in later gcc (and thus Sourcery) releases, but there is a workaround in comment 23 in the launchpad bug page above.
Just adding -fno-strict-volatile-bitfields to the compilation options makes Qt build and run. Note that this flag needs to be added to Qt *and* all programs using it, since the line triggering the error is in an include file.

Should I submit a patch so that BR2_TARGET_OPTIMIZATION defaults to a value with this flag when Sourcery 2010.09 is in use? Or just document it in BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM201009?

Signature · 3 lines
Configure bugmail: https://bugs.busybox.net/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
#2 lore raw

[Buildroot] [Bug 5408] qt build failure with Sourcery CodeBench ARM 2010.09

In reply to bugzilla at busybox.net

https://bugs.busybox.net/show_bug.cgi?id=5408

--- Comment #2 from Luca Ceresoli <[email protected]> 2012-07-27 15:31:15 UTC ---
PS: Thomas, do you think it could be wise to add all supported toolchains (including this one) to your build server?

Signature · 3 lines
Configure bugmail: https://bugs.busybox.net/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
#3 lore raw

[Buildroot] [Bug 5408] qt build failure with Sourcery CodeBench ARM 2010.09

In reply to bugzilla at busybox.net

https://bugs.busybox.net/show_bug.cgi?id=5408

--- Comment #3 from Thomas Petazzoni <[email protected]> 2012-07-28 07:42:04 UTC --- (In reply to comment #2)

Quoted 2 lines

PS: Thomas, do you think it could be wise to add all supported toolchains (including this one) to your build server?

Yes. I actually already have a bunch of CodeSourcery toolchains, but not 2010.09. I.e, I have: ARM 2010q1, ARM 2011.03 default multilib, ARM 2011.03 ARMv4 multilib, ARM 2011.09 default multilib, ARM 2011.09 thumb2 multilib. I also have x86, MIPS and PowerPC CodeSourcery toolchains. But yes, I could plan on adding *all* toolchains that we support, just to give more build coverage.

Generally speaking, the automated test builds are really only in v1 at the moment, I have a lot of ideas to improve the build coverage, and to provide a more useful Web interface for them.

Signature · 3 lines
Configure bugmail: https://bugs.busybox.net/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
#4 lore raw

[Buildroot] [Bug 5408] qt build failure with Sourcery CodeBench ARM 2010.09

In reply to bugzilla at busybox.net

https://bugs.busybox.net/show_bug.cgi?id=5408

--- Comment #4 from Thomas Petazzoni <[email protected]> 2012-07-28 07:43:29 UTC --- (In reply to comment #1)

Quoted 3 lines

Should I submit a patch so that BR2_TARGET_OPTIMIZATION defaults to a value with this flag when Sourcery 2010.09 is in use? Or just document it in BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM201009?

Though I fully admit with the goal of ensuring that each and every configuration that an user can come up with should build, I am not sure adding this option globally to the build when this toolchain is used is a good idea. I think in this specific case, I would prefer that we add a "Known issues" chapter in the documentation, in which we list known problems and their solutions.

Signature · 3 lines
Configure bugmail: https://bugs.busybox.net/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
#5 lore raw

[Buildroot] [Bug 5408] qt build failure with Sourcery CodeBench ARM 2010.09

In reply to bugzilla at busybox.net

https://bugs.busybox.net/show_bug.cgi?id=5408

Thomas Petazzoni <[email protected]> changed:

What |Removed |Added
----------------------------------------------------------------------------

             Status|NEW                         |RESOLVED
         Resolution|                            |WONTFIX

--- Comment #5 from Thomas Petazzoni <[email protected]> 2013-10-30 22:02:45 UTC --- We've removed the support for ARM CS 2010.09 since a long time, so this bug
cannot occur anymore with the existing toolchain profiles.

Signature · 3 lines
Configure bugmail: https://bugs.busybox.net/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.