Skip to content

Commit 39fc377

Browse files
MinGW: reuse gcc-base.conf and g++-base.conf
it allows using optimize_full, ltcg and sanitizers Change-Id: I3ccf8257145c7d8800c2ebe98c5ac5adcec0dc9d Reviewed-by: Oswald Buddenhagen <[email protected]> Reviewed-by: Thiago Macieira <[email protected]> Reviewed-by: Friedemann Kleint <[email protected]>
1 parent 4499667 commit 39fc377

File tree

5 files changed

+14
-44
lines changed

5 files changed

+14
-44
lines changed

mkspecs/common/gcc-base-mac.conf

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
# you can use the manual test in tests/manual/mkspecs.
99
#
1010

11+
QMAKE_CFLAGS_PIC = -fPIC
12+
1113
include(gcc-base.conf)
1214

1315
QMAKE_COMPILER_DEFINES += __APPLE__ __GNUC__=4 __APPLE_CC__

mkspecs/common/gcc-base-unix.conf

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
# you can use the manual test in tests/manual/mkspecs.
99
#
1010

11+
QMAKE_CFLAGS_PIC = -fPIC
12+
1113
include(gcc-base.conf)
1214

1315
QMAKE_LFLAGS_SHLIB += -shared

mkspecs/common/gcc-base.conf

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,9 @@ QMAKE_CFLAGS_WARN_OFF += -w
4141
QMAKE_CFLAGS_RELEASE += $$QMAKE_CFLAGS_OPTIMIZE
4242
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -g
4343
QMAKE_CFLAGS_DEBUG += -g
44-
QMAKE_CFLAGS_SHLIB += -fPIC
45-
QMAKE_CFLAGS_STATIC_LIB += -fPIC
46-
QMAKE_CFLAGS_APP += -fPIC
44+
QMAKE_CFLAGS_SHLIB += $$QMAKE_CFLAGS_PIC
45+
QMAKE_CFLAGS_STATIC_LIB += $$QMAKE_CFLAGS_PIC
46+
QMAKE_CFLAGS_APP += $$QMAKE_CFLAGS_PIC
4747
QMAKE_CFLAGS_ISYSTEM = -isystem
4848
QMAKE_CFLAGS_YACC += -Wno-unused -Wno-parentheses
4949
QMAKE_CFLAGS_HIDESYMS += -fvisibility=hidden

mkspecs/features/link_ltcg.prf

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
gcc {
2-
!clang:!intel_icc:greaterThan(QMAKE_HOST.cpu_count, 1) {
2+
# on Windows, MinGW's support for -flto=N is broken
3+
!clang:!intel_icc:!equals(QMAKE_HOST.os, Windows):greaterThan(QMAKE_HOST.cpu_count, 1) {
34
# Override LTO number of jobs
45
QMAKE_LFLAGS_LTCG ~= s/^-flto$/-flto=$$QMAKE_HOST.cpu_count/
56
}

mkspecs/win32-g++/qmake.conf

Lines changed: 5 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
#
99

1010
load(device_config)
11+
include(../common/g++-base.conf)
1112

1213
MAKEFILE_GENERATOR = MINGW
1314
QMAKE_PLATFORM = win32 mingw
@@ -18,52 +19,21 @@ QMAKE_COMPILER_DEFINES += __GNUC__ WIN32
1819
QMAKE_EXT_OBJ = .o
1920
QMAKE_EXT_RES = _res.o
2021

21-
QMAKE_COMPILER = gcc
2222

2323
QMAKE_CC = $${CROSS_COMPILE}gcc
2424
QMAKE_LEX = flex
2525
QMAKE_LEXFLAGS =
2626
QMAKE_YACC = bison -y
2727
QMAKE_YACCFLAGS = -d
28-
QMAKE_CFLAGS = -pipe -fno-keep-inline-dllexport
29-
QMAKE_CFLAGS_DEPS = -M
30-
QMAKE_CFLAGS_WARN_ON = -Wall -Wextra
31-
QMAKE_CFLAGS_WARN_OFF = -w
32-
QMAKE_CFLAGS_RELEASE = -O2
33-
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO = -O2 -g
34-
QMAKE_CFLAGS_DEBUG = -g
35-
QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
36-
QMAKE_CFLAGS_SPLIT_SECTIONS = -ffunction-sections
37-
QMAKE_CFLAGS_SSE2 = -msse2 -mstackrealign
38-
QMAKE_CFLAGS_SSE3 = -msse3
39-
QMAKE_CFLAGS_SSSE3 = -mssse3
40-
QMAKE_CFLAGS_SSE4_1 = -msse4.1
41-
QMAKE_CFLAGS_SSE4_2 = -msse4.2
42-
QMAKE_CFLAGS_AVX = -mavx
43-
QMAKE_CFLAGS_AVX2 = -mavx2
44-
QMAKE_CFLAGS_NEON = -mfpu=neon
28+
QMAKE_CFLAGS += -fno-keep-inline-dllexport
29+
QMAKE_CFLAGS_WARN_ON += -Wextra
30+
QMAKE_CFLAGS_SSE2 += -mstackrealign
4531

4632
QMAKE_CXX = $${CROSS_COMPILE}g++
47-
QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
48-
QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
49-
QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
50-
QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
51-
QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
52-
QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO = $$QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO
53-
QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
54-
QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
5533
QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
5634
QMAKE_CXXFLAGS_RTTI_ON = -frtti
5735
QMAKE_CXXFLAGS_RTTI_OFF = -fno-rtti
5836
QMAKE_CXXFLAGS_EXCEPTIONS_ON = -fexceptions -mthreads
59-
QMAKE_CXXFLAGS_EXCEPTIONS_OFF = -fno-exceptions
60-
QMAKE_CXXFLAGS_CXX11 = -std=c++11
61-
QMAKE_CXXFLAGS_CXX14 = -std=c++1y
62-
QMAKE_CXXFLAGS_CXX1Z = -std=c++1z
63-
QMAKE_CXXFLAGS_GNUCXX11 = -std=gnu++11
64-
QMAKE_CXXFLAGS_GNUCXX14 = -std=gnu++1y
65-
QMAKE_CXXFLAGS_GNUCXX1Z = -std=gnu++1z
66-
QMAKE_CXXFLAGS_SPLIT_SECTIONS = $$QMAKE_CFLAGS_SPLIT_SECTIONS
6737

6838
QMAKE_INCDIR =
6939

@@ -74,17 +44,11 @@ QMAKE_RUN_CXX_IMP = $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
7444

7545
QMAKE_LINK = $${CROSS_COMPILE}g++
7646
QMAKE_LINK_C = $${CROSS_COMPILE}gcc
77-
QMAKE_LFLAGS =
7847
QMAKE_LFLAGS_EXCEPTIONS_ON = -mthreads
79-
QMAKE_LFLAGS_EXCEPTIONS_OFF =
8048
QMAKE_LFLAGS_RELEASE = -Wl,-s
81-
QMAKE_LFLAGS_DEBUG =
8249
QMAKE_LFLAGS_CONSOLE = -Wl,-subsystem,console
8350
QMAKE_LFLAGS_WINDOWS = -Wl,-subsystem,windows
8451
QMAKE_LFLAGS_DLL = -shared
85-
QMAKE_LFLAGS_CXX11 =
86-
QMAKE_LFLAGS_CXX14 =
87-
QMAKE_LFLAGS_CXX1Z =
8852
QMAKE_LFLAGS_GCSECTIONS = -Wl,--gc-sections
8953
QMAKE_LINK_OBJECT_MAX = 10
9054
QMAKE_LINK_OBJECT_SCRIPT = object_script
@@ -114,5 +78,6 @@ QMAKE_OBJCOPY = $${CROSS_COMPILE}objcopy
11478
QMAKE_NM = $${CROSS_COMPILE}nm -P
11579

11680
include(../common/windows-gles.conf)
81+
include(../common/gcc-base.conf)
11782

11883
load(qt_config)

0 commit comments

Comments
 (0)