Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.
Sign upbpo-37415: Fix stdatomic.h header check for ICC compiler #16717
Conversation
This comment has been minimized.
This comment has been minimized.
I removed ATOMIC_VAR_INIT() check from configure, since it's not used in Python. |
Fix stdatomic.h header check for ICC compiler: the ICC implementation lacks atomic_uintptr_t type which is needed by Python. Test: * atomic_int and atomic_uintptr_t types * atomic_load_explicit() and atomic_store_explicit() * memory_order_relaxed and memory_order_seq_cst constants But don't test ATOMIC_VAR_INIT(): it's not used in Python.
This comment has been minimized.
This comment has been minimized.
This should also fix https://bugs.python.org/issue35473 |
This comment has been minimized.
This comment has been minimized.
@adamjstewart: Can you test this PR with ICC? |
This comment has been minimized.
This comment has been minimized.
I'm still working on getting access to our cluster, but once I have access I can definitely test this PR! |
This comment has been minimized.
This comment has been minimized.
I assume the runstatedir portions of the patch aren't actually needed to fix the intel build? |
This comment has been minimized.
This comment has been minimized.
I'm running "autoconf". Depending who run "autoconf" to generate the latest configure in script and depending on my autoconf version, the runstatedir thing may or may not change. I never understood how to get a reliable output using autotools. |
This comment has been minimized.
This comment has been minimized.
This patch seems to be working so far. I tried running the unit tests and only saw a few failures:
I'm going to try to install anyway. |
This comment has been minimized.
This comment has been minimized.
The install succeeded! With the minimal patch found here, I was able to build Python 3.7.4 with Intel 18.0.3.222 on Cray CNL5. The patch successfully applies to Python 3.6.7-3.6.8, 3.7.1-3.7.4, and 3.8.0 release tarballs. We may want to backport this to Python 3.6 if it's still supported. I believe this bug was likely introduced in Python 3.6.7, 3.7.1, and 3.8.0. Thanks for your help @vstinner! |
This comment has been minimized.
This comment has been minimized.
That's unrelated to https://bugs.python.org/issue37415 https://bugs.python.org/issue37415 is only about a compilation failure when using ICC. |
This comment has been minimized.
This comment has been minimized.
miss-islington
commented
Oct 22, 2019
Thanks @vstinner for the PR |
This comment has been minimized.
This comment has been minimized.
miss-islington
commented
Oct 22, 2019
I'm having trouble backporting to |
This comment has been minimized.
This comment has been minimized.
bedevere-bot
commented
Oct 22, 2019
GH-16892 is a backport of this pull request to the 3.7 branch. |
) Fix stdatomic.h header check for ICC compiler: the ICC implementation lacks atomic_uintptr_t type which is needed by Python. Test: * atomic_int and atomic_uintptr_t types * atomic_load_explicit() and atomic_store_explicit() * memory_order_relaxed and memory_order_seq_cst constants But don't test ATOMIC_VAR_INIT(): it's not used in Python. (cherry picked from commit 028f734) Co-authored-by: Victor Stinner <vstinner@python.org>
This comment has been minimized.
This comment has been minimized.
miss-islington
commented
Oct 22, 2019
Thanks @vstinner for the PR |
) Fix stdatomic.h header check for ICC compiler: the ICC implementation lacks atomic_uintptr_t type which is needed by Python. Test: * atomic_int and atomic_uintptr_t types * atomic_load_explicit() and atomic_store_explicit() * memory_order_relaxed and memory_order_seq_cst constants But don't test ATOMIC_VAR_INIT(): it's not used in Python. (cherry picked from commit 028f734) Co-authored-by: Victor Stinner <vstinner@python.org>
This comment has been minimized.
This comment has been minimized.
bedevere-bot
commented
Oct 22, 2019
GH-16893 is a backport of this pull request to the 3.8 branch. |
Fix stdatomic.h header check for ICC compiler: the ICC implementation lacks atomic_uintptr_t type which is needed by Python. Test: * atomic_int and atomic_uintptr_t types * atomic_load_explicit() and atomic_store_explicit() * memory_order_relaxed and memory_order_seq_cst constants But don't test ATOMIC_VAR_INIT(): it's not used in Python. (cherry picked from commit 028f734) Co-authored-by: Victor Stinner <vstinner@python.org>
Fix stdatomic.h header check for ICC compiler: the ICC implementation lacks atomic_uintptr_t type which is needed by Python. Test: * atomic_int and atomic_uintptr_t types * atomic_load_explicit() and atomic_store_explicit() * memory_order_relaxed and memory_order_seq_cst constants But don't test ATOMIC_VAR_INIT(): it's not used in Python. (cherry picked from commit 028f734) Co-authored-by: Victor Stinner <vstinner@python.org>
) Fix stdatomic.h header check for ICC compiler: the ICC implementation lacks atomic_uintptr_t type which is needed by Python. Test: * atomic_int and atomic_uintptr_t types * atomic_load_explicit() and atomic_store_explicit() * memory_order_relaxed and memory_order_seq_cst constants But don't test ATOMIC_VAR_INIT(): it's not used in Python.
vstinner commentedOct 11, 2019
•
edited by bedevere-bot
Fix stdatomic.h header check for ICC compiler: the ICC implementation
lacks atomic_uintptr_t type which is needed by Python.
https://bugs.python.org/issue37415