at 18.09-beta 4.0 kB view raw
1From 72edc2c02f8b4768ad660f46a1c7e2400c0a8e06 Mon Sep 17 00:00:00 2001 2From: jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> 3Date: Mon, 17 Jul 2017 19:41:08 +0000 4Subject: [PATCH] Backported from mainline 2017-07-14 Jakub 5 Jelinek <jakub@redhat.com> 6 7 PR sanitizer/81066 8 * sanitizer_common/sanitizer_linux.h: Cherry-pick upstream r307969. 9 * sanitizer_common/sanitizer_linux.cc: Likewise. 10 * sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc: Likewise. 11 * tsan/tsan_platform_linux.cc: Likewise. 12 13 14git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@250287 138bc75d-0d04-0410-961f-82ee72b054a4 15--- 16 libsanitizer/ChangeLog (REMOVED) | 11 +++++++++++ 17 libsanitizer/sanitizer_common/sanitizer_linux.cc | 3 +-- 18 libsanitizer/sanitizer_common/sanitizer_linux.h | 4 +--- 19 .../sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc | 2 +- 20 libsanitizer/tsan/tsan_platform_linux.cc | 2 +- 21 5 files changed, 15 insertions(+), 7 deletions(-) 22 23diff --git a/libsanitizer/sanitizer_common/sanitizer_linux.cc b/libsanitizer/sanitizer_common/sanitizer_linux.cc 24index 806fcd5..5b6f186 100644 25--- a/libsanitizer/sanitizer_common/sanitizer_linux.cc 26+++ b/libsanitizer/sanitizer_common/sanitizer_linux.cc 27@@ -605,8 +605,7 @@ uptr internal_prctl(int option, uptr arg2, uptr arg3, uptr arg4, uptr arg5) { 28 } 29 #endif 30 31-uptr internal_sigaltstack(const struct sigaltstack *ss, 32- struct sigaltstack *oss) { 33+uptr internal_sigaltstack(const void *ss, void *oss) { 34 return internal_syscall(SYSCALL(sigaltstack), (uptr)ss, (uptr)oss); 35 } 36 37diff --git a/libsanitizer/sanitizer_common/sanitizer_linux.h b/libsanitizer/sanitizer_common/sanitizer_linux.h 38index 895bfc1..a42df57 100644 39--- a/libsanitizer/sanitizer_common/sanitizer_linux.h 40+++ b/libsanitizer/sanitizer_common/sanitizer_linux.h 41@@ -19,7 +19,6 @@ 42 #include "sanitizer_platform_limits_posix.h" 43 44 struct link_map; // Opaque type returned by dlopen(). 45-struct sigaltstack; 46 47 namespace __sanitizer { 48 // Dirent structure for getdents(). Note that this structure is different from 49@@ -28,8 +27,7 @@ struct linux_dirent; 50 51 // Syscall wrappers. 52 uptr internal_getdents(fd_t fd, struct linux_dirent *dirp, unsigned int count); 53-uptr internal_sigaltstack(const struct sigaltstack* ss, 54- struct sigaltstack* oss); 55+uptr internal_sigaltstack(const void* ss, void* oss); 56 uptr internal_sigprocmask(int how, __sanitizer_sigset_t *set, 57 __sanitizer_sigset_t *oldset); 58 59diff --git a/libsanitizer/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc b/libsanitizer/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc 60index 891386dc..234e8c6 100644 61--- a/libsanitizer/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc 62+++ b/libsanitizer/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc 63@@ -273,7 +273,7 @@ static int TracerThread(void* argument) { 64 65 // Alternate stack for signal handling. 66 InternalScopedBuffer<char> handler_stack_memory(kHandlerStackSize); 67- struct sigaltstack handler_stack; 68+ stack_t handler_stack; 69 internal_memset(&handler_stack, 0, sizeof(handler_stack)); 70 handler_stack.ss_sp = handler_stack_memory.data(); 71 handler_stack.ss_size = kHandlerStackSize; 72diff --git a/libsanitizer/tsan/tsan_platform_linux.cc b/libsanitizer/tsan/tsan_platform_linux.cc 73index 2ed5718..6f972ab 100644 74--- a/libsanitizer/tsan/tsan_platform_linux.cc 75+++ b/libsanitizer/tsan/tsan_platform_linux.cc 76@@ -287,7 +287,7 @@ void InitializePlatform() { 77 int ExtractResolvFDs(void *state, int *fds, int nfd) { 78 #if SANITIZER_LINUX && !SANITIZER_ANDROID 79 int cnt = 0; 80- __res_state *statp = (__res_state*)state; 81+ struct __res_state *statp = (struct __res_state*)state; 82 for (int i = 0; i < MAXNS && cnt < nfd; i++) { 83 if (statp->_u._ext.nsaddrs[i] && statp->_u._ext.nssocks[i] != -1) 84 fds[cnt++] = statp->_u._ext.nssocks[i]; 85-- 862.9.3 87