Restore the -fno-lto build of qversiontagging.cpp

I'm not sure how one of my machines has this problem and the other
doesn't (same distribution and same compiler version). Must be operator
error. But this is required to compile QtGui when QtCore was compiled in
LTO mode.

qversiontagging.cpp used to be built with -fno-lto before commit
629ceec208. This commit restores that
functionality, but not the clang "-no-integrated-as" part.

Change-Id: Ie9fd7afe060b4e4a8052fffd144fb9c1a1166854
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
This commit is contained in:
Thiago Macieira 2016-05-18 10:30:45 -07:00
parent cf6a2e9617
commit f156c81d7f

View File

@ -28,8 +28,9 @@ SOURCES += \
global/qmalloc.cpp \ global/qmalloc.cpp \
global/qnumeric.cpp \ global/qnumeric.cpp \
global/qlogging.cpp \ global/qlogging.cpp \
global/qhooks.cpp \ global/qhooks.cpp
global/qversiontagging.cpp
VERSIONTAGGING_SOURCES = global/qversiontagging.cpp
# qlibraryinfo.cpp includes qconfig.cpp # qlibraryinfo.cpp includes qconfig.cpp
INCLUDEPATH += $$QT_BUILD_TREE/src/corelib/global INCLUDEPATH += $$QT_BUILD_TREE/src/corelib/global
@ -63,3 +64,21 @@ journald {
syslog { syslog {
DEFINES += QT_USE_SYSLOG DEFINES += QT_USE_SYSLOG
} }
gcc:ltcg {
versiontagging_compiler.commands = $$QMAKE_CXX -c $(CXXFLAGS) $(INCPATH)
# Disable LTO, as the symbols disappear somehow under GCC
versiontagging_compiler.commands += -fno-lto
versiontagging_compiler.commands += -o ${QMAKE_FILE_OUT} ${QMAKE_FILE_IN}
versiontagging_compiler.dependency_type = TYPE_C
versiontagging_compiler.output = ${QMAKE_VAR_OBJECTS_DIR}${QMAKE_FILE_BASE}$${first(QMAKE_EXT_OBJ)}
versiontagging_compiler.input = VERSIONTAGGING_SOURCES
versiontagging_compiler.variable_out = OBJECTS
versiontagging_compiler.name = compiling[versiontagging] ${QMAKE_FILE_IN}
silent: versiontagging_compiler.commands = @echo compiling[versiontagging] ${QMAKE_FILE_IN} && $$versiontagging_compiler.commands
QMAKE_EXTRA_COMPILERS += versiontagging_compiler
} else {
SOURCES += $$VERSIONTAGGING_SOURCES
}