943-sanitizer-linux.patch 4.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. From a3e3d1b5f73380a99126c4937a95225ba3bd214b Mon Sep 17 00:00:00 2001
  2. From: doko <doko@138bc75d-0d04-0410-961f-82ee72b054a4>
  3. Date: Thu, 7 Sep 2017 07:15:24 +0000
  4. Subject: [PATCH] 2017-09-07 Matthias Klose <doko@ubuntu.com>
  5. Backported from mainline
  6. 2017-07-14 Jakub Jelinek <jakub@redhat.com>
  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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-6-branch@251828 138bc75d-0d04-0410-961f-82ee72b054a4
  13. (cherry picked from commit 8937b94d1a643fd9760714642296d034a45254a8)
  14. [Romain rebase on gcc 6.4]
  15. Signed-off-by: Romain Naour <romain.naour@gmail.com>
  16. ---
  17. libsanitizer/sanitizer_common/sanitizer_linux.cc | 3 +--
  18. libsanitizer/sanitizer_common/sanitizer_linux.h | 4 +---
  19. libsanitizer/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc | 2 +-
  20. libsanitizer/tsan/tsan_platform_linux.cc | 2 +-
  21. 4 files changed, 4 insertions(+), 7 deletions(-)
  22. diff --git a/libsanitizer/sanitizer_common/sanitizer_linux.cc b/libsanitizer/sanitizer_common/sanitizer_linux.cc
  23. index 2cefa20..223d9c6 100644
  24. --- a/libsanitizer/sanitizer_common/sanitizer_linux.cc
  25. +++ b/libsanitizer/sanitizer_common/sanitizer_linux.cc
  26. @@ -546,8 +546,7 @@ uptr internal_prctl(int option, uptr arg2, uptr arg3, uptr arg4, uptr arg5) {
  27. }
  28. #endif
  29. -uptr internal_sigaltstack(const struct sigaltstack *ss,
  30. - struct sigaltstack *oss) {
  31. +uptr internal_sigaltstack(const void *ss, void *oss) {
  32. return internal_syscall(SYSCALL(sigaltstack), (uptr)ss, (uptr)oss);
  33. }
  34. diff --git a/libsanitizer/sanitizer_common/sanitizer_linux.h b/libsanitizer/sanitizer_common/sanitizer_linux.h
  35. index 4497702..1594058 100644
  36. --- a/libsanitizer/sanitizer_common/sanitizer_linux.h
  37. +++ b/libsanitizer/sanitizer_common/sanitizer_linux.h
  38. @@ -19,7 +19,6 @@
  39. #include "sanitizer_platform_limits_posix.h"
  40. struct link_map; // Opaque type returned by dlopen().
  41. -struct sigaltstack;
  42. namespace __sanitizer {
  43. // Dirent structure for getdents(). Note that this structure is different from
  44. @@ -28,8 +27,7 @@ struct linux_dirent;
  45. // Syscall wrappers.
  46. uptr internal_getdents(fd_t fd, struct linux_dirent *dirp, unsigned int count);
  47. -uptr internal_sigaltstack(const struct sigaltstack* ss,
  48. - struct sigaltstack* oss);
  49. +uptr internal_sigaltstack(const void* ss, void* oss);
  50. uptr internal_sigprocmask(int how, __sanitizer_sigset_t *set,
  51. __sanitizer_sigset_t *oldset);
  52. void internal_sigfillset(__sanitizer_sigset_t *set);
  53. diff --git a/libsanitizer/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc b/libsanitizer/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc
  54. index c919e4f..014162af 100644
  55. --- a/libsanitizer/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc
  56. +++ b/libsanitizer/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc
  57. @@ -267,7 +267,7 @@ static int TracerThread(void* argument) {
  58. // Alternate stack for signal handling.
  59. InternalScopedBuffer<char> handler_stack_memory(kHandlerStackSize);
  60. - struct sigaltstack handler_stack;
  61. + stack_t handler_stack;
  62. internal_memset(&handler_stack, 0, sizeof(handler_stack));
  63. handler_stack.ss_sp = handler_stack_memory.data();
  64. handler_stack.ss_size = kHandlerStackSize;
  65. diff --git a/libsanitizer/tsan/tsan_platform_linux.cc b/libsanitizer/tsan/tsan_platform_linux.cc
  66. index 09cec5f..908f4fe 100644
  67. --- a/libsanitizer/tsan/tsan_platform_linux.cc
  68. +++ b/libsanitizer/tsan/tsan_platform_linux.cc
  69. @@ -291,7 +291,7 @@ bool IsGlobalVar(uptr addr) {
  70. int ExtractResolvFDs(void *state, int *fds, int nfd) {
  71. #if SANITIZER_LINUX
  72. int cnt = 0;
  73. - __res_state *statp = (__res_state*)state;
  74. + struct __res_state *statp = (struct __res_state*)state;
  75. for (int i = 0; i < MAXNS && cnt < nfd; i++) {
  76. if (statp->_u._ext.nsaddrs[i] && statp->_u._ext.nssocks[i] != -1)
  77. fds[cnt++] = statp->_u._ext.nssocks[i];
  78. --
  79. 2.9.5