Skip to contentSkip to conversation

qt: Add optimization flags, GCC 4.6 fix, and impvore QT_MAKE_SET and QT_CONFIGURE_IPV6

PATCH New Ismael Luceno 2 participants 4 messages Feb 26, 2012

lore
Share & tools
lore
#0 lore raw

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

---
 package/qt/qt.mk |   42 +++++++++++++++++++++---------------------
 1 files changed, 21 insertions(+), 21 deletions(-)
package/qt/qt.mk +21 -21
index 5414947..f0045de 100644
@@ -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); \
Signature · 1 line
1.7.9.1
#1 lore raw

PATCH 2/3 qt: Fix compilation of generic atomic routines

---
 package/qt/qt-gcc-4.6.2-fixes.patch |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)
 create mode 100644 package/qt/qt-gcc-4.6.2-fixes.patch
package/qt/qt-gcc-4.6.2-fixes.patch new file +11 -0
new file mode 100644
index 0000000..6918f33
@@ -0,0 +1,11 @@
+--- a/src/corelib/arch/qatomic_generic.h	2012-02-20 07:24:17.299239630 -0200
++++ b/src/corelib/arch/qatomic_generic.h	2012-02-20 07:23:32.634562979 -0200
+@@ -194,7 +194,7 @@
+ {
+     union { T * volatile * typed; void * volatile * voidp; } pointer;
+     pointer.typed = &_q_value;
+-    return QBasicAtomicPointer_testAndSetOrdered(pointer.voidp, expectedValue, newValue);
++    return QBasicAtomicPointer_testAndSetOrdered(pointer.voidp, (void *)expectedValue, (void *)newValue);
+ }
+ 
+ template <typename T>
Signature · 1 line
1.7.9.1
#2 lore raw

PATCH 3/3 qt: Patch to disable some tools that give link-time issues

In reply to Ismael Luceno
---
 package/qt/qt-tools-qml-only.patch |   20 ++++++++++++++++++++
 1 files changed, 20 insertions(+), 0 deletions(-)
 create mode 100644 package/qt/qt-tools-qml-only.patch
package/qt/qt-tools-qml-only.patch new file +20 -0
new file mode 100644
index 0000000..c61db55
@@ -0,0 +1,20 @@
+--- a/tools/tools.pro	2012-02-20 23:18:32.978137903 -0200
++++ b/tools/tools.pro	2012-02-20 23:18:08.283955958 -0200
+@@ -8,6 +8,6 @@
+             SUBDIRS = designer
+         } else:wince* {
+             SUBDIRS = qtestlib designer
+-        } else {
++        } else:!embedded {
+             SUBDIRS = assistant \
+                       pixeltool \
+@@ -29,8 +29,8 @@
+     }
+ }
+ 
+-!wince*:!symbian:SUBDIRS += linguist
++!embedded:!wince*:!symbian:SUBDIRS += linguist
+ 
+ mac {
+     SUBDIRS += macdeployqt
+ }
Signature · 1 line
1.7.9.1
#3 lore raw

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

In reply to Ismael Luceno
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Ismael" == Ismael Luceno <[email protected]> writes:

Please don't mix unrelated changes in the same commit. I already added the gcc 4.6 workaround in a seperate commit. What does 'impvore' mean?

Also please don't forget to add your signed-off-by when you resend, thanks.

Signature · 1 line
Bye, Peter Korsgaard