-
Notifications
You must be signed in to change notification settings - Fork 153
Update manylinux2010 policy with i686 symbol versions #141
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
Conversation
This doesn't sound right to me, why would ABI versions differ between architectures on the same image with same GCC version? |
I guess, and this is only a guess, that other (older) symbol versions existed on i386 but the compatibility (thus symbol version) were dropped when x86_64 was introduced (on that platform only, since it was new, there was no need to maintain those older versions) |
PS, all the older symbols are part of manylinux1 policy. |
Here's a debug log using pypa/manylinux#182 PR for i686 image:
|
2 comments:
It's curious we haven't gotten any reports of this previously, seems like a bit of an edge case... |
You're right, I did not check on those newer symbols. I will have a look at gcc change log to check why there are newer symbol versions on i686. These logs come from tests on a custom cibuildwheel, on an updated branch of PR 182. To get started, build the docker images (both):
Then start tests on cibuildwheel:
PS, I do not need those newer symbols for tests to pass. These were from the scripts/calculate_symbol_versions.py run on i686 image |
I found out why there are different symbols for GCC: You can look for |
25006e9
to
920da86
Compare
Any progress or blocking issue? I need this PR too. |
I agree with updating GLIBC and GCC in separate CLs and updating GLIBC is more important because almost everything built on 32-bit CentOS 6 are not compliant with manylinux2010 because of GLIBC. But I think we need to revisit GCC issue because From the libgcc, they put symbols introduced with GCC 4.3 in You can see this in the comment.
I think
|
@lkollar, Once python/peps#1180 gets merged we could merge this PR (I will rebase after #194 gets merged in). Another thing that comes to mind is that auditwheel should probably define policies per architecture but that's another matter. I'm sure that #192 has the same issue as original manylinux2010 policy (since I extracted the symbols from CentOS 7 amd64 image) and might be in even worse shape given that PEP 599 extends the number of supported architectures. |
920da86
to
db2245f
Compare
Rebased on top of #194 |
Codecov Report
@@ Coverage Diff @@
## master #141 +/- ##
=======================================
Coverage 87.43% 87.43%
=======================================
Files 19 19
Lines 963 963
Branches 210 210
=======================================
Hits 842 842
Misses 84 84
Partials 37 37 Continue to review full report at Codecov.
|
d4a90f1
to
8b7c92b
Compare
Symbol versions for manylinux2010 were probably extracted on a x86_64 CentOS 6 using the scripts/calculate_symbol_versions.py These are only a subset of allowed symbol versions. This commit updates symbol_versions to be the union of symbol versions found on x86_64 and i686 images.
8b7c92b
to
970a066
Compare
python/peps#1180 was merged now so it seems fine to get this merged, too. Can we get a new release auditwheel on this change? |
Symbol versions for manylinux2010 were probably extracted on a x86_64 CentOS 6 using the scripts/calculate_symbol_versions.py
These are only a subset of allowed symbol versions. This commit updates symbol_versions to be the union of symbol versions found on x86_64 and i686 images.
This also raises the question, should symbol policies be split by platform ?
If the answer's yes, I can work on that in this PR.