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 <ja...@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