#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.