On 10/18/20 10:00 PM, Iain Sandoe wrote:
Hi
Hello.
The latest upstream merge for libsanitizer introduces code that makes
use of some macro values that are not available in SDKs for versions
of Darwin <= 15 (macOS 10.11).
[TBH, I am a bit surprised by this, I was under the impression that upstream
supported versions back to Darwin11 / macOS 10.7]
Add definitions for these where they are not present.
Thank you for the fix. However, I've just checked the upstream changes, and I
can't
find a commit that would touch the mentioned macros.
tested on Darwin9 -> Darwin19 and x86_64-linux
pushed to master
thanks
Iain
P.S. I will also add this change to LOCAL_PATCHES.
I've just done that.
Thanks,
Martin
libsanitizer/ChangeLog:
* sanitizer_common/sanitizer_mac.h: Ensure that TARGET_OS_
macros are defined where the macOS SDK does not contain
them.
(TARGET_OS_OSX, TARGET_OS_IOS, TARGET_OS_TV, TARGET_OS_WATCH):
Define where needed.
---
libsanitizer/sanitizer_common/sanitizer_mac.h | 20 +++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/libsanitizer/sanitizer_common/sanitizer_mac.h
b/libsanitizer/sanitizer_common/sanitizer_mac.h
index 023071e4f11..a2c42b3bf4f 100644
--- a/libsanitizer/sanitizer_common/sanitizer_mac.h
+++ b/libsanitizer/sanitizer_common/sanitizer_mac.h
@@ -14,6 +14,26 @@
#include "sanitizer_common.h"
#include "sanitizer_platform.h"
+
+/* TARGET_OS_OSX is not present in SDKs before Darwin16 (macOS 10.12) use
+ TARGET_OS_MAC (we have no support for iOS in any form for these versions,
+ so there's no ambiguity). */
+#if !defined(TARGET_OS_OSX) && TARGET_OS_MAC
+# define TARGET_OS_OSX 1
+#endif
+
+/* Other TARGET_OS_xxx are not present on earlier versions, define them to
+ 0 (we have no support for them; they are not valid targets anyway). */
+#ifndef TARGET_OS_IOS
+#define TARGET_OS_IOS 0
+#endif
+#ifndef TARGET_OS_TV
+#define TARGET_OS_TV 0
+#endif
+#ifndef TARGET_OS_WATCH
+#define TARGET_OS_WATCH 0
+#endif
+
#if SANITIZER_MAC
#include "sanitizer_posix.h"