patch for cross mingw32 build; refs #22

master
Marc Wäckerlin 14 years ago
parent b3023927a4
commit daa56586f9
  1. 176
      qt/patch/qt-sources-for-mingw-cross-compile.diff

@ -0,0 +1,176 @@
diff -ru qt-everywhere-opensource-src-4.7.1/mkspecs/win32-g++/qmake.conf qt-everywhere-opensource-src-4.7.1-mingw/mkspecs/win32-g++/qmake.conf
--- qt-everywhere-opensource-src-4.7.1/mkspecs/win32-g++/qmake.conf 2010-11-06 02:55:11.000000000 +0100
+++ qt-everywhere-opensource-src-4.7.1-mingw/mkspecs/win32-g++/qmake.conf 2011-02-04 12:30:53.873211904 +0100
@@ -7,6 +7,7 @@
MAKEFILE_GENERATOR = MINGW
TEMPLATE = app
CONFIG += qt warn_on release link_prl copy_dir_files debug_and_release debug_and_release_target precompile_header
+CONFIG += rtti exceptions
QT += core gui
DEFINES += UNICODE QT_LARGEFILE_SUPPORT
QMAKE_COMPILER_DEFINES += __GNUC__ WIN32
@@ -14,7 +15,7 @@
QMAKE_EXT_OBJ = .o
QMAKE_EXT_RES = _res.o
-QMAKE_CC = gcc
+QMAKE_CC = i586-mingw32msvc-gcc
QMAKE_LEX = flex
QMAKE_LEXFLAGS =
QMAKE_YACC = byacc
@@ -27,7 +28,7 @@
QMAKE_CFLAGS_DEBUG = -g
QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
-QMAKE_CXX = g++
+QMAKE_CXX = i586-mingw32msvc-g++
QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
@@ -41,7 +42,10 @@
QMAKE_CXXFLAGS_EXCEPTIONS_ON = -fexceptions -mthreads
QMAKE_CXXFLAGS_EXCEPTIONS_OFF = -fno-exceptions
-QMAKE_INCDIR =
+#INCLUDEPATH += /usr/i586-mingw32msvc/include
+#INCLUDEPATH += /opt/local/i586-mingw32msvc/include
+QMAKE_INCDIR = /opt/local/i586-mingw32msvc/include
+QMAKE_LIBDIR = /opt/local/i586-mingw32msvc/lib
QMAKE_INCDIR_QT = $$[QT_INSTALL_HEADERS]
QMAKE_LIBDIR_QT = $$[QT_INSTALL_LIBS]
@@ -50,8 +54,8 @@
QMAKE_RUN_CXX = $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $obj $src
QMAKE_RUN_CXX_IMP = $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
-QMAKE_LINK = g++
-QMAKE_LINK_C = gcc
+QMAKE_LINK = i586-mingw32msvc-g++
+QMAKE_LINK_C = i586-mingw32msvc-gcc
QMAKE_LFLAGS = -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc
QMAKE_LFLAGS_EXCEPTIONS_ON = -mthreads -Wl
QMAKE_LFLAGS_EXCEPTIONS_OFF =
@@ -76,32 +80,32 @@
MINGW_IN_SHELL = 1
QMAKE_DIR_SEP = /
QMAKE_QMAKE ~= s,\\\\,/,
- QMAKE_COPY = cp
- QMAKE_COPY_DIR = xcopy /s /q /y /i
+ QMAKE_COPY = cp -r
+ QMAKE_COPY_DIR = cp -r
QMAKE_MOVE = mv
QMAKE_DEL_FILE = rm
- QMAKE_MKDIR = mkdir
+ QMAKE_MKDIR = mkdir -p
QMAKE_DEL_DIR = rmdir
QMAKE_CHK_DIR_EXISTS = test -d
} else {
- QMAKE_COPY = copy /y
- QMAKE_COPY_DIR = xcopy /s /q /y /i
- QMAKE_MOVE = move
- QMAKE_DEL_FILE = del
- QMAKE_MKDIR = mkdir
+ QMAKE_COPY = cp -r
+ QMAKE_COPY_DIR = cp -fr
+ QMAKE_MOVE = mv
+ QMAKE_DEL_FILE = rm -r
+ QMAKE_MKDIR = mkdir -p
QMAKE_DEL_DIR = rmdir
- QMAKE_CHK_DIR_EXISTS = if not exist
+ QMAKE_CHK_DIR_EXISTS = test -d
}
-QMAKE_MOC = $$[QT_INSTALL_BINS]$${DIR_SEPARATOR}moc.exe
-QMAKE_UIC = $$[QT_INSTALL_BINS]$${DIR_SEPARATOR}uic.exe
-QMAKE_IDC = $$[QT_INSTALL_BINS]$${DIR_SEPARATOR}idc.exe
+QMAKE_MOC = $$[QT_INSTALL_BINS]/moc
+QMAKE_UIC = $$[QT_INSTALL_BINS]/uic
+QMAKE_IDC = $$[QT_INSTALL_BINS]/idc
QMAKE_IDL = midl
-QMAKE_LIB = ar -ru
-QMAKE_RC = windres
+QMAKE_LIB = i586-mingw32msvc-ar -ru
+QMAKE_RC = i586-mingw32msvc-windres
QMAKE_ZIP = zip -r -9
-QMAKE_STRIP = strip
+QMAKE_STRIP = i586-mingw32msvc-strip
QMAKE_STRIPFLAGS_LIB += --strip-unneeded
load(qt_config)
diff -ru qt-everywhere-opensource-src-4.7.1/src/corelib/codecs/codecs.pri qt-everywhere-opensource-src-4.7.1-mingw/src/corelib/codecs/codecs.pri
--- qt-everywhere-opensource-src-4.7.1/src/corelib/codecs/codecs.pri 2010-11-06 02:55:18.000000000 +0100
+++ qt-everywhere-opensource-src-4.7.1-mingw/src/corelib/codecs/codecs.pri 2011-02-01 08:42:37.180300856 +0100
@@ -19,7 +19,7 @@
codecs/qutfcodec.cpp \
codecs/qtextcodecplugin.cpp
-unix {
+#unix {
SOURCES += codecs/qfontlaocodec.cpp
contains(QT_CONFIG,iconv) {
@@ -55,5 +55,5 @@
../plugins/codecs/tw/qbig5codec.cpp \
../plugins/codecs/jp/qfontjpcodec.cpp
}
-}
+#}
symbian:LIBS += -lcharconv
diff -ru qt-everywhere-opensource-src-4.7.1/src/corelib/tools/qlocale.cpp qt-everywhere-opensource-src-4.7.1-mingw/src/corelib/tools/qlocale.cpp
--- qt-everywhere-opensource-src-4.7.1/src/corelib/tools/qlocale.cpp 2010-11-06 02:55:19.000000000 +0100
+++ qt-everywhere-opensource-src-4.7.1-mingw/src/corelib/tools/qlocale.cpp 2011-01-31 15:34:42.765470002 +0100
@@ -6624,18 +6624,18 @@
{
// Some values of the floating-point control word can cause _qdtoa to crash with an underflow.
// We set a safe value here.
-#ifdef Q_OS_WIN
- _clear87();
- unsigned int oldbits = _control87(0, 0);
-#ifndef MCW_EM
-# ifdef _MCW_EM
-# define MCW_EM _MCW_EM
-# else
-# define MCW_EM 0x0008001F
-# endif
-#endif
- _control87(MCW_EM, MCW_EM);
-#endif
+// #ifdef Q_OS_WIN
+// _clear87();
+// unsigned int oldbits = _control87(0, 0);
+// #ifndef MCW_EM
+// # ifdef _MCW_EM
+// # define MCW_EM _MCW_EM
+// # else
+// # define MCW_EM 0x0008001F
+// # endif
+// #endif
+// _control87(MCW_EM, MCW_EM);
+// #endif
#if defined(Q_OS_LINUX) && !defined(__UCLIBC__)
fenv_t envp;
@@ -6644,14 +6644,14 @@
char *s = _qdtoa(d, mode, ndigits, decpt, sign, rve, resultp);
-#ifdef Q_OS_WIN
- _clear87();
-#ifndef _M_X64
- _control87(oldbits, 0xFFFFF);
-#else
- _control87(oldbits, _MCW_EM|_MCW_DN|_MCW_RC);
-#endif //_M_X64
-#endif //Q_OS_WIN
+// #ifdef Q_OS_WIN
+// _clear87();
+// #ifndef _M_X64
+// _control87(oldbits, 0xFFFFF);
+// #else
+// _control87(oldbits, _MCW_EM|_MCW_DN|_MCW_RC);
+// #endif //_M_X64
+// #endif //Q_OS_WIN
#if defined(Q_OS_LINUX) && !defined(__UCLIBC__)
fesetenv(&envp);
Loading…
Cancel
Save