GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — bpo-44133: Export Py_FrozenMain() symbol by vstinner · Pull Request #26130 · python/cpython

Conversation

@vstinner

@vstinner vstinner commented May 14, 2021 •
edited by bedevere-bot
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member

The Python binary now builds the libpython static library using
"-Wl,--whole-archive" linker option to export all symbols exported by
object files. Previously, the "Py_FrozenMain" symbol was not
exported.

https://bugs.python.org/issue44133

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@vstinner
bpo-44133: Export Py_FrozenMain() symbol
09e30f3
The Python binary now builds the libpython static library using
"-Wl,--whole-archive" linker option to export all symbols exported by
object files. Previously, the "Py_FrozenMain" symbol was not
exported.
@bedevere-bot bedevere-bot added the awaiting core review label May 14, 2021
@the-knights-who-say-ni the-knights-who-say-ni added the CLA signed label May 14, 2021
pablogsal
pablogsal approved these changes May 14, 2021
View reviewed changes

@pablogsal pablogsal left a comment

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This needs backport to 3.10 at the very least, no?

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@bedevere-bot bedevere-bot added awaiting merge and removed awaiting core review labels May 14, 2021
shreyanavigyan
shreyanavigyan reviewed May 14, 2021
View reviewed changes
Comment thread Makefile.pre.in Resolved

Uh oh!

There was an error while loading. Please reload this page.

@vstinner

vstinner commented May 14, 2021

Copy link
Copy Markdown
Member Author

I'm not sure that it makes sense to treat a python executable binary as a library, and so expect that all symbols are exported.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@pablogsal

pablogsal commented May 14, 2021 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member

I'm not sure that it makes sense to treat a python executable binary as a library

It absolutely does, if not, how can C extensions get access to the C-API?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

corona10
corona10 reviewed May 15, 2021
View reviewed changes

@corona10 corona10 left a comment

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

clang does not support --whole-archive can we use -all_load on macOS for that purpose?

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@github-actions

github-actions Bot commented Jun 15, 2021

Copy link
Copy Markdown

This PR is stale because it has been open for 30 days with no activity.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@github-actions github-actions Bot added the stale Stale PR or inactive for long period of time. label Jun 15, 2021
@vstinner

vstinner commented Sep 21, 2021

Copy link
Copy Markdown
Member Author

-Wl,--whole-archive is not as portable as as expected. IMO another approach should be taken. Don't use the static library to link the "python" binary, "simply" pass the whole list of all object files.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@vstinner vstinner closed this Sep 21, 2021
@vstinner
vstinner deleted the export_frozenmain branch September 21, 2021 22:10
@shihai1991

shihai1991 commented Dec 1, 2021

Copy link
Copy Markdown
Member

-Wl,--whole-archive is not as portable as as expected. IMO another approach should be taken. Don't use the static library to link the "python" binary, "simply" pass the whole list of all object files.

I use --whole-archive or all_load in configure.ac. It works in my local centos vm. #29876

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@vstinner vstinner mentioned this pull request Apr 29, 2022
Some C-API symbols (e.g. Py_FrozenMain) are not always exported on Unix #88299
Closed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@corona10 corona10 corona10 left review comments
@pablogsal pablogsal pablogsal approved these changes
+2 more reviewers
@serge-sans-paille serge-sans-paille serge-sans-paille left review comments
@shreyanavigyan shreyanavigyan shreyanavigyan left review comments
Reviewers whose approvals may not affect merge requirements

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

awaiting merge stale Stale PR or inactive for long period of time.

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

8 participants

@vstinner @pablogsal @shihai1991 @serge-sans-paille @corona10 @shreyanavigyan @the-knights-who-say-ni @bedevere-bot
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.