diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2013-12-31 09:38:23 +0000 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2013-12-31 09:38:23 +0000 |
| commit | 5b57ea7a24844d5097302551aa76430b392577c4 (patch) | |
| tree | 2dcaeb9da007c59fc7d7ee2ccd3e1e77a4e44a0b | |
| parent | 2e3ecb660ad8d66fffb3a86628f3c952e10f6963 (diff) | |
| download | bcm5719-llvm-5b57ea7a24844d5097302551aa76430b392577c4.tar.gz bcm5719-llvm-5b57ea7a24844d5097302551aa76430b392577c4.zip | |
tsan: fix Go build
Currently fails with:
gotsan.cc:7686:40: error: the address of 'int __sanitizer_pthread_attr_getstack(void*, void**, size_t*)' will always evaluate as 'true' [-Werror=address]
llvm-svn: 198261
| -rw-r--r-- | compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cc | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cc b/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cc index 9a6dfe29653..0b951bd3eca 100644 --- a/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cc +++ b/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cc @@ -33,20 +33,24 @@ #include <link.h> #endif +#ifndef SANITIZER_GO // This function is defined elsewhere if we intercepted pthread_attr_getstack. extern "C" SANITIZER_WEAK_ATTRIBUTE int __sanitizer_pthread_attr_getstack(void *attr, void **addr, size_t *size); static int my_pthread_attr_getstack(void *attr, void **addr, size_t *size) { +# if (__sanitizer_pthread_attr_getstack) return __sanitizer_pthread_attr_getstack((pthread_attr_t *)attr, addr, size); return pthread_attr_getstack((pthread_attr_t *)attr, addr, size); } +#endif // #ifndef SANITIZER_GO namespace __sanitizer { +#ifndef SANITIZER_GO void GetThreadStackTopAndBottom(bool at_initialization, uptr *stack_top, uptr *stack_bottom) { static const uptr kMaxThreadStackSize = 1 << 30; // 1Gb @@ -93,6 +97,7 @@ void GetThreadStackTopAndBottom(bool at_initialization, uptr *stack_top, *stack_top = (uptr)stackaddr + stacksize; *stack_bottom = (uptr)stackaddr; } +#endif // #ifndef SANITIZER_GO // Does not compile for Go because dlsym() requires -ldl #ifndef SANITIZER_GO @@ -278,6 +283,7 @@ void GetThreadStackAndTls(bool main, uptr *stk_addr, uptr *stk_size, #endif // SANITIZER_GO } +#ifndef SANITIZER_GO void AdjustStackSizeLinux(void *attr_) { pthread_attr_t *attr = (pthread_attr_t *)attr_; uptr stackaddr = 0; @@ -301,6 +307,7 @@ void AdjustStackSizeLinux(void *attr_) { } } } +#endif // SANITIZER_GO #if SANITIZER_ANDROID uptr GetListOfModules(LoadedModule *modules, uptr max_modules, |

