diff options
author | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2012-01-11 08:17:19 +0000 |
---|---|---|
committer | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2012-01-11 08:17:19 +0000 |
commit | 8bcc6b93abafee3cb15e20fda0f1e1d4967bb80e (patch) | |
tree | 6f2dd6d846b212c5da5d620ba79ee47bb1c9a6df | |
parent | a31df5ca61f10154c809d4aa77978628c0c74f76 (diff) | |
download | compiler-rt-8bcc6b93abafee3cb15e20fda0f1e1d4967bb80e.tar.gz compiler-rt-8bcc6b93abafee3cb15e20fda0f1e1d4967bb80e.tar.bz2 compiler-rt-8bcc6b93abafee3cb15e20fda0f1e1d4967bb80e.tar.xz |
Call asan_init from .preinit_array.
Protected by an #ifdef, disabled by default.
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@147932 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/asan/asan_rtl.cc | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/asan/asan_rtl.cc b/lib/asan/asan_rtl.cc index 57dfa2e3..89442468 100644 --- a/lib/asan/asan_rtl.cc +++ b/lib/asan/asan_rtl.cc @@ -494,3 +494,11 @@ void __asan_init() { Report("AddressSanitizer Init done\n"); } } + +#if defined(ASAN_USE_PREINIT_ARRAY) +// On Linux, we force __asan_init to be called before anyone else +// by placing it into .preinit_array section. +// FIXME: do we have anything like this on Mac? +__attribute__((section(".preinit_array"))) + typeof(__asan_init) *__asan_preinit =__asan_init; +#endif |