summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--debian/changelog6
-rw-r--r--debian/control1
-rw-r--r--debian/patches/dyson-solaris-amd64-memory-layout.patch81
-rw-r--r--debian/patches/series1
4 files changed, 87 insertions, 2 deletions
diff --git a/debian/changelog b/debian/changelog
index 3e49a5d..3b76119 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-qtwebkit (2.2.1-7+dyson1) UNRELEASED; urgency=low
+qtwebkit (2.2.1-7+dyson1) unstable; urgency=low
* Package for Dyson
* Added dyson-solaris-use-system-malloc.patch
@@ -7,8 +7,10 @@ qtwebkit (2.2.1-7+dyson1) UNRELEASED; urgency=low
* Added dyson-MachineStackMarker-stackPointer.patch
* Added dyson-glib.patch
* Added dyson-Wno-c++0x-compat.patch
+ * Added dyson-solaris-amd64-memory-layout.patch
+ * Build depends on qt4-default (installed Qt5 breaks build)
- -- Igor Pashev <pashev.igor@gmail.com> Tue, 03 Dec 2013 23:54:22 +0400
+ -- Igor Pashev <pashev.igor@gmail.com> Wed, 18 Dec 2013 23:00:34 +0400
qtwebkit (2.2.1-7) unstable; urgency=low
diff --git a/debian/control b/debian/control
index 42c40b2..4fe1ddd 100644
--- a/debian/control
+++ b/debian/control
@@ -11,6 +11,7 @@ Build-Depends: debhelper (>= 9),
libicu-dev,
libqt4-dev (>= 4:4.8.1),
libqt4-opengl-dev (>= 4:4.8.1),
+ qt4-default,
libsqlite3-dev,
libxext-dev,
libxrender-dev,
diff --git a/debian/patches/dyson-solaris-amd64-memory-layout.patch b/debian/patches/dyson-solaris-amd64-memory-layout.patch
new file mode 100644
index 0000000..9c7d7e9
--- /dev/null
+++ b/debian/patches/dyson-solaris-amd64-memory-layout.patch
@@ -0,0 +1,81 @@
+Index: qtwebkit/Source/JavaScriptCore/wtf/Platform.h
+===================================================================
+--- qtwebkit.orig/Source/JavaScriptCore/wtf/Platform.h 2013-12-10 19:58:35.228838500 +0400
++++ qtwebkit/Source/JavaScriptCore/wtf/Platform.h 2013-12-18 00:39:02.801401856 +0400
+@@ -480,6 +480,19 @@
+ #define WTF_OS_UNIX 1
+ #endif
+
++#ifndef WTF_OS_SOLARIS_AMD64
++# if OS(SOLARIS) && CPU(X86_64)
++# define WTF_OS_SOLARIS_AMD64 1
++# else
++# define WTF_OS_SOLARIS_AMD64 0
++# endif
++#endif
++
++// JIT needs to be ported to solaris/amd64 memory layout:
++#if OS(SOLARIS_AMD64)
++# define ENABLE_JIT 0
++#endif
++
+ /* Operating environments */
+
+ /* FIXME: these are all mixes of OS, operating environment and policy choices. */
+Index: qtwebkit/Source/JavaScriptCore/runtime/JSValue.h
+===================================================================
+--- qtwebkit.orig/Source/JavaScriptCore/runtime/JSValue.h 2011-12-25 23:12:15.000000000 +0400
++++ qtwebkit/Source/JavaScriptCore/runtime/JSValue.h 2013-12-16 19:45:12.002798264 +0400
+@@ -362,6 +362,17 @@
+ #endif
+
+ EncodedValueDescriptor u;
++
++#if OS(SOLARIS_AMD64)
++// https://bugzilla.mozilla.org/show_bug.cgi?id=577056
++// Memory layout for 64-bit Solaris is different than other 64-bit systems.
++// User space memory may locate on PART-A (0xFFFFFD80.00000000 - 0xFFFF8000.00000000)
++// and PART-B (0x00008000.00000000 - 0x00000000.04000000).
++ ALWAYS_INLINE bool isSolarisAMD64StackPointer() const
++ {
++ return ((u.asInt64 & 0xFFFF800000000007LL) == 0xFFFF800000000000LL);
++ }
++#endif
+ };
+
+ #if USE(JSVALUE32_64)
+Index: qtwebkit/Source/JavaScriptCore/runtime/JSValueInlineMethods.h
+===================================================================
+--- qtwebkit.orig/Source/JavaScriptCore/runtime/JSValueInlineMethods.h 2011-12-25 23:12:15.000000000 +0400
++++ qtwebkit/Source/JavaScriptCore/runtime/JSValueInlineMethods.h 2013-12-16 19:51:19.814996750 +0400
+@@ -482,11 +482,19 @@
+
+ inline bool JSValue::isCell() const
+ {
++#if OS(SOLARIS_AMD64)
++ if (isSolarisAMD64StackPointer())
++ return true;
++#endif
+ return !(u.asInt64 & TagMask);
+ }
+
+ inline bool JSValue::isInt32() const
+ {
++#if OS(SOLARIS_AMD64)
++ if (isSolarisAMD64StackPointer())
++ return false;
++#endif
+ return (u.asInt64 & TagTypeNumber) == TagTypeNumber;
+ }
+
+@@ -516,6 +524,10 @@
+
+ inline bool JSValue::isNumber() const
+ {
++#if OS(SOLARIS_AMD64)
++ if (isSolarisAMD64StackPointer())
++ return false;
++#endif
+ return u.asInt64 & TagTypeNumber;
+ }
+
diff --git a/debian/patches/series b/debian/patches/series
index d15eca3..c126aeb 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -23,4 +23,5 @@ dyson-yield.patch
dyson-MathExtras.h.patch
dyson-MachineStackMarker-stackPointer.patch
dyson-glib.patch
+dyson-solaris-amd64-memory-layout.patch
dyson-Wno-c++0x-compat.patch