summaryrefslogtreecommitdiff
path: root/x11
diff options
context:
space:
mode:
authorjoerg <joerg@pkgsrc.org>2016-05-31 21:35:11 +0000
committerjoerg <joerg@pkgsrc.org>2016-05-31 21:35:11 +0000
commita8ce235daf6d1af5f2da1ab4fd8cdb6ec3d64056 (patch)
treeeb026d52098850968a390b1b2124f563d8daaebd /x11
parenteb78260359626c6dfe8c66eee9cb85aff56d33f1 (diff)
downloadpkgsrc-a8ce235daf6d1af5f2da1ab4fd8cdb6ec3d64056.tar.gz
Do not destroy the pthread keys. It creates race conditions during
destruction and random panics as side effect.
Diffstat (limited to 'x11')
-rw-r--r--x11/qt4-libs/Makefile4
-rw-r--r--x11/qt4-libs/distinfo4
-rw-r--r--x11/qt4-libs/patches/patch-src_corelib_thread_qthread__unix.cpp25
3 files changed, 27 insertions, 6 deletions
diff --git a/x11/qt4-libs/Makefile b/x11/qt4-libs/Makefile
index be2b58323e6..952c84f1d2f 100644
--- a/x11/qt4-libs/Makefile
+++ b/x11/qt4-libs/Makefile
@@ -1,7 +1,7 @@
-# $NetBSD: Makefile,v 1.111 2016/05/05 22:04:34 joerg Exp $
+# $NetBSD: Makefile,v 1.112 2016/05/31 21:35:11 joerg Exp $
PKGNAME= qt4-libs-${QTVERSION}
-PKGREVISION= 2
+PKGREVISION= 3
COMMENT= C++ X GUI toolkit
.include "../../x11/qt4-libs/Makefile.common"
diff --git a/x11/qt4-libs/distinfo b/x11/qt4-libs/distinfo
index 8ad51e88026..a4eb4f5c877 100644
--- a/x11/qt4-libs/distinfo
+++ b/x11/qt4-libs/distinfo
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.108 2016/05/25 07:46:47 nros Exp $
+$NetBSD: distinfo,v 1.109 2016/05/31 21:35:11 joerg Exp $
SHA1 (qt-everywhere-opensource-src-4.8.7.tar.gz) = 76aef40335c0701e5be7bb3a9101df5d22fe3666
RMD160 (qt-everywhere-opensource-src-4.8.7.tar.gz) = afb5e5a99388e6429faca59cb5000054feffd166
@@ -70,7 +70,7 @@ SHA1 (patch-src_3rdparty_webkit_Source_WebCore_platform_qt_PlatformKeyboardEvent
SHA1 (patch-src_3rdparty_webkit_Source_WebKit2_DerivedSources.pro) = 7ae5feb79efd0836b74000e183b96f5775fd3043
SHA1 (patch-src_corelib_io_io.pri) = cde98927b524c92fae1e053c2359e77bde2c240a
SHA1 (patch-src_corelib_io_qfilesystemwatcher.cpp) = bb16b95d20286b1aa069dc25843d7e0067cc0268
-SHA1 (patch-src_corelib_thread_qthread__unix.cpp) = 5fdc6d22ea52ac89d6ae68a1dcf9de775265429b
+SHA1 (patch-src_corelib_thread_qthread__unix.cpp) = 67fbdc29d6da0aa7309a7aeb653a5abf10bd4d78
SHA1 (patch-src_gui_painting_qpaintengine__mac.cpp) = dc44116d5d138020e5d525ec5b7fd0f1b44ebeca
SHA1 (patch-src_network_ssl_qsslsocket__openssl__symbols.cpp) = 3ad682b86d2e9bd2b282caa298508dc3e9dd8566
SHA1 (patch-src_network_ssl_qsslsocket__openssl__symbols__p.h) = 417846ba9edab8638cafa41a54ef60029467ef80
diff --git a/x11/qt4-libs/patches/patch-src_corelib_thread_qthread__unix.cpp b/x11/qt4-libs/patches/patch-src_corelib_thread_qthread__unix.cpp
index 2e2f6a525e2..999e3c92bc5 100644
--- a/x11/qt4-libs/patches/patch-src_corelib_thread_qthread__unix.cpp
+++ b/x11/qt4-libs/patches/patch-src_corelib_thread_qthread__unix.cpp
@@ -1,6 +1,6 @@
-$NetBSD: patch-src_corelib_thread_qthread__unix.cpp,v 1.2 2016/05/05 22:04:34 joerg Exp $
+$NetBSD: patch-src_corelib_thread_qthread__unix.cpp,v 1.3 2016/05/31 21:35:11 joerg Exp $
---- src/corelib/thread/qthread_unix.cpp.orig 2015-06-23 15:32:25.000000000 +0000
+--- src/corelib/thread/qthread_unix.cpp.orig 2015-05-07 14:14:48.000000000 +0000
+++ src/corelib/thread/qthread_unix.cpp
@@ -120,6 +120,12 @@ enum { ThreadPriorityResetFlag = 0x80000
#if defined(Q_CC_XLC) || defined (Q_CC_SUN)
@@ -15,3 +15,24 @@ $NetBSD: patch-src_corelib_thread_qthread__unix.cpp,v 1.2 2016/05/05 22:04:34 jo
#ifdef HAVE_TLS
static __thread QThreadData *currentThreadData = 0;
+@@ -167,20 +173,6 @@ static void create_current_thread_data_k
+ pthread_key_create(&current_thread_data_key, destroy_current_thread_data);
+ }
+
+-static void destroy_current_thread_data_key()
+-{
+- pthread_once(&current_thread_data_once, create_current_thread_data_key);
+- pthread_key_delete(current_thread_data_key);
+-
+- // Reset current_thread_data_once in case we end up recreating
+- // the thread-data in the rare case of QObject construction
+- // after destroying the QThreadData.
+- pthread_once_t pthread_once_init = PTHREAD_ONCE_INIT;
+- current_thread_data_once = pthread_once_init;
+-}
+-Q_DESTRUCTOR_FUNCTION(destroy_current_thread_data_key)
+-
+-
+ // Utility functions for getting, setting and clearing thread specific data.
+ static QThreadData *get_thread_data()
+ {