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