[Buildroot] [PATCH 2/2] package/qt5/qt5base: build with correct optimization

Giulio Benetti giulio.benetti at micronovasrl.com
Wed Jun 26 14:04:12 UTC 2019


Qt5 has predefined optimization flags depending if you're building for
size, for debug etc. But this is a problem because those flags override
Buildroot's TARGET_CFLAGS. In particular QMAKE_CFLAGS_OPTIMIZE_FULL is
set to -O3 by default and when a qt5 module .pro file contains 'CONFIG
+= optimize_full', qmake appends QMAKE_CFLAGS_OPTIMIZE_FULL to CFLAGS.
So the only consistent way that avoid patching qt5 to set optimization
according to Buildroot is to set QMAKE_CFLAGS_OPTIMIZE_FULL =
$(TARGET_OPTIMIZATION) by passing a new qt variable BR_OPTIMIZATION when
calling qt5 ./configure.

Signed-off-by: Giulio Benetti <giulio.benetti at micronovasrl.com>
---
 package/qt5/qt5base/qmake.conf.in | 1 +
 package/qt5/qt5base/qt5base.mk    | 1 +
 2 files changed, 2 insertions(+)

diff --git a/package/qt5/qt5base/qmake.conf.in b/package/qt5/qt5base/qmake.conf.in
index 26bee2cb39..4de880d2a2 100644
--- a/package/qt5/qt5base/qmake.conf.in
+++ b/package/qt5/qt5base/qmake.conf.in
@@ -15,6 +15,7 @@ QMAKE_CXX               = $${CROSS_COMPILE}g++
 # modifications to gcc-base.conf
 QMAKE_CFLAGS           += $${BR_COMPILER_CFLAGS}
 QMAKE_CXXFLAGS         += $${BR_COMPILER_CXXFLAGS}
+QMAKE_CFLAGS_OPTIMIZE_FULL  = $${BR_OPTIMIZATION}
 CONFIG                 += nostrip
 
 QMAKE_LIBS             += -lrt -lpthread -ldl
diff --git a/package/qt5/qt5base/qt5base.mk b/package/qt5/qt5base/qt5base.mk
index e4aa76908a..69e90a37b3 100644
--- a/package/qt5/qt5base/qt5base.mk
+++ b/package/qt5/qt5base/qt5base.mk
@@ -361,6 +361,7 @@ define QT5BASE_CONFIGURE_CMDS
 		-device-option CROSS_COMPILE="$(TARGET_CROSS)" \
 		-device-option BR_COMPILER_CFLAGS="$(QT5BASE_CFLAGS)" \
 		-device-option BR_COMPILER_CXXFLAGS="$(QT5BASE_CXXFLAGS)" \
+		-device-option BR_OPTIMIZATION="$(TARGET_OPTIMIZATION)" \
 		$(QT5BASE_CONFIGURE_OPTS) \
 	)
 endef
-- 
2.17.1




More information about the buildroot mailing list