#8440: Removal of pyprocessing causing problems as _multiprocessing not building
on Solaris
----------------------------+-----------------------------------------------
   Reporter:  drkirkby      |       Owner:  drkirkby                            
       
       Type:  defect        |      Status:  needs_review                        
       
   Priority:  blocker       |   Milestone:  sage-4.3.4                          
       
  Component:  solaris       |    Keywords:                                      
       
     Author:  David Kirkby  |    Upstream:  Not yet reported upstream; Will do 
shortly.
   Reviewer:                |      Merged:                                      
       
Work_issues:                |  
----------------------------+-----------------------------------------------
Changes (by newvalueoldvalue):

  * priority:  major => blocker
  * status:  new => needs_review
  * upstream:  Fixed upstream, but not in a stable release. => Not yet
               reported upstream; Will do shortly.
  * author:  => David Kirkby


Old description:

> Since #6503 removed pyprocessing from Sage, multiprocessing (or perhaps
> _multiprocessing) is needed, but this is not building on Solaris 10
> SPARC.
>
> {{{
> gcc -fPIC -fno-strict-aliasing -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-
> prototypes -DHAVE_SEM_OPEN=1 -DHAVE_FD_TRANSFER=1 -DHAVE_SEM_TIMEDWAIT=1
> -IModules/_multiprocessing -I. -I/export
> /home/drkirkby/32/sage-4.3.4.alpha0/spkg/build/python-2.6.4.p7/src/./Include
> -I. -IInclude -I./Include
> -I/export/home/drkirkby/32/sage-4.3.4.alpha0/local/include
> -I/usr/local/include
> -I/export/home/drkirkby/32/sage-4.3.4.alpha0/spkg/build/python-2.6.4.p7/src/Include
> -I/export/home/drkirkby/32/sage-4.3.4.alpha0/spkg/build/python-2.6.4.p7/src
> -c /export/home/drkirkb
> y/32/sage-4.3.4.alpha0/spkg/build/python-2.6.4.p7/src/Modules/_multiprocessing/multiprocessing.c
> -o
> build/temp.solaris-2.10-sun4u-2.6/export/home/drkirkby/32/sage-4.3.4.alpha0/spkg/bu
> ild/python-2.6.4.p7/src/Modules/_multiprocessing/multiprocessing.o
> /export/home/drkirkby/32/sage-4.3.4.alpha0/spkg/build/python-2.6.4.p7/src/Modules/_multiprocessing/multiprocessing.c:
> In function 'multiprocessing_sendfd':
> /export/home/drkirkby/32/sage-4.3.4.alpha0/spkg/build/python-2.6.4.p7/src/Modules/_multiprocessing/multiprocessing.c:100:
> warning: implicit declaration of function 'CMSG_SPACE'
> /export/home/drkirkby/32/sage-4.3.4.alpha0/spkg/build/python-2.6.4.p7/src/Modules/_multiprocessing/multiprocessing.c:110:
> error: 'struct msghdr' has no member named 'msg_control'
> /export/home/drkirkby/32/sage-4.3.4.alpha0/spkg/build/python-2.6.4.p7/src/Modules/_multiprocessing/multiprocessing.c:111:
> error: 'struct msghdr' has no member named 'msg_controllen'
> /export/home/drkirkby/32/sage-4.3.4.alpha0/spkg/build/python-2.6.4.p7/src/Modules/_multiprocessing/multiprocessing.c:114:
> warning: implicit declaration of function 'CMSG_FIRSTHDR'
> /export/home/drkirkby/32/sage-4.3.4.alpha0/spkg/build/python-2.6.4.p7/src/Modules/_multiprocessing/multiprocessing.c:114:
> warning: assignment makes pointer from integer without a cast
> /export/home/drkirkby/32/sage-4.3.4.alpha0/spkg/build/python-2.6.4.p7/src/Modules/_multiprocessing/multiprocessing.c:117:
> warning: implicit declaration of function 'CMSG_LEN'
> /export/home/drkirkby/32/sage-4.3.4.alpha0/spkg/build/python-2.6.4.p7/src/Modules/_multiprocessing/multiprocessing.c:118:
> error: 'struct msghdr' has no member named 'msg_controllen'
> /export/home/drkirkby/32/sage-4.3.4.alpha0/spkg/build/python-2.6.4.p7/src/Modules/_multiprocessing/multiprocessing.c:119:
> warning: implicit declaration of function 'CMSG_DATA'
> /export/home/drkirkby/32/sage-4.3.4.alpha0/spkg/build/python-2.6.4.p7/src/Modules/_multiprocessing/multiprocessing.c:
> In function 'multiprocessing_recvfd':
> /export/home/drkirkby/32/sage-4.3.4.alpha0/spkg/build/python-2.6.4.p7/src/Modules/_multiprocessing/multiprocessing.c:145:
> error: 'struct msghdr' has no member named 'msg_control'
> /export/home/drkirkby/32/sage-4.3.4.alpha0/spkg/build/python-2.6.4.p7/src/Modules/_multiprocessing/multiprocessing.c:146:
> error: 'struct msghdr' has no member named 'msg_controllen'
> /export/home/drkirkby/32/sage-4.3.4.alpha0/spkg/build/python-2.6.4.p7/src/Modules/_multiprocessing/multiprocessing.c:149:
> warning: assignment makes pointer from integer without a cast
> /export/home/drkirkby/32/sage-4.3.4.alpha0/spkg/build/python-2.6.4.p7/src/Modules/_multiprocessing/multiprocessing.c:153:
> error: 'struct msghdr' has no member named 'msg_controllen'
> }}}
>
> Further down the log, the fact the _multiprocessing module has failed to
> build is clearly stated:
>
> {{{
> Failed to find the necessary bits to build these modules:
> _bsddb             _hashlib             _ssl
> _tkinter           bsddb185             gdbm
> linuxaudiodev      ossaudiodev
> To find the necessary bits, look in setup.py in detect_modules() for the
> module's name.
>

> Failed to build these modules:
> _curses            _curses_panel        _multiprocessing
> }}}
>
> There is potentially a solution available here.
>
> http://bugs.python.org/issue3110
>
> However, it appears there was a typo there, so that had to be changed.
>
> http://svn.python.org/view?view=rev&revision=73767
>
> The latest header is at:
>
> http://svn.python.org/view/python/trunk/Modules/_multiprocessing/multiprocessing.h
>
> Whether this will fix the issue is unknown, but it looks at least
> related.

New description:

 Since #6503 removed pyprocessing from Sage, multiprocessing (or perhaps
 _multiprocessing) is needed, but this is not building on Solaris 10 SPARC.

 {{{
 gcc -fPIC -fno-strict-aliasing -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-
 prototypes -DHAVE_SEM_OPEN=1 -DHAVE_FD_TRANSFER=1 -DHAVE_SEM_TIMEDWAIT=1
 -IModules/_multiprocessing -I. -I/export
 /home/drkirkby/32/sage-4.3.4.alpha0/spkg/build/python-2.6.4.p7/src/./Include
 -I. -IInclude -I./Include
 -I/export/home/drkirkby/32/sage-4.3.4.alpha0/local/include
 -I/usr/local/include
 
-I/export/home/drkirkby/32/sage-4.3.4.alpha0/spkg/build/python-2.6.4.p7/src/Include
 -I/export/home/drkirkby/32/sage-4.3.4.alpha0/spkg/build/python-2.6.4.p7/src
 -c /export/home/drkirkb
 
y/32/sage-4.3.4.alpha0/spkg/build/python-2.6.4.p7/src/Modules/_multiprocessing/multiprocessing.c
 -o
 
build/temp.solaris-2.10-sun4u-2.6/export/home/drkirkby/32/sage-4.3.4.alpha0/spkg/bu
 ild/python-2.6.4.p7/src/Modules/_multiprocessing/multiprocessing.o
 
/export/home/drkirkby/32/sage-4.3.4.alpha0/spkg/build/python-2.6.4.p7/src/Modules/_multiprocessing/multiprocessing.c:
 In function 'multiprocessing_sendfd':
 
/export/home/drkirkby/32/sage-4.3.4.alpha0/spkg/build/python-2.6.4.p7/src/Modules/_multiprocessing/multiprocessing.c:100:
 warning: implicit declaration of function 'CMSG_SPACE'
 
/export/home/drkirkby/32/sage-4.3.4.alpha0/spkg/build/python-2.6.4.p7/src/Modules/_multiprocessing/multiprocessing.c:110:
 error: 'struct msghdr' has no member named 'msg_control'
 
/export/home/drkirkby/32/sage-4.3.4.alpha0/spkg/build/python-2.6.4.p7/src/Modules/_multiprocessing/multiprocessing.c:111:
 error: 'struct msghdr' has no member named 'msg_controllen'
 
/export/home/drkirkby/32/sage-4.3.4.alpha0/spkg/build/python-2.6.4.p7/src/Modules/_multiprocessing/multiprocessing.c:114:
 warning: implicit declaration of function 'CMSG_FIRSTHDR'
 
/export/home/drkirkby/32/sage-4.3.4.alpha0/spkg/build/python-2.6.4.p7/src/Modules/_multiprocessing/multiprocessing.c:114:
 warning: assignment makes pointer from integer without a cast
 
/export/home/drkirkby/32/sage-4.3.4.alpha0/spkg/build/python-2.6.4.p7/src/Modules/_multiprocessing/multiprocessing.c:117:
 warning: implicit declaration of function 'CMSG_LEN'
 
/export/home/drkirkby/32/sage-4.3.4.alpha0/spkg/build/python-2.6.4.p7/src/Modules/_multiprocessing/multiprocessing.c:118:
 error: 'struct msghdr' has no member named 'msg_controllen'
 
/export/home/drkirkby/32/sage-4.3.4.alpha0/spkg/build/python-2.6.4.p7/src/Modules/_multiprocessing/multiprocessing.c:119:
 warning: implicit declaration of function 'CMSG_DATA'
 
/export/home/drkirkby/32/sage-4.3.4.alpha0/spkg/build/python-2.6.4.p7/src/Modules/_multiprocessing/multiprocessing.c:
 In function 'multiprocessing_recvfd':
 
/export/home/drkirkby/32/sage-4.3.4.alpha0/spkg/build/python-2.6.4.p7/src/Modules/_multiprocessing/multiprocessing.c:145:
 error: 'struct msghdr' has no member named 'msg_control'
 
/export/home/drkirkby/32/sage-4.3.4.alpha0/spkg/build/python-2.6.4.p7/src/Modules/_multiprocessing/multiprocessing.c:146:
 error: 'struct msghdr' has no member named 'msg_controllen'
 
/export/home/drkirkby/32/sage-4.3.4.alpha0/spkg/build/python-2.6.4.p7/src/Modules/_multiprocessing/multiprocessing.c:149:
 warning: assignment makes pointer from integer without a cast
 
/export/home/drkirkby/32/sage-4.3.4.alpha0/spkg/build/python-2.6.4.p7/src/Modules/_multiprocessing/multiprocessing.c:153:
 error: 'struct msghdr' has no member named 'msg_controllen'
 }}}

 Further down the log, the fact the _multiprocessing module has failed to
 build is clearly stated:

 {{{
 Failed to find the necessary bits to build these modules:
 _bsddb             _hashlib             _ssl
 _tkinter           bsddb185             gdbm
 linuxaudiodev      ossaudiodev
 To find the necessary bits, look in setup.py in detect_modules() for the
 module's name.


 Failed to build these modules:
 _curses            _curses_panel        _multiprocessing
 }}}

--

Comment:

 The solution to this problem is found in the old pyprocessing package,
 where it says:

 {{{
 #   HAVE_FD_TRANSFER
 #     Set this to 1 to compile functions for transferring file
 #     descriptors between processes over an AF_UNIX socket using a
 #     control message with type SCM_RIGHTS.  On Unix the pickling of
 #     of socket and connection objects depends on this feature.
 #
 #     If you get errors about missing CMSG_* macros then you should
 #     set this to 0.
 }}}

 This is not as well documented in Python's setup.py, but by setting

 {{{
 HAVE_FD_TRANSFER=0
 }}}

 in Python's top-level setup.py, the problem goes away. Python's build then
 reports:

 {{{
 Failed to build these modules:
 _curses         _curses_panel
 }}}
 The _multiprocessing module is now building ok.

 The new setup.py has a Solaris-specific section, which I added. However,
 so reviewers can be even more confident this will only affect Solaris, the
 patch is only applied on Solaris.

 I also took time to address a minor issue at #8356, where '--without-
 libpng' was used, despite the fact the option is no longer recognised.

  == Notes for Release Manager ==
 '''Prerequisites:'''

  * #7867 (This already has positive review)

 This patch should be applied on top of the changes at #7867

 Once this ticket is closed, #8356 may be closed too.

 It would be appreciated if #8374, #8375, 8391 and #8404 could also be
 integrated into the next alpha, as that would have a high probability of
 allowing all doc tests to pass. All these tickets have positive review.

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/8440#comment:2>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sage-trac?hl=en.

Reply via email to