[Python-checkins] bpo-41617: Fix pycore_bitutils.h to support clang 3.0 (GH-22042)
Victor Stinner
webhook-mailer at python.org
Tue Sep 1 12:25:30 EDT 2020
https://github.com/python/cpython/commit/e6905e4c82cc05897dc1bf5ab2b5b94b2b043a7f
commit: e6905e4c82cc05897dc1bf5ab2b5b94b2b043a7f
branch: master
author: Victor Stinner <vstinner at python.org>
committer: GitHub <noreply at github.com>
date: 2020-09-01T18:25:14+02:00
summary:
bpo-41617: Fix pycore_bitutils.h to support clang 3.0 (GH-22042)
__builtin_bswap16() is not available in LLVM clang 3.0.
files:
A Misc/NEWS.d/next/Build/2020-08-24-18-34-01.bpo-41617.sKKXz7.rst
M Include/internal/pycore_bitutils.h
diff --git a/Include/internal/pycore_bitutils.h b/Include/internal/pycore_bitutils.h
index 0bd3270fe82e5..1602fc68d9407 100644
--- a/Include/internal/pycore_bitutils.h
+++ b/Include/internal/pycore_bitutils.h
@@ -17,10 +17,12 @@ extern "C" {
# error "this header requires Py_BUILD_CORE define"
#endif
-#if defined(__clang__) || \
- (defined(__GNUC__) && \
- ((__GNUC__ >= 5) || (__GNUC__ == 4) && (__GNUC_MINOR__ >= 8)))
- /* __builtin_bswap16() is available since GCC 4.8,
+#if ((defined(__GNUC__) \
+ && ((__GNUC__ >= 5) || (__GNUC__ == 4) && (__GNUC_MINOR__ >= 8))) \
+ || (defined(__clang__) \
+ && (__clang_major__ >= 4 \
+ || (__clang_major__ == 3 && __clang_minor__ >= 2))))
+ /* __builtin_bswap16() is available since GCC 4.8 and clang 3.2,
__builtin_bswap32() is available since GCC 4.3,
__builtin_bswap64() is available since GCC 4.3. */
# define _PY_HAVE_BUILTIN_BSWAP
diff --git a/Misc/NEWS.d/next/Build/2020-08-24-18-34-01.bpo-41617.sKKXz7.rst b/Misc/NEWS.d/next/Build/2020-08-24-18-34-01.bpo-41617.sKKXz7.rst
new file mode 100644
index 0000000000000..715eadbee896f
--- /dev/null
+++ b/Misc/NEWS.d/next/Build/2020-08-24-18-34-01.bpo-41617.sKKXz7.rst
@@ -0,0 +1,2 @@
+Fix ``pycore_bitutils.h`` header file to support old clang versions:
+``__builtin_bswap16()`` is not available in LLVM clang 3.0.
More information about the Python-checkins
mailing list