summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor Pashev <pashev.igor@gmail.com>2014-04-28 13:17:43 +0400
committerIgor Pashev <pashev.igor@gmail.com>2014-04-28 13:17:43 +0400
commitddad7732266f43b3033382b75f7e04a40a21d5ef (patch)
tree5aa01a5bf085b9825bdc99f6dfabc8f79636b73e
parent68f399c3ab4bd7d98d26357bd7671a29dc90cdcd (diff)
downloadqtscript-ddad7732266f43b3033382b75f7e04a40a21d5ef.tar.gz
qtscript-opensource-src (5.2.1+dfsg-3~dyson1) unstable; urgency=mediumdyson/5.2.1+dfsg-3_dyson1
* 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
-rw-r--r--debian/changelog10
-rw-r--r--debian/patches/dyson-js-solaris-memory-layout.patch129
-rw-r--r--debian/patches/dyson-use-system-malloc.patch15
-rw-r--r--debian/patches/series2
-rwxr-xr-xdebian/rules2
5 files changed, 157 insertions, 1 deletions
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 <pashev.igor@gmail.com> 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