Summary: | dev-qt/qtwebkit:5 tries to link to link against system leveldb | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Uwe L. Korn <uwelk> |
Component: | [OLD] Library | Assignee: | Qt Bug Alias <qt> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | esigra, lori, losier.cc, nikoli, uwelk |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 454132, 543326 | ||
Attachments: | Compressed tail of build.log |
Description
Uwe L. Korn
2014-08-06 10:47:01 UTC
Installed leveldb version was 1.9.0-r5 Created attachment 382372 [details]
Compressed tail of build.log
Usersupplied build.log
And what's wrong about using the system copy? Is this just a case of automagic dep? Looks like the systemcopy is missing a some functions which the bundled one has. Probably the bundled is newer than the system copy or has a custom patch. It seems Qt just prefer system leveldb to bundled one: https://qt.gitorious.org/qt/qtwebkit/commit/032ed118eeb3cb642720336a1ef67623bb97f9c4 This is still an issue with dev-qt/qtwebkit-5.4.1 from Portage. As per comment #5, I've pushed a commit to the overlay for review to ensure that the system copy is used. https://gitweb.gentoo.org/proj/qt.git/commit/?id=fa9569964aba22b7849b2a91b38d4479e3a6293e make[2]: Entering directory '/var/tmp/portage/dev-qt/qtwebkit-5.9999/work/qtwebkit-5.9999_build/Source' rm -f libQt5WebKit.so.5.6.0 libQt5WebKit.so libQt5WebKit.so.5 libQt5WebKit.so.5.6 x86_64-pc-linux-gnu-g++ -Wl,-O1 -Wl,--as-needed -Wl,--gc-sections -Wl,--no-undefined -Wl,--no-undefined -fdebug-types-section -fuse-ld=gold -shared -Wl,-Bsymbolic-functions -Wl,-soname,libQt5WebKit.so.5 -o libQt5WebKit.so.5.6.0 -lQt5Gui -lQt5Core -lpthread -lpthread -lQt5Network -lQt5Core -lpthread -lpthread -lQt5Core -lpthread -lpthread -Wl,-whole-archive -lWebKit1 -Wl,-no-whole-archive -L/var/tmp/portage/dev-qt/qtwebkit-5.9999/work/qtwebkit-5.9999_build/Source/WebKit/ -Wl,-whole-archive -lWebKit2 -Wl,-no-whole-archive -L/var/tmp/portage/dev-qt/qtwebkit-5.9999/work/qtwebkit-5.9999_build/Source/WebKit2/ -lrt -Wl,-whole-archive -lWebCore -Wl,-no-whole-archive -L/var/tmp/portage/dev-qt/qtwebkit-5.9999/work/qtwebkit-5.9999_build/Source/WebCore/ -lz -lXrender -lXcomposite -lXrender -lleveldb -lmemenv -ljpeg -lpng -lwebp -Wl,-whole-archive -lANGLE -Wl,-no-whole-archive -L/var/tmp/portage/dev-qt/qtwebkit-5.9999/work/qtwebkit-5.9999_build/Source/ThirdParty/ANGLE/ -Wl,-whole-archive -lJavaScriptCore -Wl,-no-whole-archive -L/var/tmp/portage/dev-qt/qtwebkit-5.9999/work/qtwebkit-5.9999_build/Source/JavaScriptCore/ -Wl,-whole-archive -lWTF -Wl,-no-whole-archive -L/var/tmp/portage/dev-qt/qtwebkit-5.9999/work/qtwebkit-5.9999_build/Source/WTF/ -lXext -lX11 -lm -lX11 -lxslt -lxml2 -lz -lm -ldl -lm -lxml2 -lxml2 -lsqlite3 -licui18n -licuuc -licudata -lQt5Quick -lQt5Qml -lQt5Network -lQt5Core -lpthread -lpthread -lQt5Core -lpthread -lpthread -lQt5Gui -lQt5Core -lpthread -lpthread -lQt5Network -lQt5Core -lpthread -lpthread -lQt5Core -lpthread -lpthread -lQt5Qml -lQt5Network -lQt5Core -lpthread -lpthread -lQt5Core -lpthread -lpthread -lQt5Multimedia -lQt5Network -lQt5Core -lpthread -lpthread -lQt5Gui -lQt5Core -lpthread -lpthread -lQt5Core -lpthread -lpthread -lQt5Network -lQt5Core -lpthread -lpthread -lQt5Gui -lQt5Core -lpthread -lpthread -lQt5Sql -L/usr/lib64/mysql -lQt5Core -lpthread -lpthread -lQt5Core -lpthread -lGL /var/tmp/portage/dev-qt/qtwebkit-5.9999/work/qtwebkit-5.9999_build/Source/WebCore//libWebCore.a(/var/tmp/portage/dev-qt/qtwebkit-5.9999/work/qtwebkit-5.9999_build/Source/WebCore//.obj/platform/leveldb/LevelDBDatabase.o):LevelDBDatabase.cpp:function WebCore::openDB(leveldb::Comparator*, leveldb::Env*, WTF::String const&, leveldb::DB**) [clone .constprop.34]: error: undefined reference to 'leveldb::DB::Open(leveldb::Options const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, leveldb::DB**)' /var/tmp/portage/dev-qt/qtwebkit-5.9999/work/qtwebkit-5.9999_build/Source/WebCore//libWebCore.a(/var/tmp/portage/dev-qt/qtwebkit-5.9999/work/qtwebkit-5.9999_build/Source/WebCore//.obj/platform/leveldb/LevelDBDatabase.o):LevelDBDatabase.cpp:function WebCore::LevelDBDatabase::destroy(WTF::String const&): error: undefined reference to 'leveldb::DestroyDB(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, leveldb::Options const&)' collect2: error: ld returned 1 exit status Makefile.api:109: recipe for target '../lib/libQt5WebKit.so.5.6.0' failed make[2]: *** [../lib/libQt5WebKit.so.5.6.0] Error 1 make[2]: Leaving directory '/var/tmp/portage/dev-qt/qtwebkit-5.9999/work/qtwebkit-5.9999_build/Source' Makefile.QtWebKit:44: recipe for target 'sub-api-pri-make_first-ordered' failed make[1]: *** [sub-api-pri-make_first-ordered] Error 2 make[1]: Leaving directory '/var/tmp/portage/dev-qt/qtwebkit-5.9999/work/qtwebkit-5.9999_build/Source' Makefile:307: recipe for target 'sub-Source-QtWebKit-pro-make_first-ordered' failed make: *** [sub-Source-QtWebKit-pro-make_first-ordered] Error 2 * ERROR: dev-qt/qtwebkit-5.9999::qt failed (compile phase): * emake failed reinstall of dev-libs/leveldb-1.18-r1 did help. This is in-tree in 5.4.2. I have a tip for those using LTO by default. Blacklisting QtWebKit5 from LTO is not enough as it will stop compiling on some undefined referenced to leveldb. Only hen both webkit and leveldb are stopped from using LTO will the compilation succeed. I am probably not supposed to write this in here, but I do not think the issue is big enough to write a full bug report; and I just want to save some time for anyone else who will search for the solution in future. |