id,summary,reporter,owner,description,type,status,priority,milestone,component,resolution,keywords,cc,branch,branch_author,launchpad_bug
5728,sendmsg.c does not compile on Solaris,toddmowen,,"We are trying to upgrade from version 11 to 12, on a Solaris 5.10 box with Python 2.7.

The Twisted-12.0.0 release builds without error. However, the later Twisted-12.1.0 release produces the following error during `python setup.py build`:

{{{
twisted/python/sendmsg.c: In function `sendmsg_sendmsg':
twisted/python/sendmsg.c:198: error: structure has no member named `msg_control'
twisted/python/sendmsg.c:199: error: structure has no member named `msg_controllen'
twisted/python/sendmsg.c:201: error: structure has no member named `msg_flags'
twisted/python/sendmsg.c:243: warning: implicit declaration of function `CMSG_SPACE'
twisted/python/sendmsg.c:268: error: structure has no member named `msg_control'
twisted/python/sendmsg.c:269: error: structure has no member named `msg_control'
twisted/python/sendmsg.c:274: error: structure has no member named `msg_control'
twisted/python/sendmsg.c:276: error: structure has no member named `msg_controllen'
twisted/python/sendmsg.c:285: warning: implicit declaration of function `CMSG_FIRSTHDR'
twisted/python/sendmsg.c:285: warning: initialization makes pointer from integer without a cast
twisted/python/sendmsg.c:306: warning: implicit declaration of function `CMSG_LEN'
twisted/python/sendmsg.c:316: warning: implicit declaration of function `CMSG_DATA'
twisted/python/sendmsg.c:316: warning: assignment makes pointer from integer without a cast
twisted/python/sendmsg.c:322: warning: implicit declaration of function `CMSG_NXTHDR'
twisted/python/sendmsg.c:322: warning: assignment makes pointer from integer without a cast
twisted/python/sendmsg.c:351: error: structure has no member named `msg_control'
twisted/python/sendmsg.c:352: error: structure has no member named `msg_control'
twisted/python/sendmsg.c:353: error: structure has no member named `msg_control'
twisted/python/sendmsg.c: In function `sendmsg_recvmsg':
twisted/python/sendmsg.c:414: error: structure has no member named `msg_control'
twisted/python/sendmsg.c:416: error: structure has no member named `msg_controllen'
twisted/python/sendmsg.c:429: warning: assignment makes pointer from integer without a cast
twisted/python/sendmsg.c:432: warning: assignment makes pointer from integer without a cast
twisted/python/sendmsg.c:450: warning: cast to pointer from integer of different size
twisted/python/sendmsg.c:477: error: structure has no member named `msg_flags'
error: command 'gcc' failed with exit status 1
}}}

It appears that on this platform it is necessary to define the `_XOPEN_SOURCE` and `_XOPEN_SOURCE_EXTENDED` macros in order to gain access to the `msg_control`, `msg_controllen`, and `msg_flags` members that the errors mention (according to http://stackoverflow.com/questions/1034587).",defect,new,normal,,core,,Solaris review,xaka2004@…,,,
