Squashed 'third_party/marl/' changes from 13e0eb5222..aa9e85b218

aa9e85b218 Fix build on MacOS

git-subtree-dir: third_party/marl
git-subtree-split: aa9e85b2189d6f5dbba6909275661b37dfb5de69
Change-Id: Iefc45a78618bd71303c331a153b9719e7e2a6f23
diff --git a/src/osfiber_aarch64.c b/src/osfiber_aarch64.c
index 536fab9..9d9a381 100644
--- a/src/osfiber_aarch64.c
+++ b/src/osfiber_aarch64.c
@@ -25,12 +25,15 @@
   target(arg);
 }
 
+// __attribute__((weak)) doesn't work on MacOS.
+#if defined(linux) || defined(__linux) || defined(__linux__)
 // This is needed for HWSAan runtimes that don't have this commit:
 // https://reviews.llvm.org/D149228.
 __attribute__((weak)) void __hwasan_tag_memory(const volatile void *p,
     unsigned char tag, size_t size);
 __attribute((weak)) void *__hwasan_tag_pointer(const volatile void *p,
     unsigned char tag);
+#endif
 
 MARL_EXPORT
 void marl_fiber_set_target(struct marl_fiber_context* ctx,
@@ -38,10 +41,13 @@
                            uint32_t stack_size,
                            void (*target)(void*),
                            void* arg) {
+
+#if defined(linux) || defined(__linux) || defined(__linux__)
   if (__hwasan_tag_memory && __hwasan_tag_pointer) {
     stack = __hwasan_tag_pointer(stack, 0);
     __hwasan_tag_memory(stack, 0, stack_size);
   }
+#endif
   uintptr_t* stack_top = (uintptr_t*)((uint8_t*)(stack) + stack_size);
   ctx->LR = (uintptr_t)&marl_fiber_trampoline;
   ctx->r0 = (uintptr_t)target;