From ddad7732266f43b3033382b75f7e04a40a21d5ef Mon Sep 17 00:00:00 2001 From: Igor Pashev Date: Mon, 28 Apr 2014 13:17:43 +0400 Subject: qtscript-opensource-src (5.2.1+dfsg-3~dyson1) unstable; urgency=medium * Package for Dyson * Exclude *.la files from dh_install in d/rules * Added patches (same as for Qt4): - dyson-solaris-use-system-malloc.patch - dyson-js-solaris-memory-layout.patch --- debian/changelog | 10 ++ .../patches/dyson-js-solaris-memory-layout.patch | 129 +++++++++++++++++++++ debian/patches/dyson-use-system-malloc.patch | 15 +++ debian/patches/series | 2 + debian/rules | 2 +- 5 files changed, 157 insertions(+), 1 deletion(-) create mode 100644 debian/patches/dyson-js-solaris-memory-layout.patch create mode 100644 debian/patches/dyson-use-system-malloc.patch diff --git a/debian/changelog b/debian/changelog index a2f70a6..68b74e3 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,13 @@ +qtscript-opensource-src (5.2.1+dfsg-3~dyson1) unstable; urgency=medium + + * Package for Dyson + * Exclude *.la files from dh_install in d/rules + * Added patches (same as for Qt4): + - dyson-solaris-use-system-malloc.patch + - dyson-js-solaris-memory-layout.patch + + -- Igor Pashev Mon, 28 Apr 2014 12:38:53 +0400 + qtscript-opensource-src (5.2.1+dfsg-3) UNRELEASED; urgency=medium [ Lisandro Damián Nicanor Pérez Meyer ] diff --git a/debian/patches/dyson-js-solaris-memory-layout.patch b/debian/patches/dyson-js-solaris-memory-layout.patch new file mode 100644 index 0000000..c9f0bb8 --- /dev/null +++ b/debian/patches/dyson-js-solaris-memory-layout.patch @@ -0,0 +1,129 @@ +Description: Patch for Solaris 64-bit memory layout +Bug-Dyson: http://osdyson.org/issues/160 +Bug-Dyson: http://osdyson.org/issues/145 +Bug-Dyson: http://osdyson.org/issues/159 +Bug-Firefox: https://bugzilla.mozilla.org/show_bug.cgi?id=577056 +Index: qtscript/src/3rdparty/javascriptcore/JavaScriptCore/runtime/JSImmediate.h +=================================================================== +--- qtscript.orig/src/3rdparty/javascriptcore/JavaScriptCore/runtime/JSImmediate.h 2014-02-02 00:37:23.000000000 +0400 ++++ qtscript/src/3rdparty/javascriptcore/JavaScriptCore/runtime/JSImmediate.h 2014-04-28 12:02:19.681042540 +0400 +@@ -196,19 +196,43 @@ + + static const int32_t signBit = 0x80000000; + ++#if OS(SOLARIS64) ++// https://bugzilla.mozilla.org/show_bug.cgi?id=577056 ++// Memory layout for 64-bit Solaris is different than other 64-bit systems. ++// http://developers.sun.com/solaris/articles/solaris_memory.html ++// User space memory may locate on PART-A (0xFFFFFD80.00000000 - 0xFFFF8000.00000000) ++// and PART-B (0x00008000.00000000 - 0x00000000.04000000). ++ static ALWAYS_INLINE bool isSolaris64StackPointer(JSValue v) ++ { ++ return ((rawValue(v) & 0xFFFF800000000000LL) == 0xFFFF800000000000LL); ++ } ++#endif ++ + static ALWAYS_INLINE bool isImmediate(JSValue v) + { ++#if OS(SOLARIS64) ++ if (isSolaris64StackPointer(v)) ++ return false; ++#endif + return rawValue(v) & TagMask; + } + + static ALWAYS_INLINE bool isNumber(JSValue v) + { ++#if OS(SOLARIS64) ++ if (isSolaris64StackPointer(v)) ++ return false; ++#endif + return rawValue(v) & TagTypeNumber; + } + + static ALWAYS_INLINE bool isIntegerNumber(JSValue v) + { + #if USE(JSVALUE64) ++# if OS(SOLARIS64) ++ if (isSolaris64StackPointer(v)) ++ return false; ++# endif + return (rawValue(v) & TagTypeNumber) == TagTypeNumber; + #else + return isNumber(v); +@@ -218,23 +242,39 @@ + #if USE(JSVALUE64) + static ALWAYS_INLINE bool isDouble(JSValue v) + { ++#if OS(SOLARIS64) ++ if (isSolaris64StackPointer(v)) ++ return false; ++#endif + return isNumber(v) && !isIntegerNumber(v); + } + #endif + + static ALWAYS_INLINE bool isPositiveIntegerNumber(JSValue v) + { ++#if OS(SOLARIS64) ++ if (isSolaris64StackPointer(v)) ++ return false; ++#endif + // A single mask to check for the sign bit and the number tag all at once. + return (rawValue(v) & (signBit | TagTypeNumber)) == TagTypeNumber; + } + + static ALWAYS_INLINE bool isBoolean(JSValue v) + { ++#if OS(SOLARIS64) ++ if (isSolaris64StackPointer(v)) ++ return false; ++#endif + return (rawValue(v) & FullTagTypeMask) == FullTagTypeBool; + } + + static ALWAYS_INLINE bool isUndefinedOrNull(JSValue v) + { ++#if OS(SOLARIS64) ++ if (isSolaris64StackPointer(v)) ++ return false; ++#endif + // Undefined and null share the same value, bar the 'undefined' bit in the extended tag. + return (rawValue(v) & ~ExtendedTagBitUndefined) == FullTagTypeNull; + } +@@ -254,6 +294,10 @@ + + static ALWAYS_INLINE bool isEitherImmediate(JSValue v1, JSValue v2) + { ++#if OS(SOLARIS64) ++ if (isSolaris64StackPointer(v1) && isSolaris64StackPointer(v2)) ++ return false; ++#endif + return (rawValue(v1) | rawValue(v2)) & TagMask; + } + +@@ -265,6 +309,10 @@ + static ALWAYS_INLINE bool areBothImmediateIntegerNumbers(JSValue v1, JSValue v2) + { + #if USE(JSVALUE64) ++# if OS(SOLARIS64) ++ if (isSolaris64StackPointer(v1) || isSolaris64StackPointer(v2)) ++ return false; ++# endif + return (rawValue(v1) & rawValue(v2) & TagTypeNumber) == TagTypeNumber; + #else + return rawValue(v1) & rawValue(v2) & TagTypeNumber; +Index: qtscript/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h +=================================================================== +--- qtscript.orig/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h 2014-04-28 11:52:07.408011217 +0400 ++++ qtscript/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h 2014-04-28 12:02:19.685676998 +0400 +@@ -448,6 +448,9 @@ + /* OS(SOLARIS) - Solaris */ + #if defined(sun) || defined(__sun) + #define WTF_OS_SOLARIS 1 ++#if defined(__LP64__) ++#define WTF_OS_SOLARIS64 1 ++#endif + #endif + + /* OS(WINCE) - Windows CE; note that for this platform OS(WINDOWS) is also defined */ diff --git a/debian/patches/dyson-use-system-malloc.patch b/debian/patches/dyson-use-system-malloc.patch new file mode 100644 index 0000000..1630df8 --- /dev/null +++ b/debian/patches/dyson-use-system-malloc.patch @@ -0,0 +1,15 @@ +Index: qtscript/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h +=================================================================== +--- qtscript.orig/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h 2014-04-28 11:01:55.106740703 +0400 ++++ qtscript/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h 2014-04-28 11:52:07.408011217 +0400 +@@ -821,6 +821,10 @@ + + #endif + ++#if OS(SOLARIS) ++#define USE_SYSTEM_MALLOC 1 ++#endif ++ + /* ENABLE macro defaults */ + + /* fastMalloc match validation allows for runtime verification that diff --git a/debian/patches/series b/debian/patches/series index 021a4c5..a439dd1 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,3 +1,5 @@ enable-make-check.patch disable_v8_sunspider_tests.patch s390x_jscore.diff +dyson-use-system-malloc.patch +dyson-js-solaris-memory-layout.patch diff --git a/debian/rules b/debian/rules index 86f1644..9df8774 100755 --- a/debian/rules +++ b/debian/rules @@ -28,7 +28,7 @@ override_dh_auto_install-indep: make INSTALL_ROOT=$(CURDIR)/debian/tmp install_docs override_dh_install: - dh_install --fail-missing + dh_install --fail-missing -X.la override_dh_builddeb: dh_builddeb -- -Zxz -- cgit v1.2.3