Compiled Python 3.0 final and Python 2.6.1 on AIX 5.2 successfully

Posted on 2009-01-09 23:55  流水  阅读(584)  评论(0)    收藏  举报

Today I compiled Python 3.0 final on AIX 5.2 after apply a small patch on multiprocessing.c and setup.py.

[Python 2.6.1] make test
......
11 tests failed:
    test_cmath test_fileio test_httpservers test_io test_locale
    test_mmap test_multiprocessing test_posix test_pty test_urllib2
    test_wait4
41 tests skipped:
    test_aepack test_al test_applesingle test_bsddb test_bsddb185
    test_bsddb3 test_cd test_cl test_codecmaps_cn test_codecmaps_hk
    test_codecmaps_jp test_codecmaps_kr test_codecmaps_tw test_ctypes
    test_curses test_dl test_epoll test_gdbm test_gl test_imgfile
    test_kqueue test_largefile test_linuxaudiodev test_macos
    test_macostools test_normalization test_ossaudiodev test_pep277
    test_py3kwarn test_scriptpackages test_socketserver test_sqlite
    test_ssl test_startfile test_sunaudiodev test_timeout
    test_urllib2net test_urllibnet test_winreg test_winsound
    test_zipfile64
3 skips unexpected on aix5:
    test_ssl test_largefile test_ctypes

 

[Python 3.0 final] make test

......
286 tests OK.
10 tests failed:
    test_binascii test_cmath test_fileio test_httpservers test_io
    test_mmap test_multiprocessing test_posix test_pty test_wait4
25 tests skipped:
    test_codecmaps_cn test_codecmaps_hk test_codecmaps_jp
    test_codecmaps_kr test_codecmaps_tw test_ctypes test_curses
    test_dbm_gnu test_epoll test_kqueue test_largefile test_nis
    test_normalization test_ossaudiodev test_pep277 test_socketserver
    test_sqlite test_startfile test_timeout test_urllib2net
    test_urllibnet test_winreg test_winsound test_xmlrpc_net
    test_zipfile64
3 skips unexpected on aix5:

    test_curses test_largefile test_ctypes

 

# cat aix-patch
diff -Naur Python-2.6/Modules/_multiprocessing/multiprocessing.c Python-2.6-clean-patch/Modules/_multiprocessing/multiprocessing.c
--- Python-2.6/Modules/_multiprocessing/multiprocessing.c    2008-06-14 00:38:33.000000000 +0200
+++ Python-2.6-clean-patch/Modules/_multiprocessing/multiprocessing.c    2008-10-07 12:23:55.000000000 +0200
@@ -8,6 +8,13 @@
 
 #include "multiprocessing.h"
 
+#ifndef CMSG_SPACE
+#define CMSG_SPACE(len) (_CMSG_ALIGN(sizeof(struct cmsghdr)) + _CMSG_ALIGN(len))
+#endif
+#ifndef CMSG_LEN
+#define CMSG_LEN(len) (_CMSG_ALIGN(sizeof(struct cmsghdr)) + (len))
+#endif
+
 PyObject *create_win32_namespace(void);
 
 PyObject *pickle_dumps, *pickle_loads, *pickle_protocol;
diff -Naur Python-2.6/setup.py Python-2.6-clean-patch/setup.py
--- Python-2.6/setup.py    2008-09-30 02:15:45.000000000 +0200
+++ Python-2.6-clean-patch/setup.py    2008-10-07 12:23:34.000000000 +0200
@@ -1277,6 +1277,14 @@
                 )
             libraries = []
 
+        elif platform.startswith('aix'):
+            macros = dict(
+                HAVE_SEM_OPEN=1,
+                HAVE_SEM_TIMEDWAIT=0,
+                HAVE_FD_TRANSFER=1
+                )
+            libraries = ['rt']
+
         else:                                   # Linux and other unices
             macros = dict(
                 HAVE_SEM_OPEN=1,