Join GitHub today
GitHub is home to over 50 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
|
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 should also fix https://bugs.python.org/issue35473 |
|
@adamjstewart: Can you test this PR with ICC? |
|
I'm still working on getting access to our cluster, but once I have access I can definitely test this PR! |
|
I assume the runstatedir portions of the patch aren't actually needed to fix the intel build? |
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 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. |
|
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! |
That's unrelated to https://bugs.python.org/issue37415 https://bugs.python.org/issue37415 is only about a compilation failure when using ICC. |
|
Thanks @vstinner for the PR |
|
I'm having trouble backporting to |
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>
|
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>
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.
) 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