-
-
Notifications
You must be signed in to change notification settings - Fork 30.1k
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
Method Py_FrozenMain missing in libpython3.9 #86757
Comments
In Python 3.9.0 and 3.9.1rc1 (Packages from Ubuntu Devel Branch or Fedora) the Method
int Py_FrozenMain(int, char**)
is missing in libpython3.9.so Thus, when trying the provided freeze example via In previous Python 3.8.x the bug does not show. Thanks, |
The same under Python 3.9.1 (Package from Debian bullseye/testing). As the method Py_FrozenMain is contained in the source code, maybe ist has something to do with the build process, a change in makefile? As far as I can see, the builder of the distribution packages call the makefile as provided. Chris |
The file containing the source code is Python/frozenmain.c . |
I wrote PR 23730 to fix the issue. Would it be possible for you to test it? Since Python 3.9, symbols which are not explicitly exported are no longer exported. Python now uses -fvisibility=hidden. |
Dear Victor, a simple test with the tools/freeze/hello.py example was successfull with your patch and the newest cpython from github.
Thanks again, |
Oh great, thanks for your quick feedback! I applied your PR to master and I will backport it to 3.9. |
Thanks Christian Bachmaier for the bug report, it's now fixed. |
Christian Bachmaier:
Do you mean freeze.py from Tools/freeze/freeze.py? This tool seems to be broken for 4 years, since Python 3.6: bpo-42613.
Oh, you fixed manually freeze.py? |
Yes, unfortunately I have to keep a large old system running and there are only few options left. It is a University learning system, where students upload program code and then a huge amount of automtic quality checks are executed within a sandbox. The grading is done in a half automtic way. A real alternative is not existing, we tried hard to find one...
The symlink does the trick. So it may be easy for you to fix that, so it does operate out of the box again. |
Christian Bachmaier:
I pushed a fix in bpo-42613. It would be great if you could test it. See my manual test: https://bugs.python.org/issue42613#msg383153 If you can test it, I can backport the fix to stable branches. |
Vistor Stinner:
Seems to work like a charm. Basically I used the same testing setup as previously on Dec 10th under Debian testing/bullseye without step 2, as master already contains your fix. Victor, many thanks again, you are great! |
Is this function actually usable in Windows? ISTM that you need to define three more functions, PyWinFreeze_ExeInit, PyWinFreeze_ExeTerm and PyInitFrozenExtensions. Was adding this undocumented function to the Windows stable ABI deliberate? I see no discussion about that. |
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
bugs.python.org fields:
The text was updated successfully, but these errors were encountered: