diff options
author | Fangrui Song <maskray@google.com> | 2018-07-01 17:52:41 +0000 |
---|---|---|
committer | Fangrui Song <maskray@google.com> | 2018-07-01 17:52:41 +0000 |
commit | 5f27e0c021137ca4727c7ea370c5f53fb75b9acb (patch) | |
tree | dfb692a3a88f157ec31682b0bdeeeffd12c23f4f /llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp | |
parent | 4d8ec92fb0ad553a4e4046504ee4592f4463d96a (diff) | |
download | bcm5719-llvm-5f27e0c021137ca4727c7ea370c5f53fb75b9acb.tar.gz bcm5719-llvm-5f27e0c021137ca4727c7ea370c5f53fb75b9acb.zip |
[asan] Fix deadlock issue on FreeBSD, caused by use of .preinit_array in rL325240
Summary:
Without this patch,
clang -fsanitize=address -xc =(printf 'int main(){}') -o a; ./a => deadlock in __asan_init>AsanInitInternal>AsanTSDInit>...>__getcontextx_size>_rtld_bind>rlock_acquire(rtld_bind_lock, &lockstate)
libexec/rtld-elf/rtld.c
wlock_acquire(rtld_bind_lock, &lockstate);
if (obj_main->crt_no_init)
preinit_main(); // unresolved PLT functions cannot be called here
lib/libthr/thread/thr_rtld.c
uc_len = __getcontextx_size(); // unresolved PLT function in libthr.so.3
check-xray tests currently rely on .preinit_array so we special case in
xray_init.cc
Subscribers: srhines, kubamracek, krytarowski, delcypher, llvm-commits, #sanitizers
Differential Revision: https://reviews.llvm.org/D48806
llvm-svn: 336067
Diffstat (limited to 'llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp')
0 files changed, 0 insertions, 0 deletions