From df21f502fdccec234282bf0a211af979fd23def4 Mon Sep 17 00:00:00 2001 From: Joshua Root Date: Mon, 4 Jan 2021 21:36:58 +1100 Subject: [PATCH] bpo-42692: fix __builtin_available check on older compilers (GH-23873) A compiler that doesn't define `__has_builtin` will error out when it is used on the same line as the check for it. Automerge-Triggered-By: GH:ronaldoussoren --- .../next/Build/2021-01-04-05-07-30.bpo-42692.OO11SN.rst | 1 + Modules/posixmodule.c | 8 +++++++- 2 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 Misc/NEWS.d/next/Build/2021-01-04-05-07-30.bpo-42692.OO11SN.rst diff --git a/Misc/NEWS.d/next/Build/2021-01-04-05-07-30.bpo-42692.OO11SN.rst b/Misc/NEWS.d/next/Build/2021-01-04-05-07-30.bpo-42692.OO11SN.rst new file mode 100644 index 00000000000..91582b945b8 --- /dev/null +++ b/Misc/NEWS.d/next/Build/2021-01-04-05-07-30.bpo-42692.OO11SN.rst @@ -0,0 +1 @@ +Fix __builtin_available check on older compilers. Patch by Joshua Root. diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c index 13e3963bf51..4468fd08e17 100644 --- a/Modules/posixmodule.c +++ b/Modules/posixmodule.c @@ -61,7 +61,13 @@ */ #if defined(__APPLE__) -#if defined(__has_builtin) && __has_builtin(__builtin_available) +#if defined(__has_builtin) +#if __has_builtin(__builtin_available) +#define HAVE_BUILTIN_AVAILABLE 1 +#endif +#endif + +#ifdef HAVE_BUILTIN_AVAILABLE # define HAVE_FSTATAT_RUNTIME __builtin_available(macOS 10.10, iOS 8.0, *) # define HAVE_FACCESSAT_RUNTIME __builtin_available(macOS 10.10, iOS 8.0, *) # define HAVE_FCHMODAT_RUNTIME __builtin_available(macOS 10.10, iOS 8.0, *)