Skip to content

Broken on ppc64le #230

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
jeremyfreudberg opened this issue Jan 20, 2021 · 5 comments
Closed

Broken on ppc64le #230

jeremyfreudberg opened this issue Jan 20, 2021 · 5 comments

Comments

@jeremyfreudberg
Copy link

Greenlet is unusable out of the box on ppc64le. The wheel is not built properly.

[root@jeremy ~]# cat /etc/redhat-release 
Red Hat Enterprise Linux release 8.3 (Ootpa)
[root@jeremy ~]# arch
ppc64le
[root@jeremy ~]# virtualenv genv
Using base prefix '/usr'
New python executable in /root/genv/bin/python3.6
Also creating executable in /root/genv/bin/python
Installing setuptools, pip, wheel...done.
[root@jeremy ~]# source genv/bin/activate
(genv) [root@jeremy ~]# pip install greenlet
Collecting greenlet
  Downloading greenlet-1.0.0-cp36-cp36m-manylinux2014_ppc64le.whl (160 kB)
     |████████████████████████████████| 160 kB 663 kB/s 
Installing collected packages: greenlet
Successfully installed greenlet-1.0.0
(genv) [root@jeremy ~]# python -c 'import greenlet'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/root/genv/lib/python3.6/site-packages/greenlet/__init__.py", line 29, in <module>
    from ._greenlet import _C_API # pylint:disable=no-name-in-module
ModuleNotFoundError: No module named 'greenlet._greenlet'
(genv) [root@jeremy ~]# cp genv/lib/python3.6/site-packages/greenlet/_greenlet.cpython-36m-powerpc64le-linux-gnu.so genv/lib/python3.6/site-packages/greenlet/_greenlet.so
(genv) [root@jeremy ~]# python -c 'import greenlet'
(genv) [root@jeremy ~]# echo $?
0
@jamadden
Copy link
Contributor

Tests pass, so I don’t know what the problem might be. This is an incredibly niche platform (outdated python on rare hardware) so I can only say that help is welcome!

@jeremyfreudberg
Copy link
Author

Thanks for the hint. I just tried with python 3.8 and greenlet appears to function without a workaround.
I'll see what I can figure out

@jeremyfreudberg
Copy link
Author

Er no, just kididng. It doesn't work on python 3.8 either.

@jeremyfreudberg
Copy link
Author

Ok, I understand what's going on now.
When installing greenlet with the pypi-provided wheel, the object file is called _greenlet.cpython-36m-powerpc64le-linux-gnu.so
When building greenlet locally, the object file is called _greenlet.cpython-36m-ppc64le-linux-gnu.so

This ppc64le vs powerpc64le matter is not specific to greenlet. See pypa/manylinux#687 for further discussion

@jamadden
Copy link
Contributor

Thanks for the investigation!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants