qt5base-lts/mkspecs/common/gcc-base.conf

134 lines
4.9 KiB
Plaintext
Raw Normal View History

#
# 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_OPTIMIZE_DEBUG = -Og
QMAKE_CFLAGS_OPTIMIZE_SIZE = -Os
!equals(QMAKE_HOST.os, Windows): QMAKE_CFLAGS += -pipe
Fix '=' alignment and replace tabs in *.conf (whitespace only change) Replace all tabs with proper space characters and consistently align the '=' characters. The default alignment for the '=' of 25 characters has been left as is to get a minimal diff. Lines with the '=' further to the right and those belonging to 'proper code (TM)' have not been touched. The work was mostly done using the following python script (might come in handy again...): import sys, re indent_eq = 25 + 0*4 # 25 characters was the most widely used indentation for the '=' character p = re.compile(r'(\w+)[ \t]*([\-\+]?)(=$|= )[ \t]*(.*$)') for fn in sys.argv[1:]: with open(fn, 'r+') as f: lines = [] nl_count = 0 continuity_indent = None for l in f: m = p.match(l) nl = l if m: n_spaces = max(m.start(3), indent_eq - 1) - len(m.group(2)) - len(m.group(1)) if m.group(2) and m.start(2) >= indent_eq-1 and m.start(2) % 4 == 0: n_spaces -= 1 # left-shift '+=' by one if the '+' is aligned to a multiple of 4 n_spaces = max(1, n_spaces) # we want at least one space before '='/'+=' nl = m.group(1) + ' '*n_spaces + ''.join(m.group(2,3,4)) + '\n' continuity_indent = nl.find('= ') + 2 if l[-2] == '\\' else None # remember indent on '\\$' elif continuity_indent: nl = ' '*continuity_indent + l.lstrip() if l[-2] != '\\': # check when to stop the continuation continuity_indent = None elif l.startswith('#'): nl = l.expandtabs(2) if l != nl: nl_count += 1 lines.append(nl) if nl_count > 0: print fn, nl_count, len(lines) f.seek(0) f.writelines(lines) f.truncate() Change-Id: I1d2870d0a2fe2e30d398c140fe523e69dd20c81b Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-03-19 01:57:31 +00:00
QMAKE_CFLAGS_DEPS += -M
QMAKE_CFLAGS_WARN_ON += -Wall -Wextra
Fix '=' alignment and replace tabs in *.conf (whitespace only change) Replace all tabs with proper space characters and consistently align the '=' characters. The default alignment for the '=' of 25 characters has been left as is to get a minimal diff. Lines with the '=' further to the right and those belonging to 'proper code (TM)' have not been touched. The work was mostly done using the following python script (might come in handy again...): import sys, re indent_eq = 25 + 0*4 # 25 characters was the most widely used indentation for the '=' character p = re.compile(r'(\w+)[ \t]*([\-\+]?)(=$|= )[ \t]*(.*$)') for fn in sys.argv[1:]: with open(fn, 'r+') as f: lines = [] nl_count = 0 continuity_indent = None for l in f: m = p.match(l) nl = l if m: n_spaces = max(m.start(3), indent_eq - 1) - len(m.group(2)) - len(m.group(1)) if m.group(2) and m.start(2) >= indent_eq-1 and m.start(2) % 4 == 0: n_spaces -= 1 # left-shift '+=' by one if the '+' is aligned to a multiple of 4 n_spaces = max(1, n_spaces) # we want at least one space before '='/'+=' nl = m.group(1) + ' '*n_spaces + ''.join(m.group(2,3,4)) + '\n' continuity_indent = nl.find('= ') + 2 if l[-2] == '\\' else None # remember indent on '\\$' elif continuity_indent: nl = ' '*continuity_indent + l.lstrip() if l[-2] != '\\': # check when to stop the continuation continuity_indent = None elif l.startswith('#'): nl = l.expandtabs(2) if l != nl: nl_count += 1 lines.append(nl) if nl_count > 0: print fn, nl_count, len(lines) f.seek(0) f.writelines(lines) f.truncate() Change-Id: I1d2870d0a2fe2e30d398c140fe523e69dd20c81b Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-03-19 01:57:31 +00:00
QMAKE_CFLAGS_WARN_OFF += -w
QMAKE_CFLAGS_RELEASE += $$QMAKE_CFLAGS_OPTIMIZE
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -g
Fix '=' alignment and replace tabs in *.conf (whitespace only change) Replace all tabs with proper space characters and consistently align the '=' characters. The default alignment for the '=' of 25 characters has been left as is to get a minimal diff. Lines with the '=' further to the right and those belonging to 'proper code (TM)' have not been touched. The work was mostly done using the following python script (might come in handy again...): import sys, re indent_eq = 25 + 0*4 # 25 characters was the most widely used indentation for the '=' character p = re.compile(r'(\w+)[ \t]*([\-\+]?)(=$|= )[ \t]*(.*$)') for fn in sys.argv[1:]: with open(fn, 'r+') as f: lines = [] nl_count = 0 continuity_indent = None for l in f: m = p.match(l) nl = l if m: n_spaces = max(m.start(3), indent_eq - 1) - len(m.group(2)) - len(m.group(1)) if m.group(2) and m.start(2) >= indent_eq-1 and m.start(2) % 4 == 0: n_spaces -= 1 # left-shift '+=' by one if the '+' is aligned to a multiple of 4 n_spaces = max(1, n_spaces) # we want at least one space before '='/'+=' nl = m.group(1) + ' '*n_spaces + ''.join(m.group(2,3,4)) + '\n' continuity_indent = nl.find('= ') + 2 if l[-2] == '\\' else None # remember indent on '\\$' elif continuity_indent: nl = ' '*continuity_indent + l.lstrip() if l[-2] != '\\': # check when to stop the continuation continuity_indent = None elif l.startswith('#'): nl = l.expandtabs(2) if l != nl: nl_count += 1 lines.append(nl) if nl_count > 0: print fn, nl_count, len(lines) f.seek(0) f.writelines(lines) f.truncate() Change-Id: I1d2870d0a2fe2e30d398c140fe523e69dd20c81b Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-03-19 01:57:31 +00:00
QMAKE_CFLAGS_DEBUG += -g
QMAKE_CFLAGS_SHLIB += $$QMAKE_CFLAGS_PIC
QMAKE_CFLAGS_STATIC_LIB += $$QMAKE_CFLAGS_PIC
Enable -mno-direct-extern-access and ELF protected visibility The -mno-direct-extern-access tells the compiler and linker that references to symbols outside this ELF module mustn't be direct and must instead always go through the GOT or PLT (the PLT can additionally be disabled with -fno-plt). The ELF protected visibility tells the compiler and linker that this symbol is present in the dynamic symbol table as an export, but it cannot be interposed by another ELF module. This option is required for user code to link properly to Qt, otherwise they will get linker errors (assuming GNU binutils >= 2.39) or runtime failures (glibc >= 2.35). Both versions of glibc and binutils are older than GCC 12, so it's a safe assumption they are in use and downgrading the toolchain or libc is not supported. Adding this option to the compilation is assured for CMake and qmake-based projects. For example, all accessess to QCoreApplication::self in QtCore, after this change and with GCC 12 are relocation-free and direct: 000000000013ebf0 <QCoreApplicationPrivate::checkInstance(char const*)>: 13ebf0: cmpq $0x0,0x4f73d0(%rip) # 635fc8 <QCoreApplication::self> 13ebf8: setne %al 13ebfb: je a90fe <QCoreApplicationPrivate::checkInstance(char const*) [clone .cold]> 13ec01: ret Meanwhile, accesses to the same variable in other modules are indirect via the GOT: 66650: mov 0x876e1(%rip),%rax # edd38 <QCoreApplication::self@Qt_6> 66657: cmpq $0x0,(%rax) This replaces the -Bsymbolic and -Bsymbolic-functions (broken) functionality that Qt has been using or attempting to use since ~2006. See https://gitlab.com/x86-psABIs/x86-64-ABI/-/issues/8#note_606975128 Change-Id: Iad4b0a3e5c06570b9f5f571b26ed564aa0811e47 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2012-01-23 13:46:58 +00:00
QMAKE_CFLAGS_APP +=
Fix '=' alignment and replace tabs in *.conf (whitespace only change) Replace all tabs with proper space characters and consistently align the '=' characters. The default alignment for the '=' of 25 characters has been left as is to get a minimal diff. Lines with the '=' further to the right and those belonging to 'proper code (TM)' have not been touched. The work was mostly done using the following python script (might come in handy again...): import sys, re indent_eq = 25 + 0*4 # 25 characters was the most widely used indentation for the '=' character p = re.compile(r'(\w+)[ \t]*([\-\+]?)(=$|= )[ \t]*(.*$)') for fn in sys.argv[1:]: with open(fn, 'r+') as f: lines = [] nl_count = 0 continuity_indent = None for l in f: m = p.match(l) nl = l if m: n_spaces = max(m.start(3), indent_eq - 1) - len(m.group(2)) - len(m.group(1)) if m.group(2) and m.start(2) >= indent_eq-1 and m.start(2) % 4 == 0: n_spaces -= 1 # left-shift '+=' by one if the '+' is aligned to a multiple of 4 n_spaces = max(1, n_spaces) # we want at least one space before '='/'+=' nl = m.group(1) + ' '*n_spaces + ''.join(m.group(2,3,4)) + '\n' continuity_indent = nl.find('= ') + 2 if l[-2] == '\\' else None # remember indent on '\\$' elif continuity_indent: nl = ' '*continuity_indent + l.lstrip() if l[-2] != '\\': # check when to stop the continuation continuity_indent = None elif l.startswith('#'): nl = l.expandtabs(2) if l != nl: nl_count += 1 lines.append(nl) if nl_count > 0: print fn, nl_count, len(lines) f.seek(0) f.writelines(lines) f.truncate() Change-Id: I1d2870d0a2fe2e30d398c140fe523e69dd20c81b Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-03-19 01:57:31 +00:00
QMAKE_CFLAGS_YACC += -Wno-unused -Wno-parentheses
QMAKE_CFLAGS_HIDESYMS += -fvisibility=hidden
QMAKE_CFLAGS_EXCEPTIONS_OFF += -fno-exceptions
QMAKE_CFLAGS_SPLIT_SECTIONS += -ffunction-sections -fdata-sections
QMAKE_CFLAGS_LTCG = -flto -fno-fat-lto-objects
QMAKE_CFLAGS_LTCG_FATOBJECTS = -ffat-lto-objects
QMAKE_CFLAGS_DISABLE_LTCG = -fno-lto
QMAKE_CFLAGS_SHSTK = -mshstk
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_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO
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_RTTI_ON = -frtti
QMAKE_CXXFLAGS_RTTI_OFF = -fno-rtti
QMAKE_CXXFLAGS_SPLIT_SECTIONS += $$QMAKE_CFLAGS_SPLIT_SECTIONS
QMAKE_CXXFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG
QMAKE_CXXFLAGS_LTCG_FATOBJECTS = $$QMAKE_CFLAGS_LTCG_FATOBJECTS
QMAKE_CXXFLAGS_DISABLE_LTCG = $$QMAKE_CFLAGS_DISABLE_LTCG
QMAKE_CXXFLAGS_SHSTK = $$QMAKE_CFLAGS_SHSTK
Fix '=' alignment and replace tabs in *.conf (whitespace only change) Replace all tabs with proper space characters and consistently align the '=' characters. The default alignment for the '=' of 25 characters has been left as is to get a minimal diff. Lines with the '=' further to the right and those belonging to 'proper code (TM)' have not been touched. The work was mostly done using the following python script (might come in handy again...): import sys, re indent_eq = 25 + 0*4 # 25 characters was the most widely used indentation for the '=' character p = re.compile(r'(\w+)[ \t]*([\-\+]?)(=$|= )[ \t]*(.*$)') for fn in sys.argv[1:]: with open(fn, 'r+') as f: lines = [] nl_count = 0 continuity_indent = None for l in f: m = p.match(l) nl = l if m: n_spaces = max(m.start(3), indent_eq - 1) - len(m.group(2)) - len(m.group(1)) if m.group(2) and m.start(2) >= indent_eq-1 and m.start(2) % 4 == 0: n_spaces -= 1 # left-shift '+=' by one if the '+' is aligned to a multiple of 4 n_spaces = max(1, n_spaces) # we want at least one space before '='/'+=' nl = m.group(1) + ' '*n_spaces + ''.join(m.group(2,3,4)) + '\n' continuity_indent = nl.find('= ') + 2 if l[-2] == '\\' else None # remember indent on '\\$' elif continuity_indent: nl = ' '*continuity_indent + l.lstrip() if l[-2] != '\\': # check when to stop the continuation continuity_indent = None elif l.startswith('#'): nl = l.expandtabs(2) if l != nl: nl_count += 1 lines.append(nl) if nl_count > 0: print fn, nl_count, len(lines) f.seek(0) f.writelines(lines) f.truncate() Change-Id: I1d2870d0a2fe2e30d398c140fe523e69dd20c81b Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-03-19 01:57:31 +00:00
QMAKE_LFLAGS +=
QMAKE_LFLAGS_DEBUG +=
QMAKE_LFLAGS_APP +=
QMAKE_LFLAGS_RELEASE +=
QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO +=
QMAKE_LFLAGS_EXCEPTIONS_OFF +=
QMAKE_LFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG -fuse-linker-plugin
QMAKE_CFLAGS_C99 = -std=c99
QMAKE_CFLAGS_C11 = -std=c11
QMAKE_CFLAGS_C17 = -std=c17
Fix '=' alignment and replace tabs in *.conf (whitespace only change) Replace all tabs with proper space characters and consistently align the '=' characters. The default alignment for the '=' of 25 characters has been left as is to get a minimal diff. Lines with the '=' further to the right and those belonging to 'proper code (TM)' have not been touched. The work was mostly done using the following python script (might come in handy again...): import sys, re indent_eq = 25 + 0*4 # 25 characters was the most widely used indentation for the '=' character p = re.compile(r'(\w+)[ \t]*([\-\+]?)(=$|= )[ \t]*(.*$)') for fn in sys.argv[1:]: with open(fn, 'r+') as f: lines = [] nl_count = 0 continuity_indent = None for l in f: m = p.match(l) nl = l if m: n_spaces = max(m.start(3), indent_eq - 1) - len(m.group(2)) - len(m.group(1)) if m.group(2) and m.start(2) >= indent_eq-1 and m.start(2) % 4 == 0: n_spaces -= 1 # left-shift '+=' by one if the '+' is aligned to a multiple of 4 n_spaces = max(1, n_spaces) # we want at least one space before '='/'+=' nl = m.group(1) + ' '*n_spaces + ''.join(m.group(2,3,4)) + '\n' continuity_indent = nl.find('= ') + 2 if l[-2] == '\\' else None # remember indent on '\\$' elif continuity_indent: nl = ' '*continuity_indent + l.lstrip() if l[-2] != '\\': # check when to stop the continuation continuity_indent = None elif l.startswith('#'): nl = l.expandtabs(2) if l != nl: nl_count += 1 lines.append(nl) if nl_count > 0: print fn, nl_count, len(lines) f.seek(0) f.writelines(lines) f.truncate() Change-Id: I1d2870d0a2fe2e30d398c140fe523e69dd20c81b Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-03-19 01:57:31 +00:00
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_F16C += -mf16c
QMAKE_CFLAGS_RDRND += -mrdrnd
QMAKE_CFLAGS_RDSEED += -mrdseed
Fix '=' alignment and replace tabs in *.conf (whitespace only change) Replace all tabs with proper space characters and consistently align the '=' characters. The default alignment for the '=' of 25 characters has been left as is to get a minimal diff. Lines with the '=' further to the right and those belonging to 'proper code (TM)' have not been touched. The work was mostly done using the following python script (might come in handy again...): import sys, re indent_eq = 25 + 0*4 # 25 characters was the most widely used indentation for the '=' character p = re.compile(r'(\w+)[ \t]*([\-\+]?)(=$|= )[ \t]*(.*$)') for fn in sys.argv[1:]: with open(fn, 'r+') as f: lines = [] nl_count = 0 continuity_indent = None for l in f: m = p.match(l) nl = l if m: n_spaces = max(m.start(3), indent_eq - 1) - len(m.group(2)) - len(m.group(1)) if m.group(2) and m.start(2) >= indent_eq-1 and m.start(2) % 4 == 0: n_spaces -= 1 # left-shift '+=' by one if the '+' is aligned to a multiple of 4 n_spaces = max(1, n_spaces) # we want at least one space before '='/'+=' nl = m.group(1) + ' '*n_spaces + ''.join(m.group(2,3,4)) + '\n' continuity_indent = nl.find('= ') + 2 if l[-2] == '\\' else None # remember indent on '\\$' elif continuity_indent: nl = ' '*continuity_indent + l.lstrip() if l[-2] != '\\': # check when to stop the continuation continuity_indent = None elif l.startswith('#'): nl = l.expandtabs(2) if l != nl: nl_count += 1 lines.append(nl) if nl_count > 0: print fn, nl_count, len(lines) f.seek(0) f.writelines(lines) f.truncate() Change-Id: I1d2870d0a2fe2e30d398c140fe523e69dd20c81b Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-03-19 01:57:31 +00:00
QMAKE_CFLAGS_AVX += -mavx
QMAKE_CFLAGS_AVX2 += -mavx2
QMAKE_CFLAGS_AVX512F += -mavx512f
QMAKE_CFLAGS_AVX512ER += -mavx512er
QMAKE_CFLAGS_AVX512CD += -mavx512cd
QMAKE_CFLAGS_AVX512PF += -mavx512pf
QMAKE_CFLAGS_AVX512DQ += -mavx512dq
QMAKE_CFLAGS_AVX512BW += -mavx512bw
QMAKE_CFLAGS_AVX512VL += -mavx512vl
QMAKE_CFLAGS_AVX512IFMA += -mavx512ifma
QMAKE_CFLAGS_AVX512VBMI += -mavx512vbmi
QMAKE_CFLAGS_AVX512VNNI += -mavx512vnni
QMAKE_CFLAGS_AVX512IFMA += -mavx512ifma
QMAKE_CFLAGS_AVX512VBMI += -mavx512vbmi
QMAKE_CFLAGS_AVX512VBMI2 += -mavx512vbmi2
QMAKE_CFLAGS_AVX512BITALG += -mavx512bitalg
QMAKE_CFLAGS_AVX512POPCNTDQ += -mavx512vpopcntd
QMAKE_CFLAGS_AESNI += -maes
QMAKE_CFLAGS_SHANI += -msha
QMAKE_CFLAGS_VAES += -mvaes
Fix '=' alignment and replace tabs in *.conf (whitespace only change) Replace all tabs with proper space characters and consistently align the '=' characters. The default alignment for the '=' of 25 characters has been left as is to get a minimal diff. Lines with the '=' further to the right and those belonging to 'proper code (TM)' have not been touched. The work was mostly done using the following python script (might come in handy again...): import sys, re indent_eq = 25 + 0*4 # 25 characters was the most widely used indentation for the '=' character p = re.compile(r'(\w+)[ \t]*([\-\+]?)(=$|= )[ \t]*(.*$)') for fn in sys.argv[1:]: with open(fn, 'r+') as f: lines = [] nl_count = 0 continuity_indent = None for l in f: m = p.match(l) nl = l if m: n_spaces = max(m.start(3), indent_eq - 1) - len(m.group(2)) - len(m.group(1)) if m.group(2) and m.start(2) >= indent_eq-1 and m.start(2) % 4 == 0: n_spaces -= 1 # left-shift '+=' by one if the '+' is aligned to a multiple of 4 n_spaces = max(1, n_spaces) # we want at least one space before '='/'+=' nl = m.group(1) + ' '*n_spaces + ''.join(m.group(2,3,4)) + '\n' continuity_indent = nl.find('= ') + 2 if l[-2] == '\\' else None # remember indent on '\\$' elif continuity_indent: nl = ' '*continuity_indent + l.lstrip() if l[-2] != '\\': # check when to stop the continuation continuity_indent = None elif l.startswith('#'): nl = l.expandtabs(2) if l != nl: nl_count += 1 lines.append(nl) if nl_count > 0: print fn, nl_count, len(lines) f.seek(0) f.writelines(lines) f.truncate() Change-Id: I1d2870d0a2fe2e30d398c140fe523e69dd20c81b Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-03-19 01:57:31 +00:00
QMAKE_CFLAGS_NEON += -mfpu=neon
QMAKE_CFLAGS_MIPS_DSP += -mdsp
QMAKE_CFLAGS_MIPS_DSPR2 += -mdspr2
# -march=haswell is supported as of GCC 4.9 and Clang 3.6
QMAKE_CFLAGS_ARCH_HASWELL = -march=core-avx2
# 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"
QMAKE_LINK_OBJECT_SCRIPT = object_script
include(sanitize.conf)