[compiler-rt] [compiler-rt][sanitizer] some additional Haiku build fixes (PR #172773)

Brad Smith via llvm-commits llvm-commits at lists.llvm.org
Thu Dec 18 04:13:12 PST 2025


https://github.com/brad0 updated https://github.com/llvm/llvm-project/pull/172773

>From 1c1dfc59e3217192b261e88a2809af0931654a6e Mon Sep 17 00:00:00 2001
From: Brad Smith <brad at comstyle.com>
Date: Wed, 17 Dec 2025 20:12:59 -0500
Subject: [PATCH] [compiler-rt][sanitizer] some additional Haiku build fixes

- Correct field type for cookie variable
- Use proper type for __sanitizer_sigset_t on 64-bit archs
---
 compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp          | 2 +-
 .../lib/sanitizer_common/sanitizer_platform_limits_posix.h    | 4 ++++
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp b/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp
index 090b42a920448..b73b84c290086 100644
--- a/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp
@@ -1287,7 +1287,7 @@ uptr GetPageSize() {
 
 uptr ReadBinaryName(/*out*/ char *buf, uptr buf_len) {
 #  if SANITIZER_HAIKU
-  int32_t cookie = 0;
+  int32 cookie = 0;
   image_info info;
   const char *argv0 = "<UNKNOWN>";
   while (get_next_image_info(B_CURRENT_TEAM, &cookie, &info) == B_OK) {
diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h
index 41d60c8d59fbe..c7bac61f286f4 100644
--- a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h
@@ -629,7 +629,11 @@ typedef unsigned long __sanitizer_sigset_t;
 #  elif SANITIZER_APPLE
 typedef unsigned __sanitizer_sigset_t;
 #  elif SANITIZER_HAIKU
+#    if defined(_LP64)
+typedef unsigned long __sanitizer_sigset_t;
+#    else
 typedef unsigned long long __sanitizer_sigset_t;
+#    endif
 #  elif SANITIZER_LINUX
 struct __sanitizer_sigset_t {
   // The size is determined by looking at sizeof of real sigset_t on linux.



More information about the llvm-commits mailing list