]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-41617: Fix pycore_byteswap.h to support clang 3.0 (GH-22042) (GH-22044)
authorVictor Stinner <vstinner@python.org>
Tue, 1 Sep 2020 18:54:37 +0000 (20:54 +0200)
committerGitHub <noreply@github.com>
Tue, 1 Sep 2020 18:54:37 +0000 (20:54 +0200)
__builtin_bswap16() is not available in LLVM clang 3.0.

(cherry picked from commit e6905e4c82cc05897dc1bf5ab2b5b94b2b043a7f)

Include/internal/pycore_byteswap.h
Misc/NEWS.d/next/Build/2020-08-24-18-34-01.bpo-41617.sKKXz7.rst [new file with mode: 0644]

index 5e64704a004c82a8296a7356d68919ab76485bf9..975e150dd91bb339ae367861faabf5948d5116fc 100644 (file)
@@ -15,10 +15,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 (file)
index 0000000..9e4bc60
--- /dev/null
@@ -0,0 +1,2 @@
+Fix ``pycore_byteswap.h`` header file to support old clang versions:
+``__builtin_bswap16()`` is not available in LLVM clang 3.0.