0f569f5900
By using the special "ar" and "ranlib" tools, the symbol table is made visible, so we don't need fat LTO binaries. Since we need to store the new tool names, we may as well clean up ltcg.prf with variable names for the fat mode too. Change-Id: I7e53af0c74a3d069313f38500b72538af1d61128 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
92 lines
3.2 KiB
Plaintext
92 lines
3.2 KiB
Plaintext
#
|
|
# This file is used as a basis for the following compilers:
|
|
#
|
|
# - The GNU C++ compiler (g++)
|
|
# - LLVM
|
|
# - Clang
|
|
#
|
|
# Platform-specific options shared by these compilers are put into:
|
|
#
|
|
# - gcc-base-mac.conf
|
|
# - gcc-base-unix.conf
|
|
#
|
|
# These base files are then combined with configurations for each compiler:
|
|
#
|
|
# - g++-base.conf
|
|
# - g++-macx.conf
|
|
# - g++-unix.conf
|
|
# - llvm.conf
|
|
# - clang.conf
|
|
#
|
|
# The combination happens in the top level mkspec, by including a platform-
|
|
# specific version of the base-file, for example gcc-base-mac.conf, and then
|
|
# a (possibly platform-specific) version of the actual compiler configuration,
|
|
# for example g++-macx.conf.
|
|
#
|
|
# If you are making changes to any of these files, please consider the
|
|
# possible effect it may have due to these include-rules, and whether it
|
|
# might make more sense to share the rule or make it more specific.
|
|
#
|
|
# To verify that your change has the desired effect on the final configuration
|
|
# you can use the manual test in tests/manual/mkspecs.
|
|
#
|
|
|
|
QMAKE_CFLAGS_OPTIMIZE = -O2
|
|
QMAKE_CFLAGS_OPTIMIZE_FULL = -O3
|
|
|
|
QMAKE_CFLAGS += -pipe
|
|
QMAKE_CFLAGS_DEPS += -M
|
|
QMAKE_CFLAGS_WARN_ON += -Wall -W
|
|
QMAKE_CFLAGS_WARN_OFF += -w
|
|
QMAKE_CFLAGS_RELEASE += $$QMAKE_CFLAGS_OPTIMIZE
|
|
QMAKE_CFLAGS_DEBUG += -g
|
|
QMAKE_CFLAGS_SHLIB += -fPIC
|
|
QMAKE_CFLAGS_STATIC_LIB += -fPIC
|
|
QMAKE_CFLAGS_APP += -fPIE
|
|
QMAKE_CFLAGS_ISYSTEM = -isystem
|
|
QMAKE_CFLAGS_YACC += -Wno-unused -Wno-parentheses
|
|
QMAKE_CFLAGS_HIDESYMS += -fvisibility=hidden
|
|
QMAKE_CFLAGS_EXCEPTIONS_OFF += -fno-exceptions
|
|
QMAKE_CFLAGS_SPLIT_SECTIONS += -ffunction-sections
|
|
QMAKE_CFLAGS_LTCG = -flto -fno-fat-lto-objects
|
|
QMAKE_CFLAGS_LTCG_FATOBJECTS = -ffat-lto-objects
|
|
|
|
QMAKE_CXXFLAGS += $$QMAKE_CFLAGS
|
|
QMAKE_CXXFLAGS_DEPS += $$QMAKE_CFLAGS_DEPS
|
|
QMAKE_CXXFLAGS_WARN_ON += $$QMAKE_CFLAGS_WARN_ON
|
|
QMAKE_CXXFLAGS_WARN_OFF += $$QMAKE_CFLAGS_WARN_OFF
|
|
QMAKE_CXXFLAGS_RELEASE += $$QMAKE_CFLAGS_RELEASE
|
|
QMAKE_CXXFLAGS_DEBUG += $$QMAKE_CFLAGS_DEBUG
|
|
QMAKE_CXXFLAGS_SHLIB += $$QMAKE_CFLAGS_SHLIB
|
|
QMAKE_CXXFLAGS_STATIC_LIB += $$QMAKE_CFLAGS_STATIC_LIB
|
|
QMAKE_CXXFLAGS_APP += $$QMAKE_CFLAGS_APP
|
|
QMAKE_CXXFLAGS_YACC += $$QMAKE_CFLAGS_YACC
|
|
QMAKE_CXXFLAGS_HIDESYMS += $$QMAKE_CFLAGS_HIDESYMS -fvisibility-inlines-hidden
|
|
QMAKE_CXXFLAGS_EXCEPTIONS_OFF += $$QMAKE_CFLAGS_EXCEPTIONS_OFF
|
|
QMAKE_CXXFLAGS_SPLIT_SECTIONS += $$QMAKE_CFLAGS_SPLIT_SECTIONS
|
|
QMAKE_CXXFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG
|
|
QMAKE_CXXFLAGS_LTCG_FATOBJECTS = $$QMAKE_CFLAGS_LTCG_FATOBJECTS
|
|
|
|
QMAKE_LFLAGS +=
|
|
QMAKE_LFLAGS_DEBUG +=
|
|
QMAKE_LFLAGS_APP +=
|
|
QMAKE_LFLAGS_RELEASE +=
|
|
QMAKE_LFLAGS_EXCEPTIONS_OFF +=
|
|
QMAKE_LFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG -fuse-linker-plugin
|
|
|
|
QMAKE_CFLAGS_SSE2 += -msse2
|
|
QMAKE_CFLAGS_SSE3 += -msse3
|
|
QMAKE_CFLAGS_SSSE3 += -mssse3
|
|
QMAKE_CFLAGS_SSE4_1 += -msse4.1
|
|
QMAKE_CFLAGS_SSE4_2 += -msse4.2
|
|
QMAKE_CFLAGS_AVX += -mavx
|
|
QMAKE_CFLAGS_AVX2 += -mavx2
|
|
QMAKE_CFLAGS_NEON += -mfpu=neon
|
|
|
|
# Wrapper tools that understand .o/.a files with GIMPLE instead of machine code
|
|
QMAKE_AR_LTCG = gcc-ar cqs
|
|
QMAKE_NM_LTCG = gcc-nm -P
|
|
QMAKE_RANLIB_LTCG = true # No need to run since gcc-ar has "s"
|
|
|
|
include(sanitize.conf)
|