[PATCH] D130063: [Driver] Enable sanitizers on FreeBSD AArch64

2022-07-19 Thread Andrew Turner via Phabricator via cfe-commits
andrew created this revision.
andrew added reviewers: Sanitizers, emaste, dim, arichardson.
Herald added a subscriber: kristof.beyls.
Herald added a project: All.
andrew requested review of this revision.
Herald added subscribers: cfe-commits, MaskRay.
Herald added a project: clang.

These sanitizers have been ported and tested to work on AArch64.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D130063

Files:
  clang/lib/Driver/ToolChains/FreeBSD.cpp


Index: clang/lib/Driver/ToolChains/FreeBSD.cpp
===
--- clang/lib/Driver/ToolChains/FreeBSD.cpp
+++ clang/lib/Driver/ToolChains/FreeBSD.cpp
@@ -487,12 +487,14 @@
   Res |= SanitizerKind::PointerCompare;
   Res |= SanitizerKind::PointerSubtract;
   Res |= SanitizerKind::Vptr;
-  if (IsX86_64 || IsMIPS64) {
+  if (IsAArch64 || IsX86_64 || IsMIPS64) {
 Res |= SanitizerKind::Leak;
 Res |= SanitizerKind::Thread;
   }
   if (IsX86 || IsX86_64) {
 Res |= SanitizerKind::Function;
+  }
+  if (IsAArch64 || IsX86 || IsX86_64) {
 Res |= SanitizerKind::SafeStack;
 Res |= SanitizerKind::Fuzzer;
 Res |= SanitizerKind::FuzzerNoLink;
@@ -500,8 +502,6 @@
   if (IsAArch64 || IsX86_64) {
 Res |= SanitizerKind::KernelAddress;
 Res |= SanitizerKind::KernelMemory;
-  }
-  if (IsX86_64) {
 Res |= SanitizerKind::Memory;
   }
   return Res;


Index: clang/lib/Driver/ToolChains/FreeBSD.cpp
===
--- clang/lib/Driver/ToolChains/FreeBSD.cpp
+++ clang/lib/Driver/ToolChains/FreeBSD.cpp
@@ -487,12 +487,14 @@
   Res |= SanitizerKind::PointerCompare;
   Res |= SanitizerKind::PointerSubtract;
   Res |= SanitizerKind::Vptr;
-  if (IsX86_64 || IsMIPS64) {
+  if (IsAArch64 || IsX86_64 || IsMIPS64) {
 Res |= SanitizerKind::Leak;
 Res |= SanitizerKind::Thread;
   }
   if (IsX86 || IsX86_64) {
 Res |= SanitizerKind::Function;
+  }
+  if (IsAArch64 || IsX86 || IsX86_64) {
 Res |= SanitizerKind::SafeStack;
 Res |= SanitizerKind::Fuzzer;
 Res |= SanitizerKind::FuzzerNoLink;
@@ -500,8 +502,6 @@
   if (IsAArch64 || IsX86_64) {
 Res |= SanitizerKind::KernelAddress;
 Res |= SanitizerKind::KernelMemory;
-  }
-  if (IsX86_64) {
 Res |= SanitizerKind::Memory;
   }
   return Res;
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D130063: [Driver] Enable sanitizers on FreeBSD AArch64

2022-07-19 Thread Andrew Turner via Phabricator via cfe-commits
andrew added a comment.

No tests, but D125883 , D125758 
, and D125873 
 need to be committed first.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D130063/new/

https://reviews.llvm.org/D130063

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D74765: [compiler-rt] Addd FreeBSD arm64 sanitizer support

2022-05-17 Thread Andrew Turner via Phabricator via cfe-commits
andrew abandoned this revision.
andrew added a comment.
Herald added a project: All.

Replaced with D125756  D125757 
 D125758 


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D74765/new/

https://reviews.llvm.org/D74765

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D127393: [Driver] Don't add -lresolv on FreeBSD

2022-06-13 Thread Andrew Turner via Phabricator via cfe-commits
andrew updated this revision to Diff 436338.
andrew added a comment.

Update the comment


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D127393/new/

https://reviews.llvm.org/D127393

Files:
  clang/lib/Driver/ToolChains/CommonArgs.cpp
  clang/test/Driver/sanitizer-ld.c


Index: clang/test/Driver/sanitizer-ld.c
===
--- clang/test/Driver/sanitizer-ld.c
+++ clang/test/Driver/sanitizer-ld.c
@@ -107,7 +107,6 @@
 // CHECK-ASAN-FREEBSD: "--export-dynamic"
 // CHECK-ASAN-FREEBSD: "-lpthread"
 // CHECK-ASAN-FREEBSD: "-lrt"
-// CHECK-ASAN-FREEBSD: "-lresolv"
 
 // RUN: %clang -### %s 2>&1 \
 // RUN: --target=i386-unknown-freebsd -fuse-ld=ld -fsanitize=address \
Index: clang/lib/Driver/ToolChains/CommonArgs.cpp
===
--- clang/lib/Driver/ToolChains/CommonArgs.cpp
+++ clang/lib/Driver/ToolChains/CommonArgs.cpp
@@ -838,8 +838,8 @@
   TC.getTriple().isOSNetBSD() ||
   TC.getTriple().isOSOpenBSD())
 CmdArgs.push_back("-lexecinfo");
-  // There is no libresolv on Android.
-  if (!TC.getTriple().isAndroid())
+  // There is no libresolv on Android or FreeBSD.
+  if (!TC.getTriple().isAndroid() && !TC.getTriple().isOSFreeBSD())
 CmdArgs.push_back("-lresolv");
 }
 


Index: clang/test/Driver/sanitizer-ld.c
===
--- clang/test/Driver/sanitizer-ld.c
+++ clang/test/Driver/sanitizer-ld.c
@@ -107,7 +107,6 @@
 // CHECK-ASAN-FREEBSD: "--export-dynamic"
 // CHECK-ASAN-FREEBSD: "-lpthread"
 // CHECK-ASAN-FREEBSD: "-lrt"
-// CHECK-ASAN-FREEBSD: "-lresolv"
 
 // RUN: %clang -### %s 2>&1 \
 // RUN: --target=i386-unknown-freebsd -fuse-ld=ld -fsanitize=address \
Index: clang/lib/Driver/ToolChains/CommonArgs.cpp
===
--- clang/lib/Driver/ToolChains/CommonArgs.cpp
+++ clang/lib/Driver/ToolChains/CommonArgs.cpp
@@ -838,8 +838,8 @@
   TC.getTriple().isOSNetBSD() ||
   TC.getTriple().isOSOpenBSD())
 CmdArgs.push_back("-lexecinfo");
-  // There is no libresolv on Android.
-  if (!TC.getTriple().isAndroid())
+  // There is no libresolv on Android or FreeBSD.
+  if (!TC.getTriple().isAndroid() && !TC.getTriple().isOSFreeBSD())
 CmdArgs.push_back("-lresolv");
 }
 
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D127393: [Driver] Don't add -lresolv on FreeBSD

2022-06-13 Thread Andrew Turner via Phabricator via cfe-commits
andrew added a comment.

I'll leave it to someone else to get non-FreeBSD working as it's unlikely I'll 
have time to fix them in the hear future.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D127393/new/

https://reviews.llvm.org/D127393

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D127393: [Driver] Don't add -lresolv on FreeBSD

2022-06-09 Thread Andrew Turner via Phabricator via cfe-commits
andrew created this revision.
andrew added reviewers: kda, vitalybuka, eugenis, MaskRay.
Herald added subscribers: StephenFan, krytarowski, arichardson, emaste.
Herald added a project: All.
andrew requested review of this revision.
Herald added a project: clang.
Herald added a subscriber: cfe-commits.

There is no libresolv on FreeBSD. This fixes the sanitizers on
FreeBSD after https://reviews.llvm.org/D127145


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D127393

Files:
  clang/lib/Driver/ToolChains/CommonArgs.cpp
  clang/test/Driver/sanitizer-ld.c


Index: clang/test/Driver/sanitizer-ld.c
===
--- clang/test/Driver/sanitizer-ld.c
+++ clang/test/Driver/sanitizer-ld.c
@@ -107,7 +107,6 @@
 // CHECK-ASAN-FREEBSD: "--export-dynamic"
 // CHECK-ASAN-FREEBSD: "-lpthread"
 // CHECK-ASAN-FREEBSD: "-lrt"
-// CHECK-ASAN-FREEBSD: "-lresolv"
 
 // RUN: %clang -### %s 2>&1 \
 // RUN: --target=i386-unknown-freebsd -fuse-ld=ld -fsanitize=address \
Index: clang/lib/Driver/ToolChains/CommonArgs.cpp
===
--- clang/lib/Driver/ToolChains/CommonArgs.cpp
+++ clang/lib/Driver/ToolChains/CommonArgs.cpp
@@ -839,7 +839,7 @@
   TC.getTriple().isOSOpenBSD())
 CmdArgs.push_back("-lexecinfo");
   // There is no libresolv on Android.
-  if (!TC.getTriple().isAndroid())
+  if (!TC.getTriple().isAndroid() && !TC.getTriple().isOSFreeBSD())
 CmdArgs.push_back("-lresolv");
 }
 


Index: clang/test/Driver/sanitizer-ld.c
===
--- clang/test/Driver/sanitizer-ld.c
+++ clang/test/Driver/sanitizer-ld.c
@@ -107,7 +107,6 @@
 // CHECK-ASAN-FREEBSD: "--export-dynamic"
 // CHECK-ASAN-FREEBSD: "-lpthread"
 // CHECK-ASAN-FREEBSD: "-lrt"
-// CHECK-ASAN-FREEBSD: "-lresolv"
 
 // RUN: %clang -### %s 2>&1 \
 // RUN: --target=i386-unknown-freebsd -fuse-ld=ld -fsanitize=address \
Index: clang/lib/Driver/ToolChains/CommonArgs.cpp
===
--- clang/lib/Driver/ToolChains/CommonArgs.cpp
+++ clang/lib/Driver/ToolChains/CommonArgs.cpp
@@ -839,7 +839,7 @@
   TC.getTriple().isOSOpenBSD())
 CmdArgs.push_back("-lexecinfo");
   // There is no libresolv on Android.
-  if (!TC.getTriple().isAndroid())
+  if (!TC.getTriple().isAndroid() && !TC.getTriple().isOSFreeBSD())
 CmdArgs.push_back("-lresolv");
 }
 
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D74765: [compiler-rt] Addd FreeBSD arm64 sanitizer support

2020-02-18 Thread Andrew Turner via Phabricator via cfe-commits
andrew created this revision.
andrew added a reviewer: Sanitizers.
Herald added subscribers: llvm-commits, cfe-commits, hiraditya, kristof.beyls, 
krytarowski, arichardson, dberris, emaste.
Herald added projects: clang, Sanitizers, LLVM.

Add support for asan, msan, and tsan on FreeBSD on aarch64.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D74765

Files:
  clang/lib/Driver/ToolChains/FreeBSD.cpp
  compiler-rt/lib/asan/asan_mapping.h
  compiler-rt/lib/msan/msan.h
  compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp
  compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp
  compiler-rt/lib/sanitizer_common/sanitizer_syscall_generic.inc
  compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp
  compiler-rt/lib/tsan/rtl/tsan_platform_linux.cpp
  compiler-rt/test/fuzzer/lit.cfg.py
  compiler-rt/test/sanitizer_common/TestCases/FreeBSD/capsicum.cpp
  compiler-rt/test/sanitizer_common/TestCases/Posix/crypt.cpp
  llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
  llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp

Index: llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
===
--- llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
+++ llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
@@ -416,6 +416,14 @@
   0x3800,  // OriginBase
 };
 
+// aarch64 FreeBSD
+static const MemoryMapParams FreeBSD_AArch64_MemoryMapParams = {
+  0x18000,  // AndMask
+  0x04000,  // XorMask
+  0x02000,  // ShadowBase
+  0x07000,  // OriginBase
+};
+
 // x86_64 NetBSD
 static const MemoryMapParams NetBSD_X86_64_MemoryMapParams = {
   0,   // AndMask
@@ -449,6 +457,12 @@
   &FreeBSD_X86_64_MemoryMapParams,
 };
 
+static const PlatformMemoryMapParams FreeBSD_ARM_MemoryMapParams = {
+  nullptr,
+  &FreeBSD_AArch64_MemoryMapParams,
+};
+
+
 static const PlatformMemoryMapParams NetBSD_X86_MemoryMapParams = {
   nullptr,
   &NetBSD_X86_64_MemoryMapParams,
@@ -895,6 +909,9 @@
   case Triple::x86:
 MapParams = FreeBSD_X86_MemoryMapParams.bits32;
 break;
+  case Triple::aarch64:
+MapParams = FreeBSD_ARM_MemoryMapParams.bits64;
+break;
   default:
 report_fatal_error("unsupported architecture");
 }
Index: llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
===
--- llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
+++ llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
@@ -105,6 +105,7 @@
 static const uint64_t kAArch64_ShadowOffset64 = 1ULL << 36;
 static const uint64_t kFreeBSD_ShadowOffset32 = 1ULL << 30;
 static const uint64_t kFreeBSD_ShadowOffset64 = 1ULL << 46;
+static const uint64_t kFreeBSD_AArch64_ShadowOffset64 = 1ULL << 47;
 static const uint64_t kNetBSD_ShadowOffset32 = 1ULL << 30;
 static const uint64_t kNetBSD_ShadowOffset64 = 1ULL << 46;
 static const uint64_t kNetBSDKasan_ShadowOffset64 = 0xdfff9000;
@@ -482,6 +483,8 @@
   Mapping.Offset = kPPC64_ShadowOffset64;
 else if (IsSystemZ)
   Mapping.Offset = kSystemZ_ShadowOffset64;
+else if (IsFreeBSD && IsAArch64)
+  Mapping.Offset = kFreeBSD_AArch64_ShadowOffset64;
 else if (IsFreeBSD && !IsMIPS64)
   Mapping.Offset = kFreeBSD_ShadowOffset64;
 else if (IsNetBSD) {
Index: compiler-rt/test/sanitizer_common/TestCases/Posix/crypt.cpp
===
--- compiler-rt/test/sanitizer_common/TestCases/Posix/crypt.cpp
+++ compiler-rt/test/sanitizer_common/TestCases/Posix/crypt.cpp
@@ -6,7 +6,11 @@
 #include 
 #include 
 #include 
+#ifdef __FreeBSD__
+#include 
+#else
 #include 
+#endif
 
 int
 main (int argc, char** argv)
Index: compiler-rt/test/sanitizer_common/TestCases/FreeBSD/capsicum.cpp
===
--- compiler-rt/test/sanitizer_common/TestCases/FreeBSD/capsicum.cpp
+++ compiler-rt/test/sanitizer_common/TestCases/FreeBSD/capsicum.cpp
@@ -11,7 +11,7 @@
 #include 
 
 void test_cap_ioctls() {
-  cap_rights_t rights;
+  cap_rights_t rights = {0};
   unsigned long ncmds[] = {TIOCGETA, TIOCGWINSZ, FIODTYPE};
   unsigned long rcmds = 0;
   cap_rights_t *rptr = cap_rights_init(&rights, CAP_IOCTL, CAP_READ);
Index: compiler-rt/test/fuzzer/lit.cfg.py
===
--- compiler-rt/test/fuzzer/lit.cfg.py
+++ compiler-rt/test/fuzzer/lit.cfg.py
@@ -27,7 +27,6 @@
 
 # LeakSanitizer is not supported on OSX or Windows right now.
 if (sys.platform.startswith('darwin') or
-sys.platform.startswith('freebsd') or
 sys.platform.startswith('win')):
   lit_config.note('lsan feature unavailable')
 else:
Index: compiler-rt/lib/tsan/rtl/tsan_platform_linux.cpp
===
--- compiler-rt/lib/tsan/rtl/tsan_platform_linu

[PATCH] D74765: [compiler-rt] Addd FreeBSD arm64 sanitizer support

2020-02-18 Thread Andrew Turner via Phabricator via cfe-commits
andrew marked an inline comment as done.
andrew added inline comments.



Comment at: compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp:451-463
+# if defined(__aarch64__) || defined(__mips__)
+// Variant I
+//
+// dtv = segbase[0];
+// dtv[2] = base of TLS block of the main program
+void **dtv = (void**) segbase[0];
+if ((uptr) dtv[1] >= 2) {

This is from D49942


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D74765/new/

https://reviews.llvm.org/D74765



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D74765: [compiler-rt] Addd FreeBSD arm64 sanitizer support

2020-02-18 Thread Andrew Turner via Phabricator via cfe-commits
andrew updated this revision to Diff 245152.
andrew marked an inline comment as done.
andrew added a comment.

Remove unintended changes


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D74765/new/

https://reviews.llvm.org/D74765

Files:
  compiler-rt/lib/asan/asan_mapping.h
  compiler-rt/lib/msan/msan.h
  compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp
  compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp
  compiler-rt/lib/sanitizer_common/sanitizer_syscall_generic.inc
  compiler-rt/lib/tsan/rtl/tsan_platform_linux.cpp

Index: compiler-rt/lib/tsan/rtl/tsan_platform_linux.cpp
===
--- compiler-rt/lib/tsan/rtl/tsan_platform_linux.cpp
+++ compiler-rt/lib/tsan/rtl/tsan_platform_linux.cpp
@@ -386,7 +386,11 @@
 #ifdef __powerpc__
 # define LONG_JMP_SP_ENV_SLOT 0
 #elif SANITIZER_FREEBSD
-# define LONG_JMP_SP_ENV_SLOT 2
+# ifdef __aarch64__
+#  define LONG_JMP_SP_ENV_SLOT 1
+# else
+#  define LONG_JMP_SP_ENV_SLOT 2
+#endif
 #elif SANITIZER_NETBSD
 # define LONG_JMP_SP_ENV_SLOT 6
 #elif SANITIZER_LINUX
Index: compiler-rt/lib/sanitizer_common/sanitizer_syscall_generic.inc
===
--- compiler-rt/lib/sanitizer_common/sanitizer_syscall_generic.inc
+++ compiler-rt/lib/sanitizer_common/sanitizer_syscall_generic.inc
@@ -19,7 +19,7 @@
 # define SYSCALL(name) __NR_ ## name
 #endif
 
-#if defined(__x86_64__) && (SANITIZER_FREEBSD || SANITIZER_MAC)
+#if (defined(__x86_64__) || defined(__aarch64__)) && (SANITIZER_FREEBSD || SANITIZER_MAC)
 # define internal_syscall __syscall
 # else
 # define internal_syscall syscall
Index: compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp
===
--- compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp
+++ compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp
@@ -381,7 +381,9 @@
 #if SANITIZER_FREEBSD
 static void **ThreadSelfSegbase() {
   void **segbase = 0;
-# if defined(__i386__)
+# if defined(__aarch64__)
+  __asm __volatile("mrs %0, tpidr_el0" : "=r" (segbase));
+# elif defined(__i386__)
   // sysarch(I386_GET_GSBASE, segbase);
   __asm __volatile("mov %%gs:0, %0" : "=r" (segbase));
 # elif defined(__x86_64__)
@@ -406,7 +408,10 @@
 uptr ThreadSelf() {
   return (uptr)ThreadSelfTlsTcb()->tcb_pthread;
 }
+#endif  // SANITIZER_NETBSD
 
+#if SANITIZER_NETBSD || (SANITIZER_FREEBSD && \
+(defined(__aarch64__) || defined(__mips__)))
 int GetSizeFromHdr(struct dl_phdr_info *info, size_t size, void *data) {
   const Elf_Phdr *hdr = info->dlpi_phdr;
   const Elf_Phdr *last_hdr = hdr + info->dlpi_phnum;
@@ -419,7 +424,8 @@
   }
   return 0;
 }
-#endif  // SANITIZER_NETBSD
+#endif  // SANITIZER_NETBSD || (SANITIZER_FREEBSD && (defined(__aarch64__) ||
+// defined(__mips__)))
 
 #if !SANITIZER_GO
 static void GetTls(uptr *addr, uptr *size) {
@@ -442,6 +448,22 @@
   *addr = 0;
   *size = 0;
   if (segbase != 0) {
+# if defined(__aarch64__) || defined(__mips__)
+// Variant I
+//
+// dtv = segbase[0];
+// dtv[2] = base of TLS block of the main program
+void **dtv = (void**) segbase[0];
+if ((uptr) dtv[1] >= 2) {
+  // Find size (p_memsz) of TLS block of the main program.
+  dl_iterate_phdr(GetSizeFromHdr, size);
+
+  if (*size != 0)
+*addr = (uptr) dtv[2];
+}
+# elif defined(__x86_64__) || defined(__i386__)
+// Variant II
+//
 // tcbalign = 16
 // tls_size = round(tls_static_space, tcbalign);
 // dtv = segbase[1];
@@ -449,6 +471,9 @@
 void **dtv = (void**) segbase[1];
 *addr = (uptr) dtv[2];
 *size = (*addr == 0) ? 0 : ((uptr) segbase[0] - (uptr) dtv[2]);
+#else
+#error "unsupported CPU arch"
+#endif
   }
 #elif SANITIZER_NETBSD
   struct tls_tcb * const tcb = ThreadSelfTlsTcb();
Index: compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp
===
--- compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp
+++ compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp
@@ -1334,7 +1334,7 @@
: "memory", "$29" );
   return res;
 }
-#elif defined(__aarch64__)
+#elif defined(__aarch64__) && SANITIZER_LINUX
 uptr internal_clone(int (*fn)(void *), void *child_stack, int flags, void *arg,
 int *parent_tidptr, void *newtls, int *child_tidptr) {
   long long res;
@@ -1734,7 +1734,7 @@
 void internal_join_thread(void *th) {}
 #endif
 
-#if defined(__aarch64__)
+#if defined(__aarch64__) && SANITIZER_LINUX
 // Android headers in the older NDK releases miss this definition.
 struct __sanitizer_esr_context {
   struct _aarch64_ctx head;
@@ -1833,7 +1833,7 @@
   static const uptr FSR_WRITE = 1U << 11;
   uptr fsr = ucontext->uc_mcontext.error_code;
   return fsr & FSR_WRITE ? WRITE : READ;
-#elif defined(__aarch64__)
+#elif defined(__aarch64__) && SANITIZER_LINUX
   sta

[PATCH] D153560: [Clang] Allow C++11 style initialisation of SVE types.

2023-06-26 Thread Andrew Turner via Phabricator via cfe-commits
andrew added a comment.

With this I can build the Arm Compute Library for SVE with clang


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D153560/new/

https://reviews.llvm.org/D153560

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits