[Interest] tst_qatomicinteger build failure (5.9 i386/x86_64)

Christian Gagneraud chgans at gmail.com
Fri Sep 1 09:21:43 CEST 2017


On 1 September 2017 at 18:37, Christian Gagneraud <chgans at gmail.com> wrote:
> Hi there,
>
> Back on my 32 bits build of Qt
>
> I'm having a build failure on tst_qatomicinteger for qlonglong.
>
> Static failure: Q_STATIC_ASSERT(Q_ALIGNOF(QAtomicInteger<T>) ==
> Q_ALIGNOF(TypeInStruct));
>
> Sounds very much like a 32/64 bits issue.

Actually i have more test build failure:

2 about qlonglong and qulonglong, and a bunch of other that look like
this (simple) one:

g++ -m32 -Wl,-O1 -fuse-ld=gold -Wl,--enable-new-dtags
-Wl,-rpath,/home/krys/Projects/qt5/qtbase/lib -o tst_qline
.obj/tst_qline.o   -lm -L/home/krys/Projects/qt5/qtbase/lib -lQt5Test
-lQt5Core -lpthread
.obj/tst_qline.o(.qtversion+0x0): error: unexpected reloc 3 against
global symbol qt_version_tag without base register in object file when
generating a position-independent output file
collect2: error: ld returned 1 exit status

Should I disabled the gold linker? I've heard of problems with it
while cross building Qt...

I am able to execute some test suites, eg tst_qvariant yields:
Totals: 131 passed, 0 failed, 0 skipped, 0 blacklisted, 40822ms

Full list of build failures:

$ make -j10 -k 1> /dev/null
.obj/tst_qmouseevent.o(.qtversion+0x0): error: unexpected reloc 3
against global symbol qt_version_tag without base register in object
file when generating a position-independent output file
collect2: error: ld returned 1 exit status
make[6]: *** [tst_qmouseevent] Error 1
make[6]: Target 'first' not remade because of errors.
make[5]: *** [sub-qmouseevent-make_first] Error 2
.obj/tst_qwindow.o(.qtversion+0x0): error: unexpected reloc 3 against
global symbol qt_version_tag without base register in object file when
generating a position-independent output file
collect2: error: ld returned 1 exit status
make[6]: *** [tst_qwindow] Error 1
make[6]: Target 'first' not remade because of errors.
make[5]: *** [sub-qwindow-make_first] Error 2
make[5]: Target 'first' not remade because of errors.
make[4]: *** [sub-kernel-make_first] Error 2
.obj/tst_qbrush.o(.qtversion+0x0): error: unexpected reloc 3 against
global symbol qt_version_tag without base register in object file when
generating a position-independent output file
collect2: error: ld returned 1 exit status
make[6]: *** [tst_qbrush] Error 1
make[6]: Target 'first' not remade because of errors.
make[5]: *** [sub-qbrush-make_first] Error 2
.obj/tst_qcssparser.o(.qtversion+0x0): error: unexpected reloc 3
against global symbol qt_version_tag without base register in object
file when generating a position-independent output file
collect2: error: ld returned 1 exit status
make[6]: *** [tst_qcssparser] Error 1
make[6]: Target 'first' not remade because of errors.
make[5]: *** [sub-qcssparser-make_first] Error 2
make[5]: Target 'first' not remade because of errors.
make[4]: *** [sub-painting-make_first] Error 2
.obj/tst_qtextlayout.o(.qtversion+0x0): error: unexpected reloc 3
against global symbol qt_version_tag without base register in object
file when generating a position-independent output file
collect2: error: ld returned 1 exit status
make[6]: *** [tst_qtextlayout] Error 1
make[6]: Target 'first' not remade because of errors.
make[5]: *** [sub-qtextlayout-make_first] Error 2
.obj/tst_gestures.o(.qtversion+0x0): error: unexpected reloc 3 against
global symbol qt_version_tag without base register in object file when
generating a position-independent output file
collect2: error: ld returned 1 exit status
make[5]: *** [tst_gestures] Error 1
make[5]: Target 'first' not remade because of errors.
make[4]: *** [sub-gestures-make_first] Error 2
make[5]: Target 'first' not remade because of errors.
make[4]: *** [sub-text-make_first] Error 2
make[4]: Target 'first' not remade because of errors.
make[3]: *** [sub-gui-make_first] Error 2
.obj/tst_qpixmapfilter.o(.qtversion+0x0): error: unexpected reloc 3
against global symbol qt_version_tag without base register in object
file when generating a position-independent output file
collect2: error: ld returned 1 exit status
make[6]: *** [tst_qpixmapfilter] Error 1
make[6]: Target 'first' not remade because of errors.
make[5]: *** [sub-qpixmapfilter-make_first] Error 2
make[5]: Target 'first' not remade because of errors.
make[4]: *** [sub-effects-make_first] Error 2
make[4]: Target 'first' not remade because of errors.
make[3]: *** [sub-other-make_first] Error 2
.obj/tst_qgraphicsobject.o(.qtversion+0x0): error: unexpected reloc 3
against global symbol qt_version_tag without base register in object
file when generating a position-independent output file
collect2: error: ld returned 1 exit status
make[6]: *** [tst_qgraphicsobject] Error 1
make[6]: Target 'first' not remade because of errors.
make[5]: *** [sub-qgraphicsobject-make_first] Error 2
.obj/tst_qgraphicspixmapitem.o(.qtversion+0x0): error: unexpected
reloc 3 against global symbol qt_version_tag without base register in
object file when generating a position-independent output file
collect2: error: ld returned 1 exit status
make[6]: *** [tst_qgraphicspixmapitem] Error 1
make[6]: Target 'first' not remade because of errors.
make[5]: *** [sub-qgraphicspixmapitem-make_first] Error 2
.obj/tst_qgraphicstransform.o(.qtversion+0x0): error: unexpected reloc
3 against global symbol qt_version_tag without base register in object
file when generating a position-independent output file
collect2: error: ld returned 1 exit status
make[6]: *** [tst_qgraphicstransform] Error 1
make[6]: Target 'first' not remade because of errors.
make[5]: *** [sub-qgraphicstransform-make_first] Error 2
make[5]: Target 'first' not remade because of errors.
make[4]: *** [sub-graphicsview-make_first] Error 2
.obj/tst_qline.o(.qtversion+0x0): error: unexpected reloc 3 against
global symbol qt_version_tag without base register in object file when
generating a position-independent output file
collect2: error: ld returned 1 exit status
make[6]: *** [tst_qline] Error 1
make[6]: Target 'first' not remade because of errors.
make[5]: *** [sub-qline-make_first] Error 2
In file included from ../../../../../../include/QtCore/qglobal.h:1:0,
                 from ../../../../../../include/QtCore/QtCore:4,
                 from ../../../../../../include/QtTest/QtTestDepends:3,
                 from ../../../../../../include/QtTest/QtTest:3,
                 from ../tst_qatomicinteger.cpp:53:
../tst_qatomicinteger.cpp: In member function ‘void
tst_QAtomicInteger_qlonglong::static_checks()’:
../../../../../../include/QtCore/../../src/corelib/global/qglobal.h:732:36:
error: static assertion failed: Q_ALIGNOF(QAtomicInteger<T>) ==
Q_ALIGNOF(TypeInStruct)
 #define Q_STATIC_ASSERT(Condition) static_assert(bool(Condition), #Condition)
                                    ^
../tst_qatomicinteger.cpp:193:5: note: in expansion of macro ‘Q_STATIC_ASSERT’
     Q_STATIC_ASSERT(Q_ALIGNOF(QAtomicInteger<T>) == Q_ALIGNOF(TypeInStruct));
     ^~~~~~~~~~~~~~~
In file included from ../../../../../../include/QtCore/qglobal.h:1:0,
                 from ../../../../../../include/QtCore/QtCore:4,
                 from ../../../../../../include/QtTest/QtTestDepends:3,
                 from ../../../../../../include/QtTest/QtTest:3,
                 from ../tst_qatomicinteger.cpp:53:
../tst_qatomicinteger.cpp: In member function ‘void
tst_QAtomicInteger_qulonglong::static_checks()’:
../../../../../../include/QtCore/../../src/corelib/global/qglobal.h:732:36:
error: static assertion failed: Q_ALIGNOF(QAtomicInteger<T>) ==
Q_ALIGNOF(TypeInStruct)
 #define Q_STATIC_ASSERT(Condition) static_assert(bool(Condition), #Condition)
                                    ^
../tst_qatomicinteger.cpp:193:5: note: in expansion of macro ‘Q_STATIC_ASSERT’
     Q_STATIC_ASSERT(Q_ALIGNOF(QAtomicInteger<T>) == Q_ALIGNOF(TypeInStruct));
     ^~~~~~~~~~~~~~~
make[4]: Target 'first' not remade because of errors.
make[3]: *** [sub-widgets-make_first] Error 2
make[7]: *** [.obj/tst_qatomicinteger.o] Error 1
make[7]: Target 'first' not remade because of errors.
make[6]: *** [sub-qlonglong-make_first] Error 2
make[7]: *** [.obj/tst_qatomicinteger.o] Error 1
make[7]: Target 'first' not remade because of errors.
make[6]: *** [sub-qulonglong-make_first] Error 2
make[6]: Target 'first' not remade because of errors.
make[5]: *** [sub-qatomicinteger-make_first] Error 2
make[5]: Target 'first' not remade because of errors.
make[4]: *** [sub-thread-make_first] Error 2
make[5]: Target 'first' not remade because of errors.
make[4]: *** [sub-tools-make_first] Error 2
make[4]: Target 'first' not remade because of errors.
make[3]: *** [sub-corelib-make_first] Error 2
make[3]: Target 'first' not remade because of errors.
make[2]: *** [sub-auto-make_first] Error 2
make[2]: Target 'first' not remade because of errors.
make[1]: *** [sub-tests-make_first] Error 2
make[1]: Target 'first' not remade because of errors.
make: *** [module-qtbase-make_first] Error 2
make: Target 'first' not remade because of errors.
$


Chris


>
> Any idea on what is going on?
>
> Thanks in advance,
> Chris
>
> --------------------
> KUbuntu 17.04, gcc (Ubuntu 6.3.0-12ubuntu2) 6.3.0 20170406
> $ git show
> commit 4b5af2de682541e0077298f22a05f36f80784151
> Author: Qt Submodule Update Bot <qt_submodule_update_bot at qt-project.org>
> Date:   Tue Apr 11 16:03:07 2017 +0200
>
>     Update submodules on '5.9' in qt5
>
>     Change-Id: Id6c112e68c465ae52d49f4b35bee648894a35fef
>     Reviewed-by: Liang Qi <liang.qi at qt.io>
> --------------------
> cd qlonglong/ && ( test -e Makefile ||
> /home/krys/Projects/qt5/qtbase/bin/qmake -o Makefile
> /home/krys/Projects/qt5/qtbase/tests/auto/corelib/thread/qatomicinteger/qlonglong/qlonglong.pro
> ) && make -f Makefile
> make[7]: Entering directory
> '/home/krys/Projects/qt5/qtbase/tests/auto/corelib/thread/qatomicinteger/qlonglong'
> g++ -c -m32 -pipe -O2 -Wall -W -D_REENTRANT -fPIC
> -DQATOMIC_TEST_TYPE=qlonglong
> -Dtst_QAtomicIntegerXX=tst_QAtomicInteger_qlonglong
> -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG
> -DQT_TESTLIB_LIB -DQT_CORE_LIB
> -DQT_TESTCASE_BUILDDIR='"/home/krys/Projects/qt5/qtbase/tests/auto/corelib/thread/qatomicinteger/qlonglong"'
> -I. -I../../../../../../include -I../../../../../../include/QtTest
> -I../../../../../../include/QtCore -I.moc
> -I../../../../../../mkspecs/linux-g++-32 -o .obj/tst_qatomicinteger.o
> ../tst_qatomicinteger.cpp
> In file included from ../../../../../../include/QtCore/qglobal.h:1:0,
>                  from ../../../../../../include/QtCore/QtCore:4,
>                  from ../../../../../../include/QtTest/QtTestDepends:3,
>                  from ../../../../../../include/QtTest/QtTest:3,
>                  from ../tst_qatomicinteger.cpp:53:
> ../tst_qatomicinteger.cpp: In member function ‘void
> tst_QAtomicInteger_qlonglong::static_checks()’:
> ../../../../../../include/QtCore/../../src/corelib/global/qglobal.h:732:36:
> error: static assertion failed: Q_ALIGNOF(QAtomicInteger<T>) ==
> Q_ALIGNOF(TypeInStruct)
>  #define Q_STATIC_ASSERT(Condition) static_assert(bool(Condition), #Condition)
>                                     ^
> ../tst_qatomicinteger.cpp:193:5: note: in expansion of macro ‘Q_STATIC_ASSERT’
>      Q_STATIC_ASSERT(Q_ALIGNOF(QAtomicInteger<T>) == Q_ALIGNOF(TypeInStruct));
>      ^~~~~~~~~~~~~~~
> Makefile:1495: recipe for target '.obj/tst_qatomicinteger.o' failed
> --------------------



More information about the Interest mailing list