[Development] Help needed: Qt 3D Android build issue
Sean Harmer
sean.harmer at kdab.com
Fri May 20 11:13:51 CEST 2016
Hi,
Trying to submit a simple patch to Qt 3D we are hitting a weird compilation
error on Android CI configurations. The change is:
https://codereview.qt-project.org/#/c/157592/
and the compilation errors can be seen in full at:
http://testresults.qt.io/logs/qt/qt3d/489c6abe13e098eb87fa2c0a8639d43dfca8c02f/LinuxRHEL_6_6x86_64AndroidAndroid_22armv7GCCRelease_DisableTests_OpenGLES2_NoUseGoldLinker/1e29b40895b69af3bcc7f2f8a4b041b69e05b286/buildlog.txt.gz
but in brief they are:
In file included from /opt/android/ndk/sources/cxx-stl/gnu-
libstdc++/4.8/include/atomic:41:0,
from /home/qt/work/install/include/QtCore/qatomic_cxx11.h:45,
from /home/qt/work/install/include/QtCore/qbasicatomic.h:53,
from /home/qt/work/install/include/QtCore/qatomic.h:46,
from /home/qt/work/install/include/QtCore/qglobal.h:1145,
from
../../include/Qt3DCore/../../src/core/qt3dcore_global.h:43,
from ../../include/Qt3DCore/qt3dcore_global.h:1,
from
../../include/Qt3DRender/../../src/render/qt3drender_global.h:43,
from ../../include/Qt3DRender/qt3drender_global.h:1,
from
../../include/Qt3DRender/5.7.0/Qt3DRender/private/../../../../../src/render/backend/backendnode_p.h:54,
from
../../include/Qt3DRender/5.7.0/Qt3DRender/private/backendnode_p.h:1,
from backend/entity_p.h:55,
from backend/entity.cpp:40:
/opt/android/ndk/sources/cxx-stl/gnu-libstdc++/4.8/include/bits/atomic_base.h:
In member function 'virtual void
Qt3DRender::Render::Entity::sceneChangeEvent(const QSceneChangePtr&)':
/opt/android/ndk/sources/cxx-stl/gnu-
libstdc++/4.8/include/bits/atomic_base.h:577:70: error: failure memory model
cannot be stronger than success memory model for '__atomic_compare_exchange'
return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 0, __m1, __m2);
^
/opt/android/ndk/sources/cxx-stl/gnu-
libstdc++/4.8/include/bits/atomic_base.h:577:70: error: failure memory model
cannot be stronger than success memory model for '__atomic_compare_exchange'
return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 0, __m1, __m2);
^
/opt/android/ndk/sources/cxx-stl/gnu-
libstdc++/4.8/include/bits/atomic_base.h:577:70: error: failure memory model
cannot be stronger than success memory model for '__atomic_compare_exchange'
return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 0, __m1, __m2);
^
/opt/android/ndk/sources/cxx-stl/gnu-
libstdc++/4.8/include/bits/atomic_base.h:577:70: error: failure memory model
cannot be stronger than success memory model for '__atomic_compare_exchange'
return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 0, __m1, __m2);
^
/opt/android/ndk/sources/cxx-stl/gnu-libstdc++/4.8/include/bits/atomic_base.h:
In member function 'virtual void
Qt3DRender::Render::Entity::initializeFromPeer(const
QNodeCreatedChangeBasePtr&)':
/opt/android/ndk/sources/cxx-stl/gnu-
libstdc++/4.8/include/bits/atomic_base.h:577:70: error: failure memory model
cannot be stronger than success memory model for '__atomic_compare_exchange'
return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 0, __m1, __m2);
^
The patch makes no direct use of atomics, only via QSharedPointer. BogDan
reports that it builds fine with latest NDK.
Is this a genuine error on our part or some corner case issue with the CI's
installed NDK?
I'm at a total loss with this one and have no idea how to investigate/fix.
Any help would be greatly appreciated. :)
Kind regards,
Sean
--
Dr Sean Harmer | sean.harmer at kdab.com | Managing Director UK
Klarälvdalens Datakonsult AB, a KDAB Group company
Tel. UK +44 (0)1625 809908, Sweden (HQ) +46-563-540090
KDAB - Qt Experts - Platform-independent software solutions
More information about the Development
mailing list