aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Collingbourne <peter@pcc.me.uk>2020-03-23 16:08:18 -0700
committerPeter Collingbourne <peter@pcc.me.uk>2020-03-23 18:23:29 -0700
commit8140f6bcde4256b06ce8bfc85d99db6e13f435e3 (patch)
tree723c2399b1b6094a548f21a690b8795976b9de4e
parent318a0caf9acc8c4ec778ba4f0bbd115a8244bb85 (diff)
downloadllvm-8140f6bcde4256b06ce8bfc85d99db6e13f435e3.zip
llvm-8140f6bcde4256b06ce8bfc85d99db6e13f435e3.tar.gz
llvm-8140f6bcde4256b06ce8bfc85d99db6e13f435e3.tar.bz2
scudo: Create a public include directory. NFCI.
For MTE error reporting we will need to expose interfaces for crash handlers to use to interpret scudo headers and metadata. The intent is that these interfaces will live in scudo/interface.h. Move the existing interface.h into an include/scudo directory and make it independent of the internal headers, so that we will be able to add the interfaces there. Differential Revision: https://reviews.llvm.org/D76648
-rw-r--r--compiler-rt/lib/scudo/standalone/CMakeLists.txt5
-rw-r--r--compiler-rt/lib/scudo/standalone/combined.h3
-rw-r--r--compiler-rt/lib/scudo/standalone/flags.cpp3
-rw-r--r--compiler-rt/lib/scudo/standalone/include/scudo/interface.h (renamed from compiler-rt/lib/scudo/standalone/interface.h)12
-rw-r--r--compiler-rt/lib/scudo/standalone/tests/CMakeLists.txt1
-rw-r--r--llvm/utils/gn/secondary/compiler-rt/lib/scudo/standalone/BUILD.gn5
6 files changed, 17 insertions, 12 deletions
diff --git a/compiler-rt/lib/scudo/standalone/CMakeLists.txt b/compiler-rt/lib/scudo/standalone/CMakeLists.txt
index 91b48b7..bdaeb56 100644
--- a/compiler-rt/lib/scudo/standalone/CMakeLists.txt
+++ b/compiler-rt/lib/scudo/standalone/CMakeLists.txt
@@ -3,7 +3,7 @@ if (COMPILER_RT_HAS_GWP_ASAN)
add_dependencies(scudo_standalone gwp_asan)
endif()
-include_directories(../..)
+include_directories(../.. include)
set(SCUDO_CFLAGS)
@@ -56,7 +56,6 @@ set(SCUDO_HEADERS
flags.h
flags_parser.h
fuchsia.h
- interface.h
internal_defs.h
linux.h
list.h
@@ -78,6 +77,8 @@ set(SCUDO_HEADERS
vector.h
wrappers_c_checks.h
wrappers_c.h
+
+ include/scudo/interface.h
)
set(SCUDO_SOURCES
diff --git a/compiler-rt/lib/scudo/standalone/combined.h b/compiler-rt/lib/scudo/standalone/combined.h
index 1aa9351..1fffea4 100644
--- a/compiler-rt/lib/scudo/standalone/combined.h
+++ b/compiler-rt/lib/scudo/standalone/combined.h
@@ -13,7 +13,6 @@
#include "common.h"
#include "flags.h"
#include "flags_parser.h"
-#include "interface.h"
#include "local_cache.h"
#include "memtag.h"
#include "quarantine.h"
@@ -22,6 +21,8 @@
#include "string_utils.h"
#include "tsd.h"
+#include "scudo/interface.h"
+
#ifdef GWP_ASAN_HOOKS
#include "gwp_asan/guarded_pool_allocator.h"
#include "gwp_asan/optional/backtrace.h"
diff --git a/compiler-rt/lib/scudo/standalone/flags.cpp b/compiler-rt/lib/scudo/standalone/flags.cpp
index dd9f050..de5153b 100644
--- a/compiler-rt/lib/scudo/standalone/flags.cpp
+++ b/compiler-rt/lib/scudo/standalone/flags.cpp
@@ -9,7 +9,8 @@
#include "flags.h"
#include "common.h"
#include "flags_parser.h"
-#include "interface.h"
+
+#include "scudo/interface.h"
namespace scudo {
diff --git a/compiler-rt/lib/scudo/standalone/interface.h b/compiler-rt/lib/scudo/standalone/include/scudo/interface.h
index e263982..e527d0a 100644
--- a/compiler-rt/lib/scudo/standalone/interface.h
+++ b/compiler-rt/lib/scudo/standalone/include/scudo/interface.h
@@ -1,4 +1,4 @@
-//===-- interface.h ---------------------------------------------*- C++ -*-===//
+//===-- scudo/interface.h ---------------------------------------*- C++ -*-===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
@@ -9,18 +9,16 @@
#ifndef SCUDO_INTERFACE_H_
#define SCUDO_INTERFACE_H_
-#include "internal_defs.h"
-
extern "C" {
-WEAK INTERFACE const char *__scudo_default_options();
+__attribute__((weak)) const char *__scudo_default_options();
// Post-allocation & pre-deallocation hooks.
// They must be thread-safe and not use heap related functions.
-WEAK INTERFACE void __scudo_allocate_hook(void *ptr, size_t size);
-WEAK INTERFACE void __scudo_deallocate_hook(void *ptr);
+__attribute__((weak)) void __scudo_allocate_hook(void *ptr, size_t size);
+__attribute__((weak)) void __scudo_deallocate_hook(void *ptr);
-WEAK INTERFACE void __scudo_print_stats(void);
+void __scudo_print_stats(void);
typedef void (*iterate_callback)(uintptr_t base, size_t size, void *arg);
diff --git a/compiler-rt/lib/scudo/standalone/tests/CMakeLists.txt b/compiler-rt/lib/scudo/standalone/tests/CMakeLists.txt
index e29f158..78c297a 100644
--- a/compiler-rt/lib/scudo/standalone/tests/CMakeLists.txt
+++ b/compiler-rt/lib/scudo/standalone/tests/CMakeLists.txt
@@ -10,6 +10,7 @@ set(SCUDO_UNITTEST_CFLAGS
-I${COMPILER_RT_SOURCE_DIR}/include
-I${COMPILER_RT_SOURCE_DIR}/lib
-I${COMPILER_RT_SOURCE_DIR}/lib/scudo/standalone
+ -I${COMPILER_RT_SOURCE_DIR}/lib/scudo/standalone/include
-DGTEST_HAS_RTTI=0
-DSCUDO_DEBUG=1
# Extra flags for the C++ tests
diff --git a/llvm/utils/gn/secondary/compiler-rt/lib/scudo/standalone/BUILD.gn b/llvm/utils/gn/secondary/compiler-rt/lib/scudo/standalone/BUILD.gn
index 88b820a..2cb5613 100644
--- a/llvm/utils/gn/secondary/compiler-rt/lib/scudo/standalone/BUILD.gn
+++ b/llvm/utils/gn/secondary/compiler-rt/lib/scudo/standalone/BUILD.gn
@@ -88,7 +88,10 @@ source_set("cxx_wrapper_sources") {
}
config("scudo_config") {
- include_dirs = [ "//compiler-rt/lib/scudo/standalone" ]
+ include_dirs = [
+ "//compiler-rt/lib/scudo/standalone",
+ "//compiler-rt/lib/scudo/standalone/include",
+ ]
if (current_os == "android") {
cflags = [ "-fno-emulated-tls" ]
}