While building Qt with -flto, helper apps with an additional -fwhole-program:


g++ -Wl,-rpath-link,/usr/src/ark/BUILD/qt/lib -m64 -O2 -fomit-frame-pointer
-fweb -frename-registers
-Wl,-O2,-z,combreloc,-z,relro,--enable-new-dtags,--hash-style=gnu -g -flto
-Wl,-rpath,/usr/lib64/qt4-embedded/lib -Wl,-rpath,/usr/lib64/qt4-embedded/lib
-flto -fwhole-program -o ../../../bin/uic3
.obj/release-static-emb-x86_64/customwidgetsinfo.o
.obj/release-static-emb-x86_64/databaseinfo.o
.obj/release-static-emb-x86_64/driver.o
.obj/release-static-emb-x86_64/treewalker.o
.obj/release-static-emb-x86_64/ui4.o .obj/release-static-emb-x86_64/validator.o
.obj/release-static-emb-x86_64/cppextractimages.o
.obj/release-static-emb-x86_64/cppwritedeclaration.o
.obj/release-static-emb-x86_64/cppwriteicondata.o
.obj/release-static-emb-x86_64/cppwriteicondeclaration.o
.obj/release-static-emb-x86_64/cppwriteiconinitialization.o
.obj/release-static-emb-x86_64/cppwriteincludes.o
.obj/release-static-emb-x86_64/cppwriteinitialization.o
.obj/release-static-emb-x86_64/main.o
.obj/release-static-emb-x86_64/ui3reader.o
.obj/release-static-emb-x86_64/parser.o
.obj/release-static-emb-x86_64/domtool.o
.obj/release-static-emb-x86_64/object.o
.obj/release-static-emb-x86_64/subclassing.o
.obj/release-static-emb-x86_64/form.o
.obj/release-static-emb-x86_64/converter.o
.obj/release-static-emb-x86_64/widgetinfo.o
.obj/release-static-emb-x86_64/embed.o .obj/release-static-emb-x86_64/qt3to4.o
.obj/release-static-emb-x86_64/deps.o .obj/release-static-emb-x86_64/uic.o   
-L/usr/src/ark/BUILD/qt/lib -lQt3Support -L/usr/src/ark/BUILD/qt/lib -lQtSql
-lsqlite3 -lQtXml -lQtGui -lpng -lfreetype -lQtNetwork -lssl -lcrypto -lQtCore
-lz -lm -ldl -lrt -lpthread 
/usr/bin/ld: /tmp/ccegbjMZ.lto.o: in function
_ZN9Ui3ReaderC2ER11QTextStreamj:ui3reader.cpp:245: error: undefined reference
to '_ZN7PortingC1Ev'
/usr/bin/ld: /tmp/ccegbjMZ.lto.o: in function
_ZN9Ui3Reader13getObjectNameERK11QDomElement:ui3reader.cpp:383: error:
undefined reference to
'_ZN9Ui3Reader17getObjectPropertyERK11QDomElementRK7QString'
/usr/bin/ld: /tmp/ccegbjMZ.lto.o: in function
_ZN9Ui3Reader8generateERK7QStringS2_12QDomDocumentbbS2_S2_S2_:ui3reader.cpp:276:
error: undefined reference to
'_ZN9Ui3Reader13createSubDeclERK11QDomElementRK7QString'
/usr/bin/ld: /tmp/ccegbjMZ.lto.o: in function
_ZN9Ui3Reader8generateERK7QStringS2_12QDomDocumentbbS2_S2_S2_:ui3reader.cpp:281:
error: undefined reference to '_ZN9Ui3Reader14createFormDeclERK11QDomElement'
/usr/bin/ld: /tmp/ccegbjMZ.lto.o: in function
_ZN9Ui3Reader8generateERK7QStringS2_12QDomDocumentbbS2_S2_S2_:ui3reader.cpp:273:
error: undefined reference to
'_ZN9Ui3Reader17createWrapperDeclERK11QDomElementRK7QString'
/usr/bin/ld: /tmp/ccegbjMZ.lto.o: in function
_ZN9Ui3Reader8generateERK7QStringS2_12QDomDocumentbbS2_S2_S2_:ui3reader.cpp:278:
error: undefined reference to
'_ZN9Ui3Reader13createSubImplERK11QDomElementRK7QString'
/usr/bin/ld: /tmp/ccegbjMZ.lto.o: in function
_ZN9Ui3Reader8generateERK7QStringS2_12QDomDocumentbbS2_S2_S2_:ui3reader.cpp:283:
error: undefined reference to '_ZN9Ui3Reader14createFormImplERK11QDomElement'
/usr/bin/ld: /tmp/ccegbjMZ.lto.o: in function
_ZN9Ui3Reader11generateUi4ERK7QStringS2_12QDomDocument:ui3reader.cpp:295:
error: undefined reference to '_ZN9Ui3Reader11generateUi4ERK11QDomElement'
/usr/bin/ld: /tmp/ccegbjMZ.lto.o: in function
_ZN3CPP19WriteInitialization15acceptActionRefEP12DomActionRef:../uic/cpp/cppwriteinitialization.cpp:1159:
error: undefined reference to '_ZNK3Uic6isMenuERK7QString'
/usr/bin/ld: /tmp/ccegbjMZ.lto.o: in function _Z7runUic3iPPc:main.cpp:300:
error: undefined reference to '_ZN9Ui3Reader5embedEPKcRK11QStringList'
/usr/bin/ld: /tmp/ccegbjMZ.lto.o: in function _Z7runUic3iPPc:main.cpp:329:
error: undefined reference to '_ZN7DomTool11fixDocumentER12QDomDocument'
/usr/bin/ld: /tmp/ccegbjMZ.lto.o: in function _Z7runUic3iPPc:main.cpp:342:
error: undefined reference to
'_ZN9Ui3Reader11computeDepsERK11QDomElementR11QStringListS4_b'
/usr/bin/ld: /tmp/ccegbjMZ.lto.o: in function _Z7runUic3iPPc:main.cpp:338:
error: undefined reference to '_ZN9Ui3Reader5embedEPKcRK11QStringList'
/usr/bin/ld: /tmp/ccegbjMZ.lto.o: in function
_ZN3CPP19WriteInitialization12acceptWidgetEP9DomWidget:../uic/cpp/cppwriteinitialization.cpp:627:
error: undefined reference to '_ZNK3Uic11isContainerERK7QString'
/usr/bin/ld: /tmp/ccegbjMZ.lto.o: in function
_ZN3CPP19WriteInitialization12acceptWidgetEP9DomWidget:../uic/cpp/cppwriteinitialization.cpp:659:
error: undefined reference to '_ZNK3Uic8isButtonERK7QString'
/usr/bin/ld: /tmp/ccegbjMZ.lto.o: in function
_ZN3CPP19WriteInitialization12acceptWidgetEP9DomWidget:../uic/cpp/cppwriteinitialization.cpp:676:
error: undefined reference to '_ZNK3Uic23isCustomWidgetContainerERK7QString'
/usr/bin/ld: /tmp/ccegbjMZ.lto.o: in function
_ZN3CPP19WriteInitialization12acceptWidgetEP9DomWidget:../uic/cpp/cppwriteinitialization.cpp:677:
error: undefined reference to '_ZNK3Uic11isContainerERK7QString'
collect2: ld returned 1 exit status

Looking at the first symbol complained about:

_ZN7PortingC1Ev is Porting::Porting()

This symbol is defined in qt3to4.cpp, which becomes qt3to4.o, which is one of
the object files mentioned explicitly on the command line -- the symbol appears
to be "optimized away" wrongfully.


-- 
           Summary: LTO strips out symbols that are actually needed
           Product: gcc
           Version: 4.5.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: lto
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: bero at arklinux dot org
 GCC build triplet: x86_64-unknown-linux-gnu
  GCC host triplet: x86_64-unknown-linux-gnu
GCC target triplet: x86_64-unknown-linux-gnu


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44390

Reply via email to