-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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
PEP 571: Update GCC_4.5.0 #1180
Conversation
Hello, and thanks for your contribution! I'm a bot set up to make sure that the project can legally accept this contribution by verifying everyone involved has signed the PSF contributor agreement (CLA). Recognized GitHub usernameWe couldn't find a bugs.python.org (b.p.o) account corresponding to the following GitHub usernames: This might be simply due to a missing "GitHub Name" entry in one's b.p.o account settings. This is necessary for legal reasons before we can look at this contribution. Please follow the steps outlined in the CPython devguide to rectify this issue. You can check yourself to see if the CLA has been received. Thanks again for the contribution, we look forward to reviewing it! |
This seems like a sensible change, but with the PEP having been accepted more than a year ago, we should add a short "Summary of Changes" section for this, akin to the one in PEP 440: https://www.python.org/dev/peps/pep-0440/#summary-of-changes-to-pep-440 I also have a technical question: what are the implications (if any) of allowing GCC_4.4.0 symbols on CentOS 6 x86-64 builds? It isn't necessarily a blocker if there are implications, but the change note in the PEP should either explain those consequences, or else note that there aren't any. |
There are no implications on x86_64. There are no symbols with That being said, it's a fair point and I think we might want to manage symbol version per architecture in auditwheel (and check implications - if any - on the respective PEP) |
I modified the maximum version to GCC_4.5.0 because 32-bit CentOS 6 has one more symbol under it. This is a list version symbols from
There is only one function, As @mayeut already clarified,
I added a summary section to the doc. Please review it. |
@veblush, given the commit mentioned for gcc, I'm not sure why |
/cc @takluyver as an author of this PEP. |
ok, seems that RedHat sources for gcc (gcc-4.4.7-20120601, before applying patches from the srpm) differs from official gcc 4.4.7 sources. The |
Thanks for pinging me, but I don't have any specific input. I trust you all to do the necessary legwork to ensure whatever symbols are specified are broadly compatible with 2014-era Linux distros. |
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.
Thanks, that explanatory text is exactly the extra published rationale that I thought the change needed.
OK, I've accepted the update with the GCC_4.5.0 change, on the grounds of making the permitted symbol lists consistent between 64-bit and 32-bit systems where manylinux2010 is concerned. Ubuntu 12.04 shipped with GCC 4.6, Debian 7 (2013) shipped with GCC 4.7, SLES 12 (2014) shipped with GCC 4.8. This means you have to go back to actual 2010/2011 releases to start running into potential problems with the |
manylinux2010
is based on CentOS 6 which is bundled withGCC 4.4
and correspondinglibgcc_s.so
. Current PEP says that its maximum version isGCC_4.3.0
but this should be updated toGCC_4.4.0
because 32-bit CentOS 6 has many symbols withGCC_4.4.0
but 64-bit CentOS 6 doesn't. It seems that this constraints was made only with 64-bit CentOS 6.From libgcc-glibc.ver, they put new symbols introduced with
GCC 4.3
inGCC_4.4.0
only for 32 bits. As a result, those symbols are placed in different version tag depending on architecture.Comment in the source says:
Without this change, application built on 32-bit CentOS 6 and linked with following functions cannot be manylinux2010-compliant even though they are.
Context: pypa/auditwheel#141 (comment)