summaryrefslogtreecommitdiffstats
path: root/external/python3/i100492-freebsd.patch.1
diff options
context:
space:
mode:
Diffstat (limited to 'external/python3/i100492-freebsd.patch.1')
-rw-r--r--external/python3/i100492-freebsd.patch.135
1 files changed, 35 insertions, 0 deletions
diff --git a/external/python3/i100492-freebsd.patch.1 b/external/python3/i100492-freebsd.patch.1
new file mode 100644
index 000000000..074e5fc48
--- /dev/null
+++ b/external/python3/i100492-freebsd.patch.1
@@ -0,0 +1,35 @@
+FreeBSD porting fixes, patch by maho@openoffice.org
+
+--- Python-3.3.0/Python/thread_pthread.h 2012-11-28 09:00:41.097955124 +0000
++++ Python-3.3.0/Python/thread_pthread.h 2012-11-28 09:01:13.018329351 +0000
+@@ -186,6 +189,9 @@
+ {
+ pthread_t th;
+ int status;
++#ifdef __FreeBSD__
++ sigset_t set, oset;
++#endif
+ #if defined(THREAD_STACK_SIZE) || defined(PTHREAD_SYSTEM_SCHED_SUPPORTED)
+ pthread_attr_t attrs;
+ #endif
+@@ -214,6 +220,10 @@
+ callback->func = func;
+ callback->arg = arg;
+
++#ifdef __FreeBSD__
++ sigfillset(&set);
++ SET_THREAD_SIGMASK(SIG_BLOCK, &set, &oset);
++#endif
+ status = pthread_create(&th,
+ #if defined(THREAD_STACK_SIZE) || defined(PTHREAD_SYSTEM_SCHED_SUPPORTED)
+ &attrs,
+@@ -225,6 +234,9 @@
+ #endif
+ pythread_wrapper, callback);
+
++#ifdef __FreeBSD__
++ SET_THREAD_SIGMASK(SIG_SETMASK, &oset, NULL);
++#endif
+ #if defined(THREAD_STACK_SIZE) || defined(PTHREAD_SYSTEM_SCHED_SUPPORTED)
+ pthread_attr_destroy(&attrs);
+ #endif