diff options
Diffstat (limited to 'debian/patches/dyson-qv4engine-getStackLimit.patch')
-rw-r--r-- | debian/patches/dyson-qv4engine-getStackLimit.patch | 30 |
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; |