[Python-Dev] Multiprocessing on Solaris

Scott Dial scott+python-dev at scottdial.com
Sat Mar 21 02:50:34 CET 2009


Jesse Noller wrote:
> On Fri, Mar 20, 2009 at 8:50 PM, Christian Heimes <lists at cheimes.de> wrote:
>> Martin v. Löwis schrieb:
>>>> Today I was in contact with a Python user who tried to compile
>>>> pyprocessing - the ancestor of multiprocessing - on Solaris. It failed
>>>> to run because Solaris is missing two features (HAVE_FD_TRANSFER and
>>>> HAVE_SEM_TIMEDWAIT). Does anybody have a Solaris box at his disposal to
>>>> test the settings? Neither Python 2.6 nor my backup have the correct
>>>> settings for Solaris.
>>> I don't quite understand what it is that you want tested - what
>>> "settings"?
>>>
>>> Most likely, the answer is yes, I can test stuff on Solaris (both SPARC
>>> and x86/amd64).
>> According to the user's experience multiprocessing should not compile
>> and run correctly unless this patch is applied. I'm not sure if the
>> value "solaris" for platform is correct. You may also need to change
>> libraries to ['rt'].
>>
>>
>> Index: setup.py
>> ===================================================================
>> --- setup.py    (revision 70478)
>> +++ setup.py    (working copy)
>> @@ -1280,6 +1280,14 @@
>>                 )
>>             libraries = []
>>
>> +        elif platform == 'solaris':
>> +            macros = dict(
>> +                HAVE_SEM_OPEN=1,
>> +                HAVE_SEM_TIMEDWAIT=0,
>> +                HAVE_FD_TRANSFER=0,
>> +                )
>> +            libraries = []
>> +
>>         else:                                   # Linux and other unices
>>             macros = dict(
>>                 HAVE_SEM_OPEN=1,
> 
> If this should be addressed in trunk/3k, we need to track this in the
> tracker in the bug I cited in the other email. I can't speak for the
> original pyprocessing code.
> 

I just checked out the trunk on a Sparc Solaris 8 box, and on the trunk,
those defines are specified differently:

building '_multiprocessing' extension
gcc -fno-strict-aliasing -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -fPIC
-DHAVE_SEM_OPEN=1 -DHAVE_FD_TRANSFER=1 -DHAVE_SEM_TIMEDWAIT=1
-IModules/_multiprocessing -I. -I./Include -I/usr/local/include
-IInclude -I/nfs/nfs2/home/scratch/scodial/python-trunk -c
trunk/Modules/_multiprocessing/multiprocessing.c -o
build/temp.solaris-2.8-sun4u-2.7/trunk/Modules/_multiprocessing/multiprocessing.o

However, the build is still without issue:

trunk/Modules/_multiprocessing/multiprocessing.c: In function
`multiprocessing_sendfd':
trunk/Modules/_multiprocessing/multiprocessing.c:100: warning: implicit
declaration of function `CMSG_SPACE'
trunk/Modules/_multiprocessing/multiprocessing.c:117: warning: implicit
declaration of function `CMSG_LEN'

trunk/Modules/_multiprocessing/connection.h: In function `connection_new':
trunk/Modules/_multiprocessing/connection.h:51: warning: unknown
conversion type character `z' in format
trunk/Modules/_multiprocessing/connection.h:51: warning: too many
arguments for format
trunk/Modules/_multiprocessing/connection.h: In function `connection_repr':
trunk/Modules/_multiprocessing/connection.h:401: warning: unknown
conversion type character `z' in format

trunk/Modules/_multiprocessing/connection.h: In function `connection_new':
trunk/Modules/_multiprocessing/connection.h:51: warning: unknown
conversion type character `z' in format
trunk/Modules/_multiprocessing/connection.h:51: warning: too many
arguments for format
trunk/Modules/_multiprocessing/connection.h: In function `connection_repr':
trunk/Modules/_multiprocessing/connection.h:401: warning: unknown
conversion type character `z' in format

-- 
Scott Dial
scott at scottdial.com
scodial at cs.indiana.edu


More information about the Python-Dev mailing list