Details
-
Bug
-
Resolution: Unresolved
-
P1: Critical
-
None
-
5.11.1
-
None
-
gcc7.3.0, glibc2.27
Description
Hi,
I'm upgrading qt from 5.10.1 to 5.11.1 my project (minimyth2).
I already have cross-compiled (and working well) qt5.11.1 for x86_64 and aarch64 targets - but not for armv7.
To compile 5.11.1 I'm using exactly the same cross-compile environment for all targets and this enviroment works well for me on 5.10.1 for all targets (i386, armv7, aarch64 and x86_64).
It looks like my armv7 issue is because lack within my armv7 gcc7.3.0 libstdc++
__atomic_futex_unsigned_base::_M_futex_wait_until
and
__atomic_futex_unsigned_base::_M_futex_notify_all
functions. (pls see error log below)
I checked my gcc7.3.0 libstdc++ for x86_64 and aarch64 targets - libstdc++ has above functions. This explains why I can cross-compile 5.11.1 successfully on those targets.
My armv7 cross-compiled libstdc++ hasn't above 2 functions - so 5.11.1 cross-compile fails.
I think qt configure should check for above functions and conditionally compile qt code without exploiting above functions on systems where libstdc++ is not offering above 2 functions.
(btw: geoservices/mapboxgl isn't only qt component where 2 above functions are exploited. IIRC they are also exploited in qtwebglplugin).
make[6]: Entering directory `/home/piotro/minimyth-dev/script/qt/qt5/work/main.d/qt-everywhere-src-5.11.1/qtlocation/src/plugins/geoservices/mapboxgl' rm -f libqtgeoservices_mapboxgl.so linking ../../../../plugins/geoservices/libqtgeoservices_mapboxgl.so /home/piotro/minimyth-dev/script/qt/qt5/work/main.d/qt-everywhere-src-5.11.1/qtlocation/lib/libqmapboxgl.a(local_file_source.o): In function `mbgl::LocalFileSource::LocalFileSource()': local_file_source.cpp:(.text+0x3a8): undefined reference to `std::__atomic_futex_unsigned_base::_M_futex_wait_until(unsigned int*, unsigned int, bool, std::chrono::duration<long long, std::ratio<1ll, 1ll> >, std::chrono::duration<long long, std::ratio<1ll, 1000000000ll> >)' local_file_source.cpp:(.text+0x820): undefined reference to `std::__atomic_futex_unsigned_base::_M_futex_notify_all(unsigned int*)' /home/piotro/minimyth-dev/script/qt/qt5/work/main.d/qt-everywhere-src-5.11.1/qtlocation/lib/libqmapboxgl.a(local_file_source.o): In function `mbgl::WorkTaskImpl<mbgl::util::Thread<mbgl::LocalFileSource::Impl>::~Thread()::{lambda()#1}, std::tuple<> >::operator()()': local_file_source.cpp:(.text._ZN4mbgl12WorkTaskImplIZNS_4util6ThreadINS_15LocalFileSource4ImplEED4EvEUlvE_St5tupleIJEEEclEv[_ZN4mbgl12WorkTaskImplIZNS_4util6ThreadINS_15LocalFileSource4ImplEED4EvEUlvE_St5tupleIJEEEclEv]+0x2b0): undefined reference to `std::__atomic_futex_unsigned_base::_M_futex_notify_all(unsigned int*)' /home/piotro/minimyth-dev/script/qt/qt5/work/main.d/qt-everywhere-src-5.11.1/qtlocation/lib/libqmapboxgl.a(local_file_source.o): In function `mbgl::util::Thread<mbgl::LocalFileSource::Impl>::~Thread()': local_file_source.cpp:(.text._ZN4mbgl4util6ThreadINS_15LocalFileSource4ImplEED2Ev[_ZN4mbgl4util6ThreadINS_15LocalFileSource4ImplEED5Ev]+0x428): undefined reference to `std::__atomic_futex_unsigned_base::_M_futex_wait_until(unsigned int*, unsigned int, bool, std::chrono::duration<long long, std::ratio<1ll, 1ll> >, std::chrono::duration<long long, std::ratio<1ll, 1000000000ll> >)' local_file_source.cpp:(.text._ZN4mbgl4util6ThreadINS_15LocalFileSource4ImplEED2Ev[_ZN4mbgl4util6ThreadINS_15LocalFileSource4ImplEED5Ev]+0x15d4): undefined reference to `std::__atomic_futex_unsigned_base::_M_futex_notify_all(unsigned int*)' local_file_source.cpp:(.text._ZN4mbgl4util6ThreadINS_15LocalFileSource4ImplEED2Ev[_ZN4mbgl4util6ThreadINS_15LocalFileSource4ImplEED5Ev]+0x15dc): undefined reference to `std::__atomic_futex_unsigned_base::_M_futex_notify_all(unsigned int*)' local_file_source.cpp:(.text._ZN4mbgl4util6ThreadINS_15LocalFileSource4ImplEED2Ev[_ZN4mbgl4util6ThreadINS_15LocalFileSource4ImplEED5Ev]+0x164c): undefined reference to `std::__atomic_futex_unsigned_base::_M_futex_notify_all(unsigned int*)' local_file_source.cpp:(.text._ZN4mbgl4util6ThreadINS_15LocalFileSource4ImplEED2Ev[_ZN4mbgl4util6ThreadINS_15LocalFileSource4ImplEED5Ev]+0x1654): undefined reference to `std::__atomic_futex_unsigned_base::_M_futex_notify_all(unsigned int*)' local_file_source.cpp:(.text._ZN4mbgl4util6ThreadINS_15LocalFileSource4ImplEED2Ev[_ZN4mbgl4util6ThreadINS_15LocalFileSource4ImplEED5Ev]+0x1668): undefined reference to `std::__atomic_futex_unsigned_base::_M_futex_notify_all(unsigned int*)'