From fa46848e51a619aba5a748316fe8fe4c2e17d243 Mon Sep 17 00:00:00 2001 From: Jose Fonseca Date: Sat, 9 Apr 2016 20:26:42 +0100 Subject: scons: Allow building with Address Sanitizer. libasan is never linked to shared objects (which doesn't go well with -z,defs). It must either be linked to the main executable, or (more practically for OpenGL drivers) be pre-loaded via LD_PRELOAD. Otherwise works. I didn't find anything with llvmpipe. I suspect the fact that the JIT compiled code isn't instrumented means there are lots of errors it can't catch. But for non-JIT drivers, the Address/Leak Sanitizers seem like a faster alternative to Valgrind. Usage (Ubuntu 15.10): scons asan=1 libgl-xlib export LD_LIBRARY_PATH=$PWD/build/linux-x86_64-debug/gallium/targets/libgl-xlib LD_PRELOAD=libasan.so.2 any-opengl-application Acked-by: Roland Scheidegger --- common.py | 1 + 1 file changed, 1 insertion(+) (limited to 'common.py') diff --git a/common.py b/common.py index 7a939417e2..70e6708a2f 100644 --- a/common.py +++ b/common.py @@ -97,6 +97,7 @@ def AddOptions(opts): opts.Add(BoolOption('embedded', 'embedded build', 'no')) opts.Add(BoolOption('analyze', 'enable static code analysis where available', 'no')) + opts.Add(BoolOption('asan', 'enable Address Sanitizer', 'no')) opts.Add('toolchain', 'compiler toolchain', default_toolchain) opts.Add(BoolOption('gles', 'EXPERIMENTAL: enable OpenGL ES support', 'no')) -- cgit v1.2.3