This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: Python 3.x built for ppc+ppc64 errs on: No module named 'msvcrt', '_posixsubprocess'
Type: compile error Stage:
Components: macOS Versions: Python 3.10, Python 3.9, Python 3.8
process
Status: open Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: barracuda156, ned.deily, ronaldoussoren
Priority: normal Keywords:

Created on 2022-04-06 11:08 by barracuda156, last changed 2022-04-11 14:59 by admin.

Messages (2)
msg416857 - (view) Author: Sergey Fedorov (barracuda156) Date: 2022-04-06 11:08
While adding definitions for additional universal binary option (ppc+ppc64) is rather straightforward (following already existing examples in the source code), and Python 3.x after patching do build as universal for named two arch, trying to install any python modules fail on the following:

```
--->  Building py39-curl
Traceback (most recent call last):
  File "/opt/local/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/subprocess.py", line 73, in <module>
    import msvcrt
ModuleNotFoundError: No module named 'msvcrt'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_python_py-curl/py39-curl/work/pycurl-7.44.1/setup.py", line 11, in <module>
    import glob, os, re, sys, subprocess
  File "/opt/local/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/subprocess.py", line 78, in <module>
    import _posixsubprocess
ModuleNotFoundError: No module named '_posixsubprocess'
Command failed: /opt/local/Library/Frameworks/Python.framework/Versions/3.9/bin/python3.9 setup.py docstrings
Exit code: 1
```

Separately both ppc and ppc64 are totally fine, they build and work, but not together.
At the same time `python27` after a similar patch builds as universal (ppc+ppc64) and works normally. So the problem somehow arises on 3.x versions.

P. S. I am aware that Darwin PowerPC is an interest for very few users and even fewer developers, so I do not expect the upstream to fix this in the code.
However I will greatly appreciate any advice which may point to what I should fix on my end. If I can fix Pythons for ppc+ppc64, it will benefit Macports users, among whom there are people using Leopard actively.
Relevant ticket on Macports: https://trac.macports.org/ticket/64916
Such fix may also benefit Linux PPC users on G5 machines.

I request moderators not to dismiss & close the issue, if possible. We don’t have Python experts on Macports, and all fixes for PowerPC are done by very few enthusiasts.
msg416873 - (view) Author: Ronald Oussoren (ronaldoussoren) * (Python committer) Date: 2022-04-06 14:37
The problem you should look into is why the _posixsubprocess doesn't build, the message about msvcrt is a red herring due to the way subprocess.py is structured.

Also compare the pyconfig.h files created for the two single architecture builds, maybe there are differences in detected features for the two architectures (other than CPU differences, there's a pymacconfig.h files that sets the correct values for sizes of basic types). 

That said, I won't be debugging this issue myself. MacOS on PowerPC is by now a thing of the past and IIRC the last time I had access to a 64-bit PPC machine was before GUI code would run properly in PPC64 mode.
History
Date User Action Args
2022-04-11 14:59:58adminsetgithub: 91396
2022-04-06 14:37:24ronaldoussorensetnosy: ronaldoussoren, ned.deily, barracuda156
messages: + msg416873
2022-04-06 11:08:59barracuda156create