aboutsummaryrefslogtreecommitdiffstats
path: root/file.c
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2019-06-08 19:40:55 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2019-06-08 19:40:55 +0900
commit27a59ca2c846e14ec6dbcb86fd2d6f65399ff28d (patch)
treea8326d8914a11022f708f51237de504ea700ba9c /file.c
parent5a840517ae738357d3d5afdcef61461e3969edfa (diff)
downloadruby-27a59ca2c846e14ec6dbcb86fd2d6f65399ff28d.tar.gz
file.c: fix compile error with MacPorts gcc
With the SDK of Xcode 10.2.1, `API_AVAILABLE` and so on macros are not defined in <os/availability.h> when using a compiler other than clang (which has `__has_feature` and `__has_attribute`), but `__API_AVAILABLE` macro and so on are defined, which are also defined in <Availability.h>. I suspect this is a bug of the SDK.
Diffstat (limited to 'file.c')
-rw-r--r--file.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/file.c b/file.c
index a04fe538e5..3da358af1f 100644
--- a/file.c
+++ b/file.c
@@ -20,6 +20,14 @@
#include <wchar.h>
#endif
#ifdef __APPLE__
+# if !(defined(__has_feature) && defined(__has_attribute))
+/* Maybe a bug in SDK of Xcode 10.2.1 */
+/* In this condition, <os/availability.h> does not define
+ * API_AVAILABLE and similar, but __API_AVAILABLE and similar which
+ * are defined in <Availability.h> */
+# define API_AVAILABLE(...)
+# define API_DEPRECATED(...)
+# endif
#include <CoreFoundation/CFString.h>
#endif