[Mesa-dev] [PATCH 1/2] scons: Allow building with Address Sanitizer.

Emil Velikov emil.l.velikov at gmail.com
Wed Apr 13 13:41:23 UTC 2016


Hi Jose,

On 12 April 2016 at 17:03, Jose Fonseca <jfonseca at vmware.com> wrote:
> 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

Just a bit of more info for anyone unfamiliar/interested. Not meant to
stir the waters.

Traditionally, the sanitizers were static libraries that one used for
link in each binary. As of recently one can opt for the shared library
libasan.so. Imho should opt against using the shared lib pro temp. as
it has multiple drawbacks (experimental, unsupported, has worse
performance ...) [1].

-Emil

[1] https://github.com/google/sanitizers/wiki/AddressSanitizerAsDso


More information about the mesa-dev mailing list