Failure during build of Python 3.8 via cygport

Marco Atzeri marco.atzeri@gmail.com
Sun Dec 13 14:34:51 GMT 2020


On 13.12.2020 09:52, Mark Geisert wrote:
> Mark Geisert wrote:
>> This seems to be a problem setting up a platform-specific build 
>> directory. The sysconfig.py script wants to use "lib." + platform + 
>> pythonversion but the platform string somehow gets corrupted into 
>> non-utf8 bytes.  For instance, building Python 3.8 comes up with:
>>      lib.cygwin-\365\377\377o-\377o-3.8
>> as the directory name.  Broken, but could work.  The build failure 
>> happens because the script tries to write this directory name into a 
>> file but it's not a valid utf8 string.  The directory name should have 
>> been:
>>      lib.cygwin-3.2.0-x86_64-3.8
> 
> And the corruption is due to something about a recent change to the 
> operation of Cygwin's uname() function.  The change was introduced in 
> Cygwin API version 335; I'm running 340 on my test machine.  This being 
> a fairly recent change might possibly explain why nobody else has run 
> into this issue yet.
> 
> Basically, os.uname within Python is calling Cygwin's uname() passing 
> the address of a buffer declared to be 'struct utsname'.  The structure 
> layout changed in API 335.  What I've hit is a mismatch between what 
> Python expects and Cygwin delivers.
> 
> I'll move this discussion over to the developers list tomorrow.
> 
> ..mark

thanks for the analysis

let me know if you think we should correct the python build in any way

Regards
Marco


More information about the Cygwin-apps mailing list