Summary: Combine few relatively small changes into one: - implement internal_ptrace() and internal_clone() for NetBSD - add support for stoptheworld based on the ptrace(2) API - define COMPILER_RT_HAS_LSAN for NetBSD - enable tests for NetBSD/amd64 Inspired by the original implementation by Christos Zoulas in netbsd/src for GCC. The implementation is in theory CPU independent through well defined macros across all NetBSD ports, however only the x86_64 version was tested. Reviewers: mgorny, dvyukov, vitalybuka, joerg, jfb Reviewed By: vitalybuka Subscribers: dexonsmith, jfb, srhines, kubamracek, llvm-commits, christos Tags: #llvm Differential Revision: https://reviews.llvm.org/D64057 llvm-svn: 365735
33 lines
1.0 KiB
C++
33 lines
1.0 KiB
C++
//=-- lsan_linux.cc -------------------------------------------------------===//
|
|
//
|
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
// See https://llvm.org/LICENSE.txt for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
// This file is a part of LeakSanitizer. Linux/NetBSD-specific code.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#include "sanitizer_common/sanitizer_platform.h"
|
|
|
|
#if SANITIZER_LINUX || SANITIZER_NETBSD
|
|
|
|
#include "lsan_allocator.h"
|
|
|
|
namespace __lsan {
|
|
|
|
static THREADLOCAL u32 current_thread_tid = kInvalidTid;
|
|
u32 GetCurrentThread() { return current_thread_tid; }
|
|
void SetCurrentThread(u32 tid) { current_thread_tid = tid; }
|
|
|
|
static THREADLOCAL AllocatorCache allocator_cache;
|
|
AllocatorCache *GetAllocatorCache() { return &allocator_cache; }
|
|
|
|
void ReplaceSystemMalloc() {}
|
|
|
|
} // namespace __lsan
|
|
|
|
#endif // SANITIZER_LINUX || SANITIZER_NETBSD
|