[cfe-users] Clang memory sanitizer: llvm-symbolizer problem

Alexey Samsonov via cfe-users cfe-users at lists.llvm.org
Wed Nov 25 11:13:33 PST 2015

On Wed, Nov 25, 2015 at 4:12 AM, Schlottke-Lakemper, Michael <
m.schlottke-lakemper at aia.rwth-aachen.de> wrote:

> Thus I tried to compile a complete LLVM/Clang stack (with compiler-rt,
>> libcxx, libcxxabi, libomp) using -DLLVM_USE_SANITIZER=MemoryWithOrigins.
>> However, this did not work either, as apparently during the compilation
>> process the memory sanitizer already comes to life and complains about
>> use-of-unitialized values… Thus this approach seems to be a dead end.
>> Michael
>> On 24 Nov 2015, at 15:28 , Michael Schlottke-Lakemper <
>> m.schlottke-lakemper at aia.rwth-aachen.de> wrote:
>> Hi folks,
>> When running our msan-instrumented simulation program, instead of a
>> proper output I get the following error:
>> ==12089==WARNING: MemorySanitizer: use-of-uninitialized-value
>> ==12089==WARNING: Can't read from symbolizer at fd 14
>> /pds/opt/llvm/bin/llvm-symbolizer: symbol lookup error:
>> /pds/opt/libcxx-20151121-r253770-clang-msan/lib/libc++abi.so.1: undefined
>> symbol: __msan_origin_tls
>> ==12089==WARNING: external symbolizer didn't start up correctly!
>> My setup for using the memory sanitizer is as follows:
>> - compile libc++/libc++abi with -fsanitize=memory
>> - compile test program with normal (=uninstrumented) LLVM/Clang
>> installation using -fsanitize=memory
>> - put instrumented libcxx/libcxxabi library dirs into LD_LIBRARY_PATH
>> Can you pass -Wl,-rpath when you link your executable, to specify the
> path to instrumented libc++/libc++abi?
> Yes, and if I do that together with setting LD_LIBRARY_PATH=“”, it works,
> thanks.

Why do you need to clear LD_LIBRARY_PATH to run MSan?
What libraries from LLVM lib dir harm running the MSan-ified executalbe? I
thought that if you set rpath to correct path with instrumented libraries
it should be enough...

> The problem with this approach, however,  is that on our cluster
> installation, LD_LIBRARY_PATH by default includes LLVM’s lib dir. If I want
> the MemorySanitizer to work for all users, I somehow need to find another
> way that may involve *adding* paths to LD_LIBRARY_PATH, but not removing
> them. Any idea how I could achieve this?
> Thanks,
> Michael

Alexey Samsonov
vonosmas at gmail.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-users/attachments/20151125/1ba4a167/attachment.html>

More information about the cfe-users mailing list