This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Revert libsanitizer patches or fix 59009


On Tue, Nov 12, 2013 at 11:30 AM, Jakub Jelinek <jakub@redhat.com> wrote:
> 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

we only have it in tests: msan/lit_tests/Linux/syscalls.cc

> 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

Thanks, that should work.
I am really sorry I couldn't do it myself before -- just got back from travel.

> 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?

libubsan is a bit too far away from me, and especially the gcc build of 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]