[scudo] Add default implementations for weak functions

Summary:
This is in preparation for platforms where `SANITIZER_SUPPORTS_WEAK_HOOKS` is 0.
They require a default implementation.

Reviewers: alekseyshl

Reviewed By: alekseyshl

Subscribers: delcypher, llvm-commits, #sanitizers

Differential Revision: https://reviews.llvm.org/D42557

llvm-svn: 323795
This commit is contained in:
Kostya Kortchinsky 2018-01-30 17:59:49 +00:00
parent 1d53101387
commit 4223af42b8
3 changed files with 22 additions and 2 deletions

View File

@ -736,6 +736,18 @@ uptr __sanitizer_get_allocated_size(const void *Ptr) {
return Instance.getUsableSize(Ptr); return Instance.getUsableSize(Ptr);
} }
#if !SANITIZER_SUPPORTS_WEAK_HOOKS
SANITIZER_INTERFACE_WEAK_DEF(void, __sanitizer_malloc_hook,
void *Ptr, uptr Size) {
(void)Ptr;
(void)Size;
}
SANITIZER_INTERFACE_WEAK_DEF(void, __sanitizer_free_hook, void *Ptr) {
(void)Ptr;
}
#endif
// Interface functions // Interface functions
void __scudo_set_rss_limit(uptr LimitMb, s32 HardLimit) { void __scudo_set_rss_limit(uptr LimitMb, s32 HardLimit) {

View File

@ -12,13 +12,12 @@
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
#include "scudo_flags.h" #include "scudo_flags.h"
#include "scudo_interface_internal.h"
#include "scudo_utils.h" #include "scudo_utils.h"
#include "sanitizer_common/sanitizer_flags.h" #include "sanitizer_common/sanitizer_flags.h"
#include "sanitizer_common/sanitizer_flag_parser.h" #include "sanitizer_common/sanitizer_flag_parser.h"
SANITIZER_INTERFACE_WEAK_DEF(const char*, __scudo_default_options, void);
namespace __scudo { namespace __scudo {
static Flags ScudoFlags; // Use via getFlags(). static Flags ScudoFlags; // Use via getFlags().
@ -119,3 +118,9 @@ Flags *getFlags() {
} }
} // namespace __scudo } // namespace __scudo
#if !SANITIZER_SUPPORTS_WEAK_HOOKS
SANITIZER_INTERFACE_WEAK_DEF(const char*, __scudo_default_options, void) {
return "";
}
#endif

View File

@ -20,6 +20,9 @@ using __sanitizer::uptr;
using __sanitizer::s32; using __sanitizer::s32;
extern "C" { extern "C" {
SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE
const char* __scudo_default_options();
SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_INTERFACE_ATTRIBUTE
void __scudo_set_rss_limit(uptr LimitMb, s32 HardLimit); void __scudo_set_rss_limit(uptr LimitMb, s32 HardLimit);
} // extern "C" } // extern "C"