python 2.7.12 pip install with extensions fails with warning: "__BSD_VISIBLE" redefined

cyg Simple cygsimple@gmail.com
Tue Nov 29 11:50:00 GMT 2016


On 11/28/2016 2:53 PM, Stephen Paul Carrier wrote:
>>> Hi -
>>>
>>> The newest version of cygwin with python 2.7.12-1 fails when pip
>>> installing packages that require compilation.  For example, pycrypto
>>> fails:
>>
>> FWIW this patch to pycrypto also fixes it:
>>
>> https://git.sagemath.org/sage.git/tree/build/pkgs/pycrypto/patches/cygwin/disable-std-c99.patch?id=aaa9b7fc887b64ba1dba7cba16061f598a097b75
>>
>> The problem only occurs when trying to build with the C99 standard if
>> Python itself was not.
> 
> I fixed this issue by editing /usr/include/python2.7/pyconfig.h to comment
> out the second line of:
> 
> /* Define on FreeBSD to activate all library features */
> #define __BSD_VISIBLE 1
> 

The use of a __PRIVATE_DEFINE is highly discouraged.  In sys/features.h
you'll find a comment to that effect.  Python should have used
_BSD_SOURCE but even that is deprecated in favor of _DEFAULT_SOURCE.

> This seemed like the right thing to do since Cygwin isn't FreeBSD, and
> the problem went away.
> 

No but that doesn't mean the functions do not exist.

> Is this an oversight in python-devel package?  Issue doesn't occur in
> 32-bit version.
> 

The oversight would be the use of the private define instead of the
public one.  If you remove the __BSD_VISIBLE and use _DEFAULT_SOURCE
instead does it help?  If not then there is a deeper issue.

-- 
cyg Simple

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple



More information about the Cygwin mailing list