summaryrefslogtreecommitdiff
path: root/debian/patches/dyson-qv4engine-getStackLimit.patch
diff options
context:
space:
mode:
authorIgor Pashev <pashev.igor@gmail.com>2014-04-27 14:51:34 +0400
committerIgor Pashev <pashev.igor@gmail.com>2014-04-27 14:51:34 +0400
commit68ff2bbe7bbe96d9da6788d3ee9273d1bf50a903 (patch)
tree99a8c985c3b74cbb42dc28660c51eb72b2fec5a6 /debian/patches/dyson-qv4engine-getStackLimit.patch
parent19d586fd1a3fde028c666fb5f49dd66f41b7da36 (diff)
downloadqtdeclarative-68ff2bbe7bbe96d9da6788d3ee9273d1bf50a903.tar.gz
qtdeclarative-opensource-src (5.2.1-5+dyson1)dyson/5.2.1-5+dyson1
* Package for Dyson * debian/libqt5qml5.symbols: added illumos-amd64 arch where amd64 and kfreebsd-amd64 * debian/libqt5quickparticles5.symbol: likewise * Added patches: dyson-qv4engine-getStackLimit.patch dyson-wtf-MathExtras.patch dyson-jsruntime-MemoryManager.patch dyson-jsruntime-pow.patch
Diffstat (limited to 'debian/patches/dyson-qv4engine-getStackLimit.patch')
-rw-r--r--debian/patches/dyson-qv4engine-getStackLimit.patch30
1 files changed, 30 insertions, 0 deletions
diff --git a/debian/patches/dyson-qv4engine-getStackLimit.patch b/debian/patches/dyson-qv4engine-getStackLimit.patch
new file mode 100644
index 0000000..09b6006
--- /dev/null
+++ b/debian/patches/dyson-qv4engine-getStackLimit.patch
@@ -0,0 +1,30 @@
+Index: qtdeclarative-opensource-src-5.2.1/src/qml/jsruntime/qv4engine.cpp
+===================================================================
+--- qtdeclarative-opensource-src-5.2.1.orig/src/qml/jsruntime/qv4engine.cpp 2014-02-02 00:38:02.000000000 +0400
++++ qtdeclarative-opensource-src-5.2.1/src/qml/jsruntime/qv4engine.cpp 2014-04-27 09:34:20.425260667 +0400
+@@ -77,6 +77,10 @@
+ #if USE(PTHREADS)
+ # include <pthread.h>
+ # include <sys/resource.h>
++# if OS(SOLARIS)
++# include <thread.h>
++# include <errno.h>
++# endif
+ #endif
+
+ QT_BEGIN_NAMESPACE
+@@ -106,6 +110,14 @@
+ } else
+ size = pthread_get_stacksize_np(thread_self);
+ stackLimit -= size;
++# elif OS(SOLARIS)
++ stack_t ss;
++ int rc;
++ do {
++ rc = thr_stksegment(&ss); // can fail only with EAGAIN
++ } while ((rc != 0) && (errno == EAGAIN));
++ stackLimit = reinterpret_cast<quintptr>(ss.ss_sp);
++ stackLimit -= ss.ss_size;
+ # else
+ void* stackBottom = 0;
+ pthread_attr_t attr;