python-freebsd.patch (6ae46fac) python-freebsd.patch (6ee2a585)
1--- misc/Python-2.7.6/Lib/plat-freebsd9/IN.py 1969-12-31 19:00:00.000000000 -0500
2+++ misc/build/Python-2.7.6/Lib/plat-freebsd9/IN.py 2012-08-01 18:56:04.000000000 -0500
1diff -ruN misc/Python-2.7.8/Lib/plat-freebsd9/IN.py misc/build/Python-2.7.8/Lib/plat-freebsd9/IN.py
2--- misc/Python-2.7.8/Lib/plat-freebsd9/IN.py 1969-12-31 19:00:00.000000000 -0500
3+++ misc/build/Python-2.7.8/Lib/plat-freebsd9/IN.py 2016-01-01 17:38:35.922764464 -0500
3@@ -0,0 +1,612 @@
4+# Generated by h2py from /usr/include/netinet/in.h
5+
6+# Included from sys/cdefs.h
7+__GNUCLIKE_ASM = 3
8+__GNUCLIKE_ASM = 2
9+__GNUCLIKE___TYPEOF = 1
10+__GNUCLIKE___OFFSETOF = 1

--- 597 unchanged lines hidden (view full) ---

608+IPV6CTL_ISATAPRTR = 43
609+IPV6CTL_MCAST_PMTU = 44
610+IPV6CTL_STEALTH = 45
611+ICMPV6CTL_ND6_ONLINKNSRFC4861 = 47
612+IPV6CTL_NO_RADR = 48
613+IPV6CTL_NORBIT_RAIF = 49
614+IPV6CTL_RFC6204W3 = 50
615+IPV6CTL_MAXID = 51
4@@ -0,0 +1,612 @@
5+# Generated by h2py from /usr/include/netinet/in.h
6+
7+# Included from sys/cdefs.h
8+__GNUCLIKE_ASM = 3
9+__GNUCLIKE_ASM = 2
10+__GNUCLIKE___TYPEOF = 1
11+__GNUCLIKE___OFFSETOF = 1

--- 597 unchanged lines hidden (view full) ---

609+IPV6CTL_ISATAPRTR = 43
610+IPV6CTL_MCAST_PMTU = 44
611+IPV6CTL_STEALTH = 45
612+ICMPV6CTL_ND6_ONLINKNSRFC4861 = 47
613+IPV6CTL_NO_RADR = 48
614+IPV6CTL_NORBIT_RAIF = 49
615+IPV6CTL_RFC6204W3 = 50
616+IPV6CTL_MAXID = 51
616--- misc/Python-2.7.6/Lib/plat-freebsd9/regen 1969-12-31 19:00:00.000000000 -0500
617+++ misc/build/Python-2.7.6/Lib/plat-freebsd9/regen 2012-08-01 18:55:27.000000000 -0500
617diff -ruN misc/Python-2.7.8/Lib/plat-freebsd9/regen misc/build/Python-2.7.8/Lib/plat-freebsd9/regen
618--- misc/Python-2.7.8/Lib/plat-freebsd9/regen 1969-12-31 19:00:00.000000000 -0500
619+++ misc/build/Python-2.7.8/Lib/plat-freebsd9/regen 2016-01-01 17:38:35.922764464 -0500
618@@ -0,0 +1,3 @@
619+#! /bin/sh
620+set -v
621+python ../../Tools/scripts/h2py.py -i '(u_long)' /usr/include/netinet/in.h
620@@ -0,0 +1,3 @@
621+#! /bin/sh
622+set -v
623+python ../../Tools/scripts/h2py.py -i '(u_long)' /usr/include/netinet/in.h
622--- misc/Python-2.7.6/Lib/test/test_threading.py 2012-04-09 18:07:32.000000000 -0500
623+++ misc/build/Python-2.7.6/Lib/test/test_threading.py 2012-08-01 18:44:40.000000000 -0500
624@@ -421,7 +421,7 @@
624diff -ruN misc/Python-2.7.8/Lib/test/test_threading.py misc/build/Python-2.7.8/Lib/test/test_threading.py
625--- misc/Python-2.7.8/Lib/test/test_threading.py 2014-06-29 21:05:37.000000000 -0500
626+++ misc/build/Python-2.7.8/Lib/test/test_threading.py 2016-01-01 17:38:35.923764731 -0500
627@@ -486,7 +486,7 @@
625 # #12316 and #11870), and fork() from a worker thread is known to trigger
626 # problems with some operating systems (issue #3863): skip problematic tests
627 # on platforms known to behave badly.
628- platforms_to_skip = ('freebsd4', 'freebsd5', 'freebsd6', 'netbsd5',
629+ platforms_to_skip = ('freebsd4', 'freebsd5', 'freebsd6', 'freebsd7', 'freebsd8', 'freebsd9', 'netbsd5',
630 'os2emx')
631
632 def _run_and_join(self, script):
628 # #12316 and #11870), and fork() from a worker thread is known to trigger
629 # problems with some operating systems (issue #3863): skip problematic tests
630 # on platforms known to behave badly.
631- platforms_to_skip = ('freebsd4', 'freebsd5', 'freebsd6', 'netbsd5',
632+ platforms_to_skip = ('freebsd4', 'freebsd5', 'freebsd6', 'freebsd7', 'freebsd8', 'freebsd9', 'netbsd5',
633 'os2emx')
634
635 def _run_and_join(self, script):
633--- misc/Python-2.7.6/Modules/_ctypes/libffi/configure 2012-04-09 18:07:33.000000000 -0500
634+++ misc/build/Python-2.7.6/Modules/_ctypes/libffi/configure 2012-08-01 18:53:21.000000000 -0500
635@@ -6289,7 +6289,7 @@
636diff -ruN misc/Python-2.7.8/Modules/_ctypes/libffi/configure misc/build/Python-2.7.8/Modules/_ctypes/libffi/configure
637--- misc/Python-2.7.8/Modules/_ctypes/libffi/configure 2014-06-29 21:05:40.000000000 -0500
638+++ misc/build/Python-2.7.8/Modules/_ctypes/libffi/configure 2016-01-01 17:38:35.931765818 -0500
639@@ -6889,7 +6889,7 @@
636 rm -rf conftest*
637 ;;
638
639-x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
640+amd64-*-freebsd*|x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
641 s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
642 # Find out which ABI we are using.
643 echo 'int i;' > conftest.$ac_ext
640 rm -rf conftest*
641 ;;
642
643-x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
644+amd64-*-freebsd*|x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
645 s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
646 # Find out which ABI we are using.
647 echo 'int i;' > conftest.$ac_ext
644@@ -11275,6 +11275,9 @@
645 powerpc-*-freebsd*)
646 TARGET=POWERPC_FREEBSD; TARGETDIR=powerpc
648@@ -13459,6 +13459,9 @@
649 powerpc64-*-freebsd*)
650 TARGET=POWERPC; TARGETDIR=powerpc
647 ;;
648+ powerpc64-*-freebsd*)
649+ TARGET=POWERPC; TARGETDIR=powerpc
650+ ;;
651 powerpc*-*-rtems*)
652 TARGET=POWERPC; TARGETDIR=powerpc
653 ;;
651 ;;
652+ powerpc64-*-freebsd*)
653+ TARGET=POWERPC; TARGETDIR=powerpc
654+ ;;
655 powerpc*-*-rtems*)
656 TARGET=POWERPC; TARGETDIR=powerpc
657 ;;
654--- misc/Python-2.7.6/Modules/fcntlmodule.c 2012-04-09 18:07:34.000000000 -0500
655+++ misc/build/Python-2.7.6/Modules/fcntlmodule.c 2012-08-01 18:44:40.000000000 -0500
656@@ -97,20 +97,15 @@
658diff -ruN misc/Python-2.7.8/Modules/fcntlmodule.c misc/build/Python-2.7.8/Modules/fcntlmodule.c
659--- misc/Python-2.7.8/Modules/fcntlmodule.c 2014-06-29 21:05:43.000000000 -0500
660+++ misc/build/Python-2.7.8/Modules/fcntlmodule.c 2016-01-01 17:42:35.865747022 -0500
661@@ -98,20 +98,15 @@
657 {
658 #define IOCTL_BUFSZ 1024
659 int fd;
660- /* In PyArg_ParseTuple below, we use the unsigned non-checked 'I'
661+ /* In PyArg_ParseTuple below, we use the unsigned non-checked 'k'
662 format for the 'code' parameter because Python turns 0x8000000
663 into either a large positive number (PyLong or PyInt on 64-bit
664 platforms) or a negative number on others (32-bit PyInt)
665 whereas the system expects it to be a 32bit bit field value
666 regardless of it being passed as an int or unsigned long on
667- various platforms. See the termios.TIOCSWINSZ constant across
662 {
663 #define IOCTL_BUFSZ 1024
664 int fd;
665- /* In PyArg_ParseTuple below, we use the unsigned non-checked 'I'
666+ /* In PyArg_ParseTuple below, we use the unsigned non-checked 'k'
667 format for the 'code' parameter because Python turns 0x8000000
668 into either a large positive number (PyLong or PyInt on 64-bit
669 platforms) or a negative number on others (32-bit PyInt)
670 whereas the system expects it to be a 32bit bit field value
671 regardless of it being passed as an int or unsigned long on
672- various platforms. See the termios.TIOCSWINSZ constant across
668- platforms for an example of thise.
673- platforms for an example of this.
669-
670- If any of the 64bit platforms ever decide to use more than 32bits
671- in their unsigned long ioctl codes this will break and need
672- special casing based on the platform being built on.
673+ various platforms.
674 */
675- unsigned int code;
676+ unsigned long code;
677 int arg;
678 int ret;
679 char *str;
674-
675- If any of the 64bit platforms ever decide to use more than 32bits
676- in their unsigned long ioctl codes this will break and need
677- special casing based on the platform being built on.
678+ various platforms.
679 */
680- unsigned int code;
681+ unsigned long code;
682 int arg;
683 int ret;
684 char *str;
680@@ -118,7 +113,7 @@
685@@ -119,7 +114,7 @@
681 int mutate_arg = 1;
682 char buf[IOCTL_BUFSZ+1]; /* argument plus NUL byte */
683
684- if (PyArg_ParseTuple(args, "O&Iw#|i:ioctl",
685+ if (PyArg_ParseTuple(args, "O&kw#|i:ioctl",
686 conv_descriptor, &fd, &code,
687 &str, &len, &mutate_arg)) {
688 char *arg;
686 int mutate_arg = 1;
687 char buf[IOCTL_BUFSZ+1]; /* argument plus NUL byte */
688
689- if (PyArg_ParseTuple(args, "O&Iw#|i:ioctl",
690+ if (PyArg_ParseTuple(args, "O&kw#|i:ioctl",
691 conv_descriptor, &fd, &code,
692 &str, &len, &mutate_arg)) {
693 char *arg;
689@@ -169,7 +164,7 @@
694@@ -170,7 +165,7 @@
690 }
691
692 PyErr_Clear();
693- if (PyArg_ParseTuple(args, "O&Is#:ioctl",
694+ if (PyArg_ParseTuple(args, "O&ks#:ioctl",
695 conv_descriptor, &fd, &code, &str, &len)) {
696 if (len > IOCTL_BUFSZ) {
697 PyErr_SetString(PyExc_ValueError,
695 }
696
697 PyErr_Clear();
698- if (PyArg_ParseTuple(args, "O&Is#:ioctl",
699+ if (PyArg_ParseTuple(args, "O&ks#:ioctl",
700 conv_descriptor, &fd, &code, &str, &len)) {
701 if (len > IOCTL_BUFSZ) {
702 PyErr_SetString(PyExc_ValueError,
698@@ -191,7 +186,7 @@
703@@ -192,7 +187,7 @@
699 PyErr_Clear();
700 arg = 0;
701 if (!PyArg_ParseTuple(args,
702- "O&I|i;ioctl requires a file or file descriptor,"
703+ "O&k|i;ioctl requires a file or file descriptor,"
704 " an integer and optionally an integer or buffer argument",
705 conv_descriptor, &fd, &code, &arg)) {
706 return NULL;
704 PyErr_Clear();
705 arg = 0;
706 if (!PyArg_ParseTuple(args,
707- "O&I|i;ioctl requires a file or file descriptor,"
708+ "O&k|i;ioctl requires a file or file descriptor,"
709 " an integer and optionally an integer or buffer argument",
710 conv_descriptor, &fd, &code, &arg)) {
711 return NULL;
707--- misc/Python-2.7.6/Python/thread_pthread.h 2012-04-09 18:07:35.000000000 -0500
708+++ misc/build/Python-2.7.6/Python/thread_pthread.h 2012-08-01 18:44:40.000000000 -0500
712diff -ruN misc/Python-2.7.8/Modules/fcntlmodule.c.rej misc/build/Python-2.7.8/Modules/fcntlmodule.c.rej
713--- misc/Python-2.7.8/Modules/fcntlmodule.c.rej 1969-12-31 19:00:00.000000000 -0500
714+++ misc/build/Python-2.7.8/Modules/fcntlmodule.c.rej 2016-01-01 17:38:35.933764047 -0500
715@@ -0,0 +1,24 @@
716+@@ -97,20 +97,15 @@
717+ {
718+ #define IOCTL_BUFSZ 1024
719+ int fd;
720+- /* In PyArg_ParseTuple below, we use the unsigned non-checked 'I'
721++ /* In PyArg_ParseTuple below, we use the unsigned non-checked 'k'
722+ format for the 'code' parameter because Python turns 0x8000000
723+ into either a large positive number (PyLong or PyInt on 64-bit
724+ platforms) or a negative number on others (32-bit PyInt)
725+ whereas the system expects it to be a 32bit bit field value
726+ regardless of it being passed as an int or unsigned long on
727+- various platforms. See the termios.TIOCSWINSZ constant across
728+- platforms for an example of thise.
729+-
730+- If any of the 64bit platforms ever decide to use more than 32bits
731+- in their unsigned long ioctl codes this will break and need
732+- special casing based on the platform being built on.
733++ various platforms.
734+ */
735+- unsigned int code;
736++ unsigned long code;
737+ int arg;
738+ int ret;
739+ char *str;
740diff -ruN misc/Python-2.7.8/Python/thread_pthread.h misc/build/Python-2.7.8/Python/thread_pthread.h
741--- misc/Python-2.7.8/Python/thread_pthread.h 2014-06-29 21:05:47.000000000 -0500
742+++ misc/build/Python-2.7.8/Python/thread_pthread.h 2016-01-01 17:38:35.933764047 -0500
709@@ -38,13 +38,18 @@
710 #endif
711 #endif
712
713+#ifdef __FreeBSD__
714+#include <osreldate.h>
715+#endif
716+

--- 12 unchanged lines hidden (view full) ---

729@@ -56,7 +61,6 @@
730 in default setting. So the process scope is preferred to get
731 enough number of threads to work. */
732 #ifdef __FreeBSD__
733-#include <osreldate.h>
734 #if __FreeBSD_version >= 500000 && __FreeBSD_version < 504101
735 #undef PTHREAD_SYSTEM_SCHED_SUPPORTED
736 #endif
743@@ -38,13 +38,18 @@
744 #endif
745 #endif
746
747+#ifdef __FreeBSD__
748+#include <osreldate.h>
749+#endif
750+

--- 12 unchanged lines hidden (view full) ---

763@@ -56,7 +61,6 @@
764 in default setting. So the process scope is preferred to get
765 enough number of threads to work. */
766 #ifdef __FreeBSD__
767-#include <osreldate.h>
768 #if __FreeBSD_version >= 500000 && __FreeBSD_version < 504101
769 #undef PTHREAD_SYSTEM_SCHED_SUPPORTED
770 #endif
737@@ -161,6 +165,7 @@
771@@ -162,6 +166,7 @@
738 {
739 pthread_t th;
740 int status;
741+ sigset_t set, oset;
742 #if defined(THREAD_STACK_SIZE) || defined(PTHREAD_SYSTEM_SCHED_SUPPORTED)
743 pthread_attr_t attrs;
744 #endif
772 {
773 pthread_t th;
774 int status;
775+ sigset_t set, oset;
776 #if defined(THREAD_STACK_SIZE) || defined(PTHREAD_SYSTEM_SCHED_SUPPORTED)
777 pthread_attr_t attrs;
778 #endif
745@@ -189,6 +194,8 @@
779@@ -190,6 +195,8 @@
746 #if defined(PTHREAD_SYSTEM_SCHED_SUPPORTED)
747 pthread_attr_setscope(&attrs, PTHREAD_SCOPE_SYSTEM);
748 #endif
749+ sigfillset(&set);
750+ SET_THREAD_SIGMASK(SIG_BLOCK, &set, &oset);
751
752 status = pthread_create(&th,
753 #if defined(THREAD_STACK_SIZE) || defined(PTHREAD_SYSTEM_SCHED_SUPPORTED)
780 #if defined(PTHREAD_SYSTEM_SCHED_SUPPORTED)
781 pthread_attr_setscope(&attrs, PTHREAD_SCOPE_SYSTEM);
782 #endif
783+ sigfillset(&set);
784+ SET_THREAD_SIGMASK(SIG_BLOCK, &set, &oset);
785
786 status = pthread_create(&th,
787 #if defined(THREAD_STACK_SIZE) || defined(PTHREAD_SYSTEM_SCHED_SUPPORTED)
754@@ -200,6 +207,7 @@
788@@ -201,6 +208,7 @@
755 (void *)arg
756 );
757
758+ SET_THREAD_SIGMASK(SIG_SETMASK, &oset, NULL);
759 #if defined(THREAD_STACK_SIZE) || defined(PTHREAD_SYSTEM_SCHED_SUPPORTED)
760 pthread_attr_destroy(&attrs);
761 #endif
789 (void *)arg
790 );
791
792+ SET_THREAD_SIGMASK(SIG_SETMASK, &oset, NULL);
793 #if defined(THREAD_STACK_SIZE) || defined(PTHREAD_SYSTEM_SCHED_SUPPORTED)
794 pthread_attr_destroy(&attrs);
795 #endif
762diff -ruN misc/Python-2.7.6/configure misc/build/Python-2.7.6/configure
763--- misc/Python-2.7.6/configure 2012-04-09 18:07:36.000000000 -0500
764+++ misc/build/Python-2.7.6/configure 2012-08-01 18:44:40.000000000 -0500
765@@ -4916,7 +4916,7 @@
796diff -ruN misc/Python-2.7.8/configure misc/build/Python-2.7.8/configure
797--- misc/Python-2.7.8/configure 2014-06-29 21:05:48.000000000 -0500
798+++ misc/build/Python-2.7.8/configure 2016-01-01 17:41:32.541753889 -0500
799@@ -5347,7 +5347,7 @@
766 ;;
767 SunOS*)
768 LDLIBRARY='libpython$(VERSION).so'
769- BLDLIBRARY='-Wl,-R,$(LIBDIR) -L. -lpython$(VERSION)'
770+ BLDLIBRARY=-R\'\$\$ORIGIN\'' -L. -lpython$(VERSION)'
800 ;;
801 SunOS*)
802 LDLIBRARY='libpython$(VERSION).so'
803- BLDLIBRARY='-Wl,-R,$(LIBDIR) -L. -lpython$(VERSION)'
804+ BLDLIBRARY=-R\'\$\$ORIGIN\'' -L. -lpython$(VERSION)'
771 RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}
805 RUNSHARED=LD_LIBRARY_PATH=`pwd`${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
772 INSTSONAME="$LDLIBRARY".$SOVERSION
773 ;;
806 INSTSONAME="$LDLIBRARY".$SOVERSION
807 ;;
774@@ -4924,11 +4924,6 @@
808@@ -5355,11 +5355,6 @@
775 LDLIBRARY='libpython$(VERSION).so'
776 BLDLIBRARY='-L. -lpython$(VERSION)'
809 LDLIBRARY='libpython$(VERSION).so'
810 BLDLIBRARY='-L. -lpython$(VERSION)'
777 RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}
811 RUNSHARED=LD_LIBRARY_PATH=`pwd`${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
778- case $ac_sys_system in
779- FreeBSD*)
780- SOVERSION=`echo $SOVERSION|cut -d "." -f 1`
781- ;;
782- esac
783 INSTSONAME="$LDLIBRARY".$SOVERSION
784 ;;
785 hp*|HP*)
812- case $ac_sys_system in
813- FreeBSD*)
814- SOVERSION=`echo $SOVERSION|cut -d "." -f 1`
815- ;;
816- esac
817 INSTSONAME="$LDLIBRARY".$SOVERSION
818 ;;
819 hp*|HP*)
786diff -ruN misc/Python-2.7.6/setup.py misc/build/Python-2.7.6/setup.py
787--- misc/Python-2.7.6/setup.py 2012-04-09 18:07:36.000000000 -0500
788+++ misc/build/Python-2.7.6/setup.py 2012-08-01 18:44:40.000000000 -0500
789@@ -1555,7 +1540,7 @@
820diff -ruN misc/Python-2.7.8/configure.rej misc/build/Python-2.7.8/configure.rej
821--- misc/Python-2.7.8/configure.rej 1969-12-31 19:00:00.000000000 -0500
822+++ misc/build/Python-2.7.8/configure.rej 2016-01-01 17:38:35.943764550 -0500
823@@ -0,0 +1,21 @@
824+@@ -4916,7 +4916,7 @@
825+ ;;
826+ SunOS*)
827+ LDLIBRARY='libpython$(VERSION).so'
828+- BLDLIBRARY='-Wl,-R,$(LIBDIR) -L. -lpython$(VERSION)'
829++ BLDLIBRARY=-R\'\$\$ORIGIN\'' -L. -lpython$(VERSION)'
830+ RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}
831+ INSTSONAME="$LDLIBRARY".$SOVERSION
832+ ;;
833+@@ -4924,11 +4924,6 @@
834+ LDLIBRARY='libpython$(VERSION).so'
835+ BLDLIBRARY='-L. -lpython$(VERSION)'
836+ RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}
837+- case $ac_sys_system in
838+- FreeBSD*)
839+- SOVERSION=`echo $SOVERSION|cut -d "." -f 1`
840+- ;;
841+- esac
842+ INSTSONAME="$LDLIBRARY".$SOVERSION
843+ ;;
844+ hp*|HP*)
845diff -ruN misc/Python-2.7.8/setup.py misc/build/Python-2.7.8/setup.py
846--- misc/Python-2.7.8/setup.py 2014-06-29 21:05:48.000000000 -0500
847+++ misc/build/Python-2.7.8/setup.py 2016-01-01 17:38:35.945765223 -0500
848@@ -1551,7 +1551,7 @@
790 macros = dict()
791 libraries = []
792
793- elif host_platform in ('freebsd4', 'freebsd5', 'freebsd6', 'freebsd7', 'freebsd8'):
794+ elif host_platform in ('freebsd4', 'freebsd5', 'freebsd6', 'freebsd7', 'freebsd8', 'freebsd9'):
795 # FreeBSD's P1003.1b semaphore support is very experimental
796 # and has many known problems. (as of June 2008)
797 macros = dict()
849 macros = dict()
850 libraries = []
851
852- elif host_platform in ('freebsd4', 'freebsd5', 'freebsd6', 'freebsd7', 'freebsd8'):
853+ elif host_platform in ('freebsd4', 'freebsd5', 'freebsd6', 'freebsd7', 'freebsd8', 'freebsd9'):
854 # FreeBSD's P1003.1b semaphore support is very experimental
855 # and has many known problems. (as of June 2008)
856 macros = dict()
798@@ -1607,7 +1592,7 @@
857@@ -1603,7 +1603,7 @@
799 missing.append('linuxaudiodev')
800
801 if (host_platform in ('linux2', 'freebsd4', 'freebsd5', 'freebsd6',
802- 'freebsd7', 'freebsd8')
803+ 'freebsd7', 'freebsd8', 'freebsd9')
804 or host_platform.startswith("gnukfreebsd")):
805 exts.append( Extension('ossaudiodev', ['ossaudiodev.c']) )
806 else:
858 missing.append('linuxaudiodev')
859
860 if (host_platform in ('linux2', 'freebsd4', 'freebsd5', 'freebsd6',
861- 'freebsd7', 'freebsd8')
862+ 'freebsd7', 'freebsd8', 'freebsd9')
863 or host_platform.startswith("gnukfreebsd")):
864 exts.append( Extension('ossaudiodev', ['ossaudiodev.c']) )
865 else: