Summary: | dev-libs/injeqt-1.0.0-r1 fails to build - test/unit/dependencies-test.cpp:299: undefined reference to `bool QTest::qCompare<unsigned int, unsigned long>(unsigned int const&, unsigned long const&, char const*, char const*, char const*, int)' | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Michael Palimaka (kensington) <kensington> |
Component: | Current packages | Assignee: | Maciej Mrozowski <reavertm> |
Status: | RESOLVED FIXED | ||
Severity: | normal | ||
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 585384 | ||
Attachments: | build.log |
Description
Michael Palimaka (kensington)
![]() It builds OK with FEATURES="-test". Hmm, unable to reproduce..., FEATURES=test works fine here:
30/30 Test #30: /ready-object-behavior-test ........................... Passed 0.00 sec
100% tests passed, 0 tests failed out of 30
Total Test time (real) = 0.09 sec
* Tests succeeded.
>>> Completed testing dev-libs/injeqt-1.0.0-r1
My setup does not differ much from yours. You have:
CFLAGS -frecord-gcc-switches
LDFLAGS -Wl,--hash-style=gnu
I tried your flags but still builds. Have not tried to re-build QtTest with those flags.
In your build log:
cd /var/tmp/portage/dev-libs/injeqt-1.0.0-r1/work/injeqt-1.0.0_build/test && /usr/bin/cmake -E cmake_link_script CMakeFiles/dependencies-test.dir/link.txt --verbose=1
/usr/bin/i686-pc-linux-gnu-g++ -march=native -O2 -pipe -frecord-gcc-switches -std=c++11 -Werror -W -Wall -Wextra -Wundef -Wunused -Wuninitialized -Wcast-align -Wpointer-arith -Woverloaded-virtual -Wnon-virtual-dtor -fno-common -fvisibility=hidden -fvisibility-inlines-hidden -g -fprofile-arcs -ftest-coverage -O0 -Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu -fprofile-arcs -ftest-coverage -O0 CMakeFiles/dependencies-test.dir/unit/dependencies-test.cpp.o CMakeFiles/dependencies-test.dir/dependencies-test_automoc.cpp.o -o dependencies-test -rdynamic /usr/lib/libQt5Test.so.5.5.1 -lgcov /usr/lib/libQt5Core.so.5.5.1
/usr/lib/libQt5Test.so.5.5.1 is clearly passed to linker so it must be something funky with that QtTest library of yours.
Have you tried rebuilding it?
What is the result of objdump -C -T /usr/lib/libQt5Test.so | grep qCompare
Mine is:
000000000000e650 g DF .text 00000000000000da Base QTest::qCompare(float const&, float const&, char const*, char const*, char const*, int)
000000000000e770 g DF .text 00000000000000da Base QTest::qCompare(double const&, double const&, char const*, char const*, char const*, int)
Issue still persists after rebuilding qttest. # objdump -C -T /usr/lib/libQt5Test.so | grep qCompare 0000bc40 g DF .text 000000ca Base QTest::qCompare(float const&, float const&, char const*, char const*, char const*, int) 0000bd50 g DF .text 000000ca Base QTest::qCompare(double const&, double const&, char const*, char const*, char const*, int) I take it you don't have anything in /usr/local that would interfere (LD_PATH-wise). What happens when you build injeqt manually, outside of portage? I was able to reproduce this on a separate x86 box outside of portage. Apparently this is a known issue upstream and was fixed in (the only change) 1.0.1 https://github.com/vogel/injeqt/compare/1.0.0...1.0.1 (In reply to Michael Palimaka (kensington) from comment #5) > Apparently this is a known issue upstream and was fixed in (the only change) > 1.0.1 https://github.com/vogel/injeqt/compare/1.0.0...1.0.1 Should I continue stabilisation of 1.0.0-r1 (as it is no regression), or can we shift the target to 1.0.1 (since there are minimal changes)? 1.0.1 is stable |