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


Many thanks, Jakub.

I don't want to appear in this situation again.
Would you suggest a place to create a wiki page which would list all
required steps to test libsanitizer?

libsanitizer is (unfortunately) a very system-dependent beast and our
upstream commits will break other platforms regularly;
that's unavoidable unless each platform's community helps us test the
code upstream. (I.e. I encourage PowerPC folks to help us in the LLVM
land)
For gcc merges, all we can promise to do is to run any amount of
testing (described on a to-be-created wiki) on an x86_64 linux
machine.
For other kinds of testing we'll rely on the platform owners.
If we break someone's platform, we expect the owners to send us
patches which we can commit upstream. That's what happened with x32
last week.
If the platform owners don't care about libsanitizer and don't want to
help us fix it -- we better simply disable libsanitizer on those
platforms to save everyone's time.

--kcc

On Wed, Nov 13, 2013 at 3:49 AM, Jakub Jelinek <jakub@redhat.com> wrote:
> On Wed, Nov 13, 2013 at 12:47:04AM +0100, Jakub Jelinek wrote:
>> On Tue, Nov 12, 2013 at 08:30:15PM +0100, Jakub Jelinek wrote:
>> > 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.
>>
>> Actually, ifdefing out the *limits_posix.cc file didn't work well, because
>> the ioctl wrapping isn't dead, so I'm afraid we are back to including
>> sys/vt.h again.  But, at least for now the dead syscall interception
>> is #ifdefed out.  Tested on x86_64-linux, committed to trunk.
>>
>> > 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?
>>
>> Seems the allocator is brought in through a chain of *.o files from
>> sanitizer_common, libubsan wants the backtrace stuff, but I'd hope if it
>> needs an allocator for that, it doesn't need one backed by 10MB .bss buffer,
>> some fairly minimal would be much better for that.
>
> Oops, now with the patch.
>
> 2013-11-12  Jakub Jelinek  <jakub@redhat.com>
>
>         * sanitizer_common/sanitizer_platform_limits_linux.cc: Temporarily
>         ifdef out almost the whole source.
>         * sanitizer_common/sanitizer_common_syscalls.inc: Likewise.
>
> --- libsanitizer/sanitizer_common/sanitizer_platform_limits_linux.cc.jj 2013-11-12 20:19:46.936825637 +0100
> +++ libsanitizer/sanitizer_common/sanitizer_platform_limits_linux.cc    2013-11-12 23:12:14.531418217 +0100
> @@ -14,6 +14,7 @@
>  // userspace headers.
>  // Most "normal" includes go in sanitizer_platform_limits_posix.cc
>
> +#ifdef SYSCALL_INTERCEPTION
>  #include "sanitizer_platform.h"
>  #if SANITIZER_LINUX
>
> @@ -43,3 +44,4 @@ namespace __sanitizer {
>  }  // namespace __sanitizer
>
>  #endif  // SANITIZER_LINUX
> +#endif
> --- libsanitizer/sanitizer_common/sanitizer_common_syscalls.inc.jj      2013-11-12 20:19:46.945825141 +0100
> +++ libsanitizer/sanitizer_common/sanitizer_common_syscalls.inc 2013-11-12 23:12:14.533417997 +0100
> @@ -58,6 +58,8 @@
>  # define COMMON_SYSCALL_POST_FORK(res)
>  #endif
>
> +#ifdef SYSCALL_INTERCEPTION
> +
>  // 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]