[tsan, go] fix Go windows build
authorVitaly Buka <vitalybuka@google.com>
Mon, 7 Oct 2019 23:11:07 +0000 (23:11 +0000)
committerVitaly Buka <vitalybuka@google.com>
Mon, 7 Oct 2019 23:11:07 +0000 (23:11 +0000)
commit2fdec42a167c7325f771ba340c3a5eff3d33061a
tree309742498fde3162501695c4e369ac32b3aff5d6
parent2059105637867f7a02185998a30e7f8228dca280
[tsan, go] fix Go windows build

Summary:
Don't use weak exports when building tsan into a shared library for Go. gcc can't handle the pragmas used to make the weak references.

Include files that have been added since the last update to build.bat. (We should really find a better way to list all the files needed.)

Add windows version defines (WINVER and _WIN32_WINNT) to get AcquireSRWLockExclusive and ReleaseSRWLockExclusive defined.

Define GetProcessMemoryInfo to use the kernel32 version. This is kind of a hack, the windows header files should do this translation for us. I think we're not in the right family partition (we're using Desktop, but that translation only happens for App and System partitions???), but hacking the family partition seems equally gross and I have no idea what the consequences of that might be.

Patch by Keith Randall.

Reviewers: dvyukov, vitalybuka

Reviewed By: vitalybuka

Subscribers: jfb, delcypher, #sanitizers, llvm-commits

Tags: #llvm, #sanitizers

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

llvm-svn: 373984
compiler-rt/lib/sanitizer_common/sanitizer_win_defs.h
compiler-rt/lib/tsan/go/build.bat