This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Revert libsanitizer patches or fix 59009
- From: Jakub Jelinek <jakub at redhat dot com>
- To: Kostya Serebryany <kcc at google dot com>
- Cc: Michael Meissner <meissner at linux dot vnet dot ibm dot com>, Evgeniy Stepanov <eugeni dot stepanov at gmail dot com>, Peter Bergner <bergner at vnet dot ibm dot com>, Konstantin Serebryany <konstantin dot s dot serebryany at gmail dot com>, Jack Howarth <howarth at bromo dot med dot uc dot edu>, Alexander Potapenko <glider at google dot com>, GCC Patches <gcc-patches at gcc dot gnu dot org>, Dodji Seketeli <dodji at redhat dot com>, Dmitry Vyukov <dvyukov at google dot com>, Bill Schmidt <wschmidt at zalov dot cz>
- Date: Tue, 12 Nov 2013 20:30:15 +0100
- Subject: Re: Revert libsanitizer patches or fix 59009
- Authentication-results: sourceware.org; auth=none
- References: <20131106115318 dot GZ27813 at tucnak dot zalov dot cz> <CABMLtriEBy9NcsU=Xi63sjcwz5GYdU8su=j9COq9ywOf3BGt8g at mail dot gmail dot com> <20131112173725 dot GA24313 at ibm-tiger dot the-meissners dot org> <CAN=P9pgrW30Xnv0DsmkQNY72uyzwEQaWUAthaHYwuq3=Giz_Tw at mail dot gmail dot com> <CAN=P9pjSZcDNN3sP6fxJ4V553mQPQihpsuWiCpDLUrw=gszMGg at mail dot gmail dot com> <CAN=P9pjkzWkV_rQmcde-DKS8dg8xUjt+pyCUe_8yGMeCrBeRqQ at mail dot gmail dot com> <20131112180403 dot GA30956 at ibm-tiger dot the-meissners dot org> <CAN=P9pgPY-QcGMbm6k25fGS24qcTLXbZX8px+09n-oeG6O5ZzQ at mail dot gmail dot com> <20131112185704 dot GY27813 at tucnak dot zalov dot cz> <CAN=P9pibOvxQyDZzQimGafSZEfemWXXdN=afWJWk17a30Vt-ig at mail dot gmail dot com>
- Reply-to: Jakub Jelinek <jakub at redhat dot com>
On Tue, Nov 12, 2013 at 10:59:12AM -0800, Kostya Serebryany wrote:
> This is all dead code in gcc repo. This is why I am asking for any
> quick #ifdef.
> in clang repo this code is used by MemorySanitizer (and will be used
> by asan/tsan later).
I can't find how it is used in msan/ in the llvm repo either, though
admittedly just using grep (was grepping for pre_impl or post_impl),
but sanitizer_common_syscalls.inc #undefs PRE_SYSCALL/POST_SYSCALL
at the end, so I'm curious how do you use it. But not enough interest
to actually build the llvm stuff.
Anyway, the following #ifdefs out tons of dead code and still builds just
fine, the only difference is that those symbols nothing really uses from
libasan/libtsan are no longer exported, but nothing else changes.
I guess the #if 0 can be replaced by some #ifdef with some nice name or
something.
BTW, the 10MB .bss in libubsan is really insane, while perhaps users are
expecting to have huge overhead with libasan or libtsan, for libubsan it
looks way too big. Why do you need it?
--- libsanitizer/sanitizer_common/sanitizer_platform_limits_linux.cc.jj 2013-11-12 11:31:00.000000000 +0100
+++ libsanitizer/sanitizer_common/sanitizer_platform_limits_linux.cc 2013-11-12 20:04:49.981519143 +0100
@@ -14,6 +14,7 @@
// userspace headers.
// Most "normal" includes go in sanitizer_platform_limits_posix.cc
+#if 0
#include "sanitizer_platform.h"
#if SANITIZER_LINUX
@@ -43,3 +44,4 @@ namespace __sanitizer {
} // namespace __sanitizer
#endif // SANITIZER_LINUX
+#endif
--- libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc.jj 2013-11-12 11:31:00.000000000 +0100
+++ libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc 2013-11-12 20:04:35.967587643 +0100
@@ -10,7 +10,7 @@
// Sizes and layouts of platform-specific POSIX data structures.
//===----------------------------------------------------------------------===//
-
+#if 0
#include "sanitizer_platform.h"
#if SANITIZER_LINUX || SANITIZER_MAC
@@ -881,3 +881,4 @@ CHECK_SIZE_AND_OFFSET(wordexp_t, we_offs
#endif
#endif // SANITIZER_LINUX || SANITIZER_MAC
+#endif
--- libsanitizer/sanitizer_common/sanitizer_common_syscalls.inc.jj 2013-11-12 11:31:00.000000000 +0100
+++ libsanitizer/sanitizer_common/sanitizer_common_syscalls.inc 2013-11-12 20:04:11.295715500 +0100
@@ -58,6 +58,8 @@
# define COMMON_SYSCALL_POST_FORK(res)
#endif
+#if 0
+
// FIXME: do some kind of PRE_READ for all syscall arguments (int(s) and such).
extern "C" {
@@ -2722,6 +2724,8 @@ POST_SYSCALL(vfork)(long res) {
}
} // extern "C"
+#endif
+
#undef PRE_SYSCALL
#undef PRE_READ
#undef PRE_WRITE
Jakub