[Buildroot] [PATCH 1/3] qt: Add optimization flags, GCC 4.6 fix, and impvore QT_MAKE_SET and QT_CONFIGURE_IPV6

Ismael Luceno ismael.luceno at gmail.com
Sun Feb 26 12:13:30 UTC 2012


---
 package/qt/qt.mk |   42 +++++++++++++++++++++---------------------
 1 files changed, 21 insertions(+), 21 deletions(-)

diff --git a/package/qt/qt.mk b/package/qt/qt.mk
index 5414947..f0045de 100644
--- a/package/qt/qt.mk
+++ b/package/qt/qt.mk
@@ -28,8 +28,11 @@ ifneq ($(QT_CONFIG_FILE),)
 QT_CONFIGURE_OPTS += -config buildroot
 endif
 
-QT_CFLAGS = $(TARGET_CFLAGS)
-QT_CXXFLAGS = $(TARGET_CXXFLAGS)
+QT_FLAGS = -march=$(BR2_GCC_TARGET_ARCH) -mcpu=$(BR2_GCC_TARGET_TUNE)
+
+# XXX: The following flag is a workaround for a GCC bug, detailed by
+# <http://gcc.gnu.org/ml/gcc-patches/2010-11/msg02245.html>
+QT_FLAGS += -fno-strict-volatile-bitfields
 
 ifeq ($(BR2_LARGEFILE),y)
 QT_CONFIGURE_OPTS += -largefile
@@ -39,8 +42,7 @@ QT_CONFIGURE_OPTS += -no-largefile
 # embedded sqlite module forces FILE_OFFSET_BITS=64 unless this is defined
 # webkit internally uses this module as well
 ifneq ($(BR2_PACKAGE_QT_SQLITE_QT)$(BR2_PACKAGE_QT_WEBKIT),)
-QT_CFLAGS += -DSQLITE_DISABLE_LFS
-QT_CXXFLAGS += -DSQLITE_DISABLE_LFS
+QT_FLAGS += -DSQLITE_DISABLE_LFS
 endif
 
 endif
@@ -443,20 +445,18 @@ QT_QMAKE:=$(HOST_DIR)/usr/bin/qmake -spec qws/linux-$(QT_EMB_PLATFORM)-g++
 #
 # Argument 1 is the variable name
 # Argument 2 is the value to set variable to
-# Argument 3 is the base source directory of Qt
+# Argument 3 is a flag, set it to + to append values
 #
 # E.G. use like this:
 # $(call QT_QMAKE_SET,variable,value,directory)
 ################################################################################
 define QT_QMAKE_SET
-	$(SED) '/$(1)/d' $(3)/mkspecs/qws/linux-$(QT_EMB_PLATFORM)-g++/qmake.conf
-	$(SED) '/include.*qws.conf/a$(1) = $(2)' $(3)/mkspecs/qws/linux-$(QT_EMB_PLATFORM)-g++/qmake.conf
+	$(SED) '/$(1)/d;/include.*qws.conf/a$(1) $(3)= $(2)' $(@D)/mkspecs/qws/linux-$(QT_EMB_PLATFORM)-g++/qmake.conf
 endef
 
 ifneq ($(BR2_INET_IPV6),y)
 define QT_CONFIGURE_IPV6
-	$(SED) 's/^CFG_IPV6=auto/CFG_IPV6=no/' $(@D)/configure
-	$(SED) 's/^CFG_IPV6IFNAME=auto/CFG_IPV6IFNAME=no/' $(@D)/configure
+	$(SED) 's/^CFG_IPV6=auto/CFG_IPV6=no/;s/^CFG_IPV6IFNAME=auto/CFG_IPV6IFNAME=no/' $(@D)/configure
 endef
 endif
 
@@ -471,18 +471,18 @@ define QT_CONFIGURE_CMDS
 	$(QT_CONFIGURE_IPV6)
 	$(QT_CONFIGURE_CONFIG_FILE)
 	# Fix compiler path
-	$(call QT_QMAKE_SET,QMAKE_CC,$(TARGET_CC),$(@D))
-	$(call QT_QMAKE_SET,QMAKE_CXX,$(TARGET_CXX),$(@D))
-	$(call QT_QMAKE_SET,QMAKE_LINK,$(TARGET_CXX),$(@D))
-	$(call QT_QMAKE_SET,QMAKE_LINK_SHLIB,$(TARGET_CXX),$(@D))
-	$(call QT_QMAKE_SET,QMAKE_AR,$(TARGET_AR) cqs,$(@D))
-	$(call QT_QMAKE_SET,QMAKE_OBJCOPY,$(TARGET_OBJCOPY),$(@D))
-	$(call QT_QMAKE_SET,QMAKE_RANLIB,$(TARGET_RANLIB),$(@D))
-	$(call QT_QMAKE_SET,QMAKE_STRIP,$(TARGET_STRIP),$(@D))
-	$(call QT_QMAKE_SET,QMAKE_CFLAGS,$(QT_CFLAGS),$(@D))
-	$(call QT_QMAKE_SET,QMAKE_CXXFLAGS,$(QT_CXXFLAGS),$(@D))
-	$(call QT_QMAKE_SET,QMAKE_LFLAGS,$(TARGET_LDFLAGS),$(@D))
-	$(call QT_QMAKE_SET,PKG_CONFIG,$(HOST_DIR)/usr/bin/pkg-config,$(@D))
+	$(call QT_QMAKE_SET,QMAKE_CC,$(TARGET_CC))
+	$(call QT_QMAKE_SET,QMAKE_CXX,$(TARGET_CXX))
+	$(call QT_QMAKE_SET,QMAKE_LINK,$(TARGET_CXX))
+	$(call QT_QMAKE_SET,QMAKE_LINK_SHLIB,$(TARGET_CXX))
+	$(call QT_QMAKE_SET,QMAKE_AR,$(TARGET_AR) cqs)
+	$(call QT_QMAKE_SET,QMAKE_OBJCOPY,$(TAGET_OBJCOPY))
+	$(call QT_QMAKE_SET,QMAKE_RANLIB,$(TARGET_RANLIB))
+	$(call QT_QMAKE_SET,QMAKE_STRIP,$(TARGET_STRIP))
+	$(call QT_QMAKE_SET,QMAKE_CFLAGS,$(QT_FLAGS) $(TARGET_CFLAGS),+)
+	$(call QT_QMAKE_SET,QMAKE_CXXFLAGS,$(QT_FLAGS) $(TARGET_CXXFLAGS),+)
+	$(call QT_QMAKE_SET,QMAKE_LFLAGS,$(TARGET_LDFLAGS),+)
+	$(call QT_QMAKE_SET,PKG_CONFIG,$(HOST_DIR)/usr/bin/pkg-config)
 # Don't use TARGET_CONFIGURE_OPTS here, qmake would be compiled for the target
 # instead of the host then. So set PKG_CONFIG* manually.
 	(cd $(@D); \
-- 
1.7.9.1




More information about the buildroot mailing list