-
Notifications
You must be signed in to change notification settings - Fork 152
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Update manylinux2010 policy with i686 symbol versions #141
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.