fix: check external libs for glibc version when determining platform tag#2993
Open
fix: check external libs for glibc version when determining platform tag#2993
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Adjusts platform tag selection during auditwheel repair so bundled external shared libraries can influence the chosen manylinux policy, preventing runtime ImportErrors when externals require newer glibc symbol versions than the main artifact.
Changes:
- Scan external libraries’ ELF versioned symbol requirements when deciding the effective policy/tag.
- Introduce helper logic to evaluate whether a policy satisfies versioned symbol constraints and to adjust the selected policy accordingly.
90e8f8f to
bb7c924
Compare
bb7c924 to
8e0f0ad
Compare
8e0f0ad to
f3e0f5b
Compare
When bundling external shared libraries (auditwheel repair), the platform tag was determined solely from the main artifact's versioned symbol requirements. External libraries could require a newer glibc (e.g. GLIBC_2.29) while the wheel was tagged as manylinux_2_28, causing ImportErrors at runtime on older systems. Now scan each external library's ELF versioned symbols and downgrade the policy/tag when needed. Fixes PyO3#1490
f3e0f5b to
fc5162e
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
When bundling external shared libraries (auditwheel repair), the platform tag was determined solely from the main artifact's versioned symbol requirements. External libraries could require a newer glibc (e.g.
GLIBC_2.29) while the wheel was tagged asmanylinux_2_28, causingImportErrors at runtime on older systems.Now scan each external library's ELF versioned symbols and downgrade the policy/tag when needed.
Fixes #1490