--- /dev/null
+iOS preprocessor symbol usage was made compatible with older macOS SDKs.
# endif
#elif defined(__APPLE__)
# include "TargetConditionals.h"
-# if TARGET_OS_IOS
-# if TARGET_OS_SIMULATOR
+// Older macOS SDKs do not define TARGET_OS_*
+# if defined(TARGET_OS_IOS) && TARGET_OS_IOS
+# if defined(TARGET_OS_SIMULATOR) && TARGET_OS_SIMULATOR
# if __x86_64__
PLATFORM_TRIPLET=x86_64-iphonesimulator
# else
# else
PLATFORM_TRIPLET=arm64-iphoneos
# endif
-# elif TARGET_OS_OSX
+// Older macOS SDKs do not define TARGET_OS_OSX
+# elif !defined(TARGET_OS_OSX) || TARGET_OS_OSX
PLATFORM_TRIPLET=darwin
# else
# error unknown Apple platform
#if defined(__APPLE__)
# include <TargetConditionals.h>
+// Older macOS SDKs do not define TARGET_OS_OSX
+# if !defined(TARGET_OS_OSX)
+# define TARGET_OS_OSX 1
+# endif
# if TARGET_OS_OSX
# include <libproc.h>
# include <mach-o/fat.h>
#elif defined(__wasi__)
# define MAX_MARSHAL_STACK_DEPTH 1500
// TARGET_OS_IPHONE covers any non-macOS Apple platform.
-#elif defined(__APPLE__) && TARGET_OS_IPHONE
+// It won't be defined on older macOS SDKs
+#elif defined(__APPLE__) && defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE
# define MAX_MARSHAL_STACK_DEPTH 1500
#else
# define MAX_MARSHAL_STACK_DEPTH 2000