diff options
-rw-r--r-- | debian/changelog | 6 | ||||
-rw-r--r-- | debian/control | 1 | ||||
-rw-r--r-- | debian/patches/dyson-solaris-amd64-memory-layout.patch | 81 | ||||
-rw-r--r-- | debian/patches/series | 1 |
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 |