summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'x11-libs/qt/files/qt-3.3.8-mips.patch')
-rw-r--r--x11-libs/qt/files/qt-3.3.8-mips.patch39
1 files changed, 39 insertions, 0 deletions
diff --git a/x11-libs/qt/files/qt-3.3.8-mips.patch b/x11-libs/qt/files/qt-3.3.8-mips.patch
new file mode 100644
index 000000000000..1f70900f7bf4
--- /dev/null
+++ b/x11-libs/qt/files/qt-3.3.8-mips.patch
@@ -0,0 +1,39 @@
+Bug 210551.
+Fix compilation on mips
+
+Original commit message by Christopher Martin, debian bug 342545.
+
+ * Add a patch, courtesy of Steve Langasek, that fixes
+ qt-x11-free's longstanding intermittent FTBFS on hppa, caused
+ by "the bogus assumption in src/tools/qlocale.cpp that a
+ char[] can be cast to a double *." (Closes: #342545)
+
+--- qt-x11-free-3.3.6.orig/src/tools/qlocale.cpp
++++ qt-x11-free-3.3.6/src/tools/qlocale.cpp
+@@ -122,13 +122,24 @@
+ #endif
+
+ // We can't rely on -NAN, since all operations on a NAN should return a NAN.
++static double be_neg_nan;
++static double le_neg_nan;
+ static const unsigned char be_neg_nan_bytes[] = { 0xff, 0xf8, 0, 0, 0, 0, 0, 0 };
+ static const unsigned char le_neg_nan_bytes[] = { 0, 0, 0, 0, 0, 0, 0xf8, 0xff };
++static bool neg_nan_init = false;
++
+ static inline double negNan()
+ {
++ if (!neg_nan_init)
++ {
++ memcpy(&be_neg_nan,be_neg_nan_bytes,sizeof(be_neg_nan_bytes));
++ memcpy(&le_neg_nan,le_neg_nan_bytes,sizeof(le_neg_nan_bytes));
++ neg_nan_init = true;
++ }
+ return (ByteOrder == BigEndian ?
+- *((const double *) be_neg_nan_bytes) :
+- *((const double *) le_neg_nan_bytes));
++ be_neg_nan :
++ le_neg_nan);
++
+ }
+
+ // Sizes as defined by the ISO C99 standard - fallback