Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 646530 - dev-qt/linguist-tools-5.9.4 fails to compile with -flto
Summary: dev-qt/linguist-tools-5.9.4 fails to compile with -flto
Status: RESOLVED WORKSFORME
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Qt Bug Alias
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: lto
  Show dependency tree
 
Reported: 2018-02-03 22:57 UTC by Chris Smith
Modified: 2024-03-11 22:46 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments
build log for dev-qt/linguist-tools-5.9.4 (linguist-tools-5.9.4_build.log,43.23 KB, text/x-log)
2018-02-03 22:57 UTC, Chris Smith
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Chris Smith 2018-02-03 22:57:00 UTC
Created attachment 517708 [details]
build log for dev-qt/linguist-tools-5.9.4

g++ -c -fno-lto -O2 -march=native -fomit-frame-pointer -pipe -std=c++1z -fno-exceptions -Wall -W -Wvla -Wdate-time -Wshift-overflow=2 -Wduplicated-cond -Wno-stringop-overflow -D_REENTRANT -fPIC -DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_ASCII -DPROEVALUATOR_CUMULATIVE -DPROEVALUATOR_INIT_PROPS -DQMAKE_BUILTIN_PRFS -DQMAKE_OVERRIDE_PRFS -DPROEVALUATOR_DEBUG -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT -DQT_USE_QSTRINGBUILDER -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DQT_QMLDEVTOOLS_LIB -DQT_XML_LIB -DQT_CORE_LIB -I. -I../shared -isystem /usr/include/qt5 -isystem /usr/include/qt5/QtQml -isystem /usr/include/qt5/QtQml/5.9.4 -isystem /usr/include/qt5/QtQml/5.9.4/QtQml -isystem /usr/include/qt5/QtCore/5.9.4 -isystem /usr/include/qt5/QtCore/5.9.4/QtCore -isystem /usr/include/qt5/QtXml -isystem /usr/include/qt5/QtCore -I.moc -I/usr/lib64/qt5/mkspecs/linux-g++ -o .obj/qrc_proparser.o .rcc/qrc_proparser.cpp
g++ -Wl,-O2 -Wl,--as-needed -Wl,--gc-sections -Wl,--enable-new-dtags -o ../../../bin/lupdate .obj/numerus.o .obj/translator.o .obj/translatormessage.o .obj/qm.o .obj/qph.o .obj/po.o .obj/ts.o .obj/xliff.o .obj/ioutils.o .obj/qmakevfs.o .obj/proitems.o .obj/qmakeglobals.o .obj/qmakeparser.o .obj/qmakeevaluator.o .obj/qmakebuiltins.o .obj/profileevaluator.o .obj/main.o .obj/merge.o .obj/simtexth.o .obj/cpp.o .obj/java.o .obj/ui.o .obj/qdeclarative.o .obj/qrc_proparser.o   -lQt5QmlDevTools -lQt5Xml -lQt5Core -lpthread 
.obj/qdeclarative.o: In function `load(Translator&, QString const&, ConversionData&, bool)':
qdeclarative.cpp:(.text+0x229d): undefined reference to `QQmlJS::Engine::Engine()'
qdeclarative.cpp:(.text+0x22b4): undefined reference to `QQmlJS::Parser::Parser(QQmlJS::Engine*)'
qdeclarative.cpp:(.text+0x22bf): undefined reference to `QQmlJS::Lexer::Lexer(QQmlJS::Engine*)'
qdeclarative.cpp:(.text+0x22db): undefined reference to `QQmlJS::Lexer::setCode(QString const&, int, bool)'
qdeclarative.cpp:(.text+0x22e6): undefined reference to `QQmlJS::Engine::setLexer(QQmlJS::Lexer*)'
qdeclarative.cpp:(.text+0x22f4): undefined reference to `QQmlJS::Parser::parse(int)'
qdeclarative.cpp:(.text+0x230b): undefined reference to `QQmlJS::AST::Visitor::Visitor()'
qdeclarative.cpp:(.text+0x23ac): undefined reference to `QQmlJS::Engine::comments() const'
qdeclarative.cpp:(.text+0x245b): undefined reference to `QQmlJS::AST::Node::accept(QQmlJS::AST::Node*, QQmlJS::AST::Visitor*)'
qdeclarative.cpp:(.text+0x25b2): undefined reference to `QQmlJS::AST::Visitor::~Visitor()'
qdeclarative.cpp:(.text+0x2636): undefined reference to `QQmlJS::Parser::~Parser()'
qdeclarative.cpp:(.text+0x263e): undefined reference to `QQmlJS::Engine::~Engine()'
qdeclarative.cpp:(.text+0x2720): undefined reference to `QQmlJS::Engine::Engine()'
qdeclarative.cpp:(.text+0x2737): undefined reference to `QQmlJS::Parser::Parser(QQmlJS::Engine*)'
qdeclarative.cpp:(.text+0x2742): undefined reference to `QQmlJS::Lexer::Lexer(QQmlJS::Engine*)'
qdeclarative.cpp:(.text+0x2761): undefined reference to `QQmlJS::Lexer::setCode(QString const&, int, bool)'
qdeclarative.cpp:(.text+0x276c): undefined reference to `QQmlJS::Engine::setLexer(QQmlJS::Lexer*)'
qdeclarative.cpp:(.text+0x277a): undefined reference to `QQmlJS::Parser::parse(int)'
.obj/qdeclarative.o: In function `FindTrCalls::~FindTrCalls()':
qdeclarative.cpp:(.text._ZN11FindTrCallsD2Ev[_ZN11FindTrCallsD5Ev]+0xf1): undefined reference to `QQmlJS::AST::Visitor::~Visitor()'
qdeclarative.cpp:(.text._ZN11FindTrCallsD2Ev[_ZN11FindTrCallsD5Ev]+0x1c4): undefined reference to `QQmlJS::AST::Visitor::~Visitor()'
.obj/qdeclarative.o: In function `FindTrCalls::~FindTrCalls()':
qdeclarative.cpp:(.text._ZN11FindTrCallsD0Ev[_ZN11FindTrCallsD5Ev]+0xf0): undefined reference to `QQmlJS::AST::Visitor::~Visitor()'
.obj/qdeclarative.o:(.data.rel.ro._ZTI11FindTrCalls[_ZTI11FindTrCalls]+0x18): undefined reference to `typeinfo for QQmlJS::AST::Visitor'
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile:151: ../../../bin/lupdate] Error 1
make[1]: Leaving directory '/var/tmp/portage/dev-qt/linguist-tools-5.9.4/work/qttools-opensource-src-5.9.4/src/linguist/lupdate'
make: *** [Makefile:72: sub-lupdate-make_first] Error 2

blocks the rest of qt 5.9.4 from merging
Comment 1 Chris Smith 2018-02-05 15:28:01 UTC
This appears to a problem using -flto when compiling dev-qt/*.

I had -flto in my make.conf file but needed to override that with "dev-qt/qtcore compiler-gcc-fno-lto" in package.env to get dev-qt/core-5.9.4 to install. The other 5.9.4 upgrades were installing fine until I hit dev-qt/linguist-tools.

Some research led me to the QQmlJS styuff being supplied by dev-qt/qtdeclarative, so I rebuilt that with -fno-lto and was able to install dev-qt/linguist-tools-5.9.4.

But then later ran into a problem with dev-qt/qtwayland-5.94, so I rebuilt all previous dev-qt/* packages without using -flto in my make.conf, and all (previous and following) installed fine.

Seems dev-qt/*-5.9.4 has an issue with -flto.
Comment 2 Davide Pesavento (RETIRED) gentoo-dev 2018-02-05 16:30:23 UTC
Sorry, you're on your own if you build with LTO.