[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