aboutsummaryrefslogtreecommitdiff
path: root/lib/libtsan/sanitizer_common/sanitizer_linux.cpp
diff options
context:
space:
mode:
authorRajiv Singh <rajivperfect007@gmail.com>2025-10-26 11:12:22 +0100
committerAlex Rønne Petersen <alex@alexrp.com>2025-10-26 11:12:22 +0100
commitfe783d9ff39a31a3b39a7b7bb2c3ffed08b99bf4 (patch)
tree289e9108235defc4e80a1bd3675846e64982a149 /lib/libtsan/sanitizer_common/sanitizer_linux.cpp
parent67c9d57e2735d4ad9846127d2fa140e61b945ee4 (diff)
downloadzig-fe783d9ff39a31a3b39a7b7bb2c3ffed08b99bf4.tar.gz
zig-fe783d9ff39a31a3b39a7b7bb2c3ffed08b99bf4.zip
tsan: fix cross build for FreeBSD by using direct syscalls instead of libsys
This patch can hopefully be dropped in the future; see #24989. closes #24885 closes #24896 Co-authored-by: Alex Rønne Petersen <alex@alexrp.com>
Diffstat (limited to 'lib/libtsan/sanitizer_common/sanitizer_linux.cpp')
-rw-r--r--lib/libtsan/sanitizer_common/sanitizer_linux.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/lib/libtsan/sanitizer_common/sanitizer_linux.cpp b/lib/libtsan/sanitizer_common/sanitizer_linux.cpp
index 16caf699a4..acb59dfd6b 100644
--- a/lib/libtsan/sanitizer_common/sanitizer_linux.cpp
+++ b/lib/libtsan/sanitizer_common/sanitizer_linux.cpp
@@ -174,8 +174,6 @@ const int FUTEX_WAKE_PRIVATE = FUTEX_WAKE | FUTEX_PRIVATE_FLAG;
# if SANITIZER_FREEBSD
# define SANITIZER_USE_GETENTROPY 1
-extern "C" void *__sys_mmap(void *addr, size_t len, int prot, int flags, int fd,
- off_t offset);
# endif
namespace __sanitizer {
@@ -265,9 +263,8 @@ ScopedBlockSignals::~ScopedBlockSignals() { SetSigProcMask(&saved_, nullptr); }
# if !SANITIZER_S390
uptr internal_mmap(void *addr, uptr length, int prot, int flags, int fd,
u64 offset) {
-# if SANITIZER_FREEBSD
- return (uptr)__sys_mmap(addr, length, prot, flags, fd, offset);
-# elif SANITIZER_LINUX_USES_64BIT_SYSCALLS
+ /* zig patch: use direct syscall for freebsd mmap */
+# if SANITIZER_FREEBSD || SANITIZER_LINUX_USES_64BIT_SYSCALLS
return internal_syscall(SYSCALL(mmap), (uptr)addr, length, prot, flags, fd,
offset);
# else
@@ -942,6 +939,11 @@ int internal_fork() {
}
# if SANITIZER_FREEBSD
+int internal_sigaction(int signum, const void *act, void *oldact) {
+ /* zig patch: use direct syscall for freebsd mmap */
+ return internal_syscall(SYSCALL(sigaction), signum, (uptr)act, (uptr)oldact);
+}
+
int internal_sysctl(const int *name, unsigned int namelen, void *oldp,
uptr *oldlenp, const void *newp, uptr newlen) {
return internal_syscall(SYSCALL(__sysctl), name, namelen, oldp,