2012-11-16 17:39:31 -06:00
|
|
|
FreeBSD porting fixes, patch by maho@openoffice.org
|
|
|
|
|
2012-11-28 03:04:52 -06:00
|
|
|
--- Python-3.3.0/configure 2012-11-28 09:00:41.094955090 +0000
|
|
|
|
+++ Python-3.3.0/configure 2012-11-28 09:01:13.033329526 +0000
|
|
|
|
@@ -5545,11 +5545,6 @@
|
|
|
|
LDLIBRARY='libpython$(LDVERSION).so'
|
|
|
|
BLDLIBRARY='-L. -lpython$(LDVERSION)'
|
|
|
|
RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}
|
|
|
|
- case $ac_sys_system in
|
|
|
|
- FreeBSD*)
|
|
|
|
- SOVERSION=`echo $SOVERSION|cut -d "." -f 1`
|
|
|
|
- ;;
|
|
|
|
- esac
|
|
|
|
INSTSONAME="$LDLIBRARY".$SOVERSION
|
|
|
|
if test "$with_pydebug" != yes
|
|
|
|
then
|
|
|
|
--- Python-3.3.0/Lib/test/test_threading.py 2012-11-28 09:00:41.292957412 +0000
|
|
|
|
+++ Python-3.3.0/Lib/test/test_threading.py 2012-11-28 09:01:13.017329339 +0000
|
|
|
|
@@ -451,7 +451,7 @@
|
2012-11-16 17:39:31 -06:00
|
|
|
# #12316 and #11870), and fork() from a worker thread is known to trigger
|
|
|
|
# problems with some operating systems (issue #3863): skip problematic tests
|
|
|
|
# on platforms known to behave badly.
|
|
|
|
- platforms_to_skip = ('freebsd4', 'freebsd5', 'freebsd6', 'netbsd5',
|
|
|
|
+ platforms_to_skip = ('freebsd4', 'freebsd5', 'freebsd6', 'freebsd7', 'netbsd5',
|
|
|
|
'os2emx')
|
|
|
|
|
|
|
|
def _run_and_join(self, script):
|
2012-11-28 03:04:52 -06:00
|
|
|
--- 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
|
|
|
|
@@ -42,6 +42,10 @@
|
2012-11-16 17:39:31 -06:00
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
+#ifdef __FreeBSD__
|
|
|
|
+#include <osreldate.h>
|
|
|
|
+#endif
|
|
|
|
+
|
|
|
|
/* The POSIX spec says that implementations supporting the sem_*
|
|
|
|
family of functions must indicate this by defining
|
2012-11-28 03:04:52 -06:00
|
|
|
_POSIX_SEMAPHORES. */
|
|
|
|
@@ -60,7 +64,6 @@
|
2012-11-16 17:39:31 -06:00
|
|
|
in default setting. So the process scope is preferred to get
|
|
|
|
enough number of threads to work. */
|
|
|
|
#ifdef __FreeBSD__
|
|
|
|
-#include <osreldate.h>
|
|
|
|
#if __FreeBSD_version >= 500000 && __FreeBSD_version < 504101
|
|
|
|
#undef PTHREAD_SYSTEM_SCHED_SUPPORTED
|
|
|
|
#endif
|
2012-11-28 03:04:52 -06:00
|
|
|
@@ -186,6 +189,9 @@
|
2012-11-16 17:39:31 -06:00
|
|
|
{
|
|
|
|
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
|
2012-11-28 03:04:52 -06:00
|
|
|
@@ -214,7 +220,10 @@
|
2012-11-16 17:39:31 -06:00
|
|
|
#if defined(PTHREAD_SYSTEM_SCHED_SUPPORTED)
|
|
|
|
pthread_attr_setscope(&attrs, PTHREAD_SCOPE_SYSTEM);
|
|
|
|
#endif
|
|
|
|
-
|
|
|
|
+#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,
|
2012-11-28 03:04:52 -06:00
|
|
|
@@ -225,6 +234,9 @@
|
|
|
|
(void *)arg
|
|
|
|
);
|
2012-11-16 17:39:31 -06:00
|
|
|
|
|
|
|
+#ifdef __FreeBSD__
|
|
|
|
+ SET_THREAD_SIGMASK(SIG_SETMASK, &oset, NULL);
|
|
|
|
+#endif
|
|
|
|
#if defined(THREAD_STACK_SIZE) || defined(PTHREAD_SYSTEM_SCHED_SUPPORTED)
|
2012-11-28 03:04:52 -06:00
|
|
|
pthread_attr_destroy(&attrs);
|
2012-11-16 17:39:31 -06:00
|
|
|
#endif
|