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