Dean Michael Berris via llvm-dev
2018-Aug-30 11:42 UTC
[llvm-dev] Building/Running LLVM Tests with Sanitizers
Hi llvm-dev, I'm trying to reproduce an msan failure in one of the bots, but I can't seem to get the right incantation of building LLVM with msan. Here's what I've been doing: 1) Build the toolchain in one build directory, including `compiler-rt`. 2) Build the toolchain again with the just built toolchain in step 1, but this time with `-DLLVM_USE_SANITIZER=MemoryWithOrigins`. I get some msan errors, but of this kind instead of the one I'm expecting: ===$ ./unittests/XRay/XRayTests ==236769==WARNING: MemorySanitizer: use-of-uninitialized-value #0 0x70eef8 (/usr/local/google/home/dberris/xray/llvm-project-build-msan/unittests/XRay/XRayTests+0x70eef8) #1 0x70d2dc (/usr/local/google/home/dberris/xray/llvm-project-build-msan/unittests/XRay/XRayTests+0x70d2dc) #2 0x721044 (/usr/local/google/home/dberris/xray/llvm-project-build-msan/unittests/XRay/XRayTests+0x721044) #3 0x6e2a37 (/usr/local/google/home/dberris/xray/llvm-project-build-msan/unittests/XRay/XRayTests+0x6e2a37) #4 0x3722aa (/usr/local/google/home/dberris/xray/llvm-project-build-msan/unittests/XRay/XRayTests+0x3722aa) #5 0x372868 (/usr/local/google/home/dberris/xray/llvm-project-build-msan/unittests/XRay/XRayTests+0x372868) #6 0x775a4c (/usr/local/google/home/dberris/xray/llvm-project-build-msan/unittests/XRay/XRayTests+0x775a4c) #7 0x7f85b6c7e23f (/lib/x86_64-linux-gnu/libc.so.6+0x2023f) #8 0x2f4029 (/usr/local/google/home/dberris/xray/llvm-project-build-msan/unittests/XRay/XRayTests+0x2f4029) Uninitialized value was created by an allocation of 'ref.tmp' in the stack frame of function '_ZN7testing8internal12UnitTestImpl11AddTestInfoEPFvvES3_PNS_8TestInfoE' #0 0x720f10 (/usr/local/google/home/dberris/xray/llvm-project-build-msan/unittests/XRay/XRayTests+0x720f10) SUMMARY: MemorySanitizer: use-of-uninitialized-value (/usr/local/google/home/dberris/xray/llvm-project-build-msan/unittests/XRay/XRayTests+0x70eef8) Exiting === Is there something else I'm missing here? I'm doing this on Linux. I tried building with libc++ from the first toolchain, but somehow the linker from the same toolchain in step 1 couldn't find the libc++ with msan instrumentation. Here's the CMake command I'm using: ===cmake -GNinja -DCMAKE_C_COMPILER=$HOME/xray/llvm-project-build/bin/clang -DCMAKE_CXX_COMPILER=$HOME/xray/llvm-project-build/bin/clang++ -DCMAKE_BUILD_TYPE=Debug -DLLVM_OPTIMIZED_TABLEGEN=On -DLLVM_ENABLE_ASSERTIONS=On -DLLVM_USE_SANITIZER=MemoryWithOrigins -DLLVM_ENABLE_LLD=On -DLLVM_INCLUDE_TESTS=On -DCMAKE_CXX_FLAGS=-stdlib=libc++ -DCMAKE_LINK_FLAGS=-stdlib=libc++ ../llvm-project/llvm === And I'm running the tests like so: ===ninja check-llvm === I'm doing this with the monorepo, if that's relevant. Help? -- Dean
Peter Smith via llvm-dev
2018-Aug-30 12:00 UTC
[llvm-dev] Building/Running LLVM Tests with Sanitizers
Hello Dean, I've not done this myself for a while, I seem to remember it taking a while to get right. When I did I found the page: https://github.com/google/sanitizers/wiki/MemorySanitizerBootstrappingClang useful. The other thing that might work is following the individual cmake steps from http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-bootstrap-msan . These aren't in the same structure as the monorepo but they may be adaptable. My apologies if you've tried these already. Peter On 30 August 2018 at 12:42, Dean Michael Berris via llvm-dev <llvm-dev at lists.llvm.org> wrote:> Hi llvm-dev, > > I'm trying to reproduce an msan failure in one of the bots, but I > can't seem to get the right incantation of building LLVM with msan. > Here's what I've been doing: > > 1) Build the toolchain in one build directory, including `compiler-rt`. > > 2) Build the toolchain again with the just built toolchain in step 1, > but this time with `-DLLVM_USE_SANITIZER=MemoryWithOrigins`. > > I get some msan errors, but of this kind instead of the one I'm expecting: > > ===> $ ./unittests/XRay/XRayTests > ==236769==WARNING: MemorySanitizer: use-of-uninitialized-value > #0 0x70eef8 > (/usr/local/google/home/dberris/xray/llvm-project-build-msan/unittests/XRay/XRayTests+0x70eef8) > #1 0x70d2dc > (/usr/local/google/home/dberris/xray/llvm-project-build-msan/unittests/XRay/XRayTests+0x70d2dc) > #2 0x721044 > (/usr/local/google/home/dberris/xray/llvm-project-build-msan/unittests/XRay/XRayTests+0x721044) > #3 0x6e2a37 > (/usr/local/google/home/dberris/xray/llvm-project-build-msan/unittests/XRay/XRayTests+0x6e2a37) > #4 0x3722aa > (/usr/local/google/home/dberris/xray/llvm-project-build-msan/unittests/XRay/XRayTests+0x3722aa) > #5 0x372868 > (/usr/local/google/home/dberris/xray/llvm-project-build-msan/unittests/XRay/XRayTests+0x372868) > #6 0x775a4c > (/usr/local/google/home/dberris/xray/llvm-project-build-msan/unittests/XRay/XRayTests+0x775a4c) > #7 0x7f85b6c7e23f (/lib/x86_64-linux-gnu/libc.so.6+0x2023f) > #8 0x2f4029 > (/usr/local/google/home/dberris/xray/llvm-project-build-msan/unittests/XRay/XRayTests+0x2f4029) > > Uninitialized value was created by an allocation of 'ref.tmp' in the > stack frame of function > '_ZN7testing8internal12UnitTestImpl11AddTestInfoEPFvvES3_PNS_8TestInfoE' > #0 0x720f10 > (/usr/local/google/home/dberris/xray/llvm-project-build-msan/unittests/XRay/XRayTests+0x720f10) > > SUMMARY: MemorySanitizer: use-of-uninitialized-value > (/usr/local/google/home/dberris/xray/llvm-project-build-msan/unittests/XRay/XRayTests+0x70eef8) > Exiting > > ===> > Is there something else I'm missing here? I'm doing this on Linux. I > tried building with libc++ from the first toolchain, but somehow the > linker from the same toolchain in step 1 couldn't find the libc++ with > msan instrumentation. > > Here's the CMake command I'm using: > > ===> cmake -GNinja -DCMAKE_C_COMPILER=$HOME/xray/llvm-project-build/bin/clang > -DCMAKE_CXX_COMPILER=$HOME/xray/llvm-project-build/bin/clang++ > -DCMAKE_BUILD_TYPE=Debug -DLLVM_OPTIMIZED_TABLEGEN=On > -DLLVM_ENABLE_ASSERTIONS=On -DLLVM_USE_SANITIZER=MemoryWithOrigins > -DLLVM_ENABLE_LLD=On -DLLVM_INCLUDE_TESTS=On > -DCMAKE_CXX_FLAGS=-stdlib=libc++ -DCMAKE_LINK_FLAGS=-stdlib=libc++ > ../llvm-project/llvm > ===> > And I'm running the tests like so: > > ===> ninja check-llvm > ===> > I'm doing this with the monorepo, if that's relevant. > > Help? > > -- > Dean > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
Vitaly Buka via llvm-dev
2018-Aug-30 16:55 UTC
[llvm-dev] Building/Running LLVM Tests with Sanitizers
Another option is just to run corresponding script from *https://llvm.org/svn/llvm-project/zorg/trunk/zorg/buildbot/builders/sanitizers/ <https://llvm.org/svn/llvm-project/zorg/trunk/zorg/buildbot/builders/sanitizers/>* in empty directory. On Thu, Aug 30, 2018 at 5:00 AM Peter Smith via llvm-dev < llvm-dev at lists.llvm.org> wrote:> Hello Dean, > > I've not done this myself for a while, I seem to remember it taking a > while to get right. When I did I found the page: > https://github.com/google/sanitizers/wiki/MemorySanitizerBootstrappingClang > useful. The other thing that might work is following the individual > cmake steps from > http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-bootstrap-msan > . These aren't in the same structure as the monorepo but they may be > adaptable. > > My apologies if you've tried these already. > > Peter > > On 30 August 2018 at 12:42, Dean Michael Berris via llvm-dev > <llvm-dev at lists.llvm.org> wrote: > > Hi llvm-dev, > > > > I'm trying to reproduce an msan failure in one of the bots, but I > > can't seem to get the right incantation of building LLVM with msan. > > Here's what I've been doing: > > > > 1) Build the toolchain in one build directory, including `compiler-rt`. > > > > 2) Build the toolchain again with the just built toolchain in step 1, > > but this time with `-DLLVM_USE_SANITIZER=MemoryWithOrigins`. > > > > I get some msan errors, but of this kind instead of the one I'm > expecting: > > > > ===> > $ ./unittests/XRay/XRayTests > > ==236769==WARNING: MemorySanitizer: use-of-uninitialized-value > > #0 0x70eef8 > > > (/usr/local/google/home/dberris/xray/llvm-project-build-msan/unittests/XRay/XRayTests+0x70eef8) > > #1 0x70d2dc > > > (/usr/local/google/home/dberris/xray/llvm-project-build-msan/unittests/XRay/XRayTests+0x70d2dc) > > #2 0x721044 > > > (/usr/local/google/home/dberris/xray/llvm-project-build-msan/unittests/XRay/XRayTests+0x721044) > > #3 0x6e2a37 > > > (/usr/local/google/home/dberris/xray/llvm-project-build-msan/unittests/XRay/XRayTests+0x6e2a37) > > #4 0x3722aa > > > (/usr/local/google/home/dberris/xray/llvm-project-build-msan/unittests/XRay/XRayTests+0x3722aa) > > #5 0x372868 > > > (/usr/local/google/home/dberris/xray/llvm-project-build-msan/unittests/XRay/XRayTests+0x372868) > > #6 0x775a4c > > > (/usr/local/google/home/dberris/xray/llvm-project-build-msan/unittests/XRay/XRayTests+0x775a4c) > > #7 0x7f85b6c7e23f (/lib/x86_64-linux-gnu/libc.so.6+0x2023f) > > #8 0x2f4029 > > > (/usr/local/google/home/dberris/xray/llvm-project-build-msan/unittests/XRay/XRayTests+0x2f4029) > > > > Uninitialized value was created by an allocation of 'ref.tmp' in the > > stack frame of function > > '_ZN7testing8internal12UnitTestImpl11AddTestInfoEPFvvES3_PNS_8TestInfoE' > > #0 0x720f10 > > > (/usr/local/google/home/dberris/xray/llvm-project-build-msan/unittests/XRay/XRayTests+0x720f10) > > > > SUMMARY: MemorySanitizer: use-of-uninitialized-value > > > (/usr/local/google/home/dberris/xray/llvm-project-build-msan/unittests/XRay/XRayTests+0x70eef8) > > Exiting > > > > ===> > > > Is there something else I'm missing here? I'm doing this on Linux. I > > tried building with libc++ from the first toolchain, but somehow the > > linker from the same toolchain in step 1 couldn't find the libc++ with > > msan instrumentation. > > > > Here's the CMake command I'm using: > > > > ===> > cmake -GNinja -DCMAKE_C_COMPILER=$HOME/xray/llvm-project-build/bin/clang > > -DCMAKE_CXX_COMPILER=$HOME/xray/llvm-project-build/bin/clang++ > > -DCMAKE_BUILD_TYPE=Debug -DLLVM_OPTIMIZED_TABLEGEN=On > > -DLLVM_ENABLE_ASSERTIONS=On -DLLVM_USE_SANITIZER=MemoryWithOrigins > > -DLLVM_ENABLE_LLD=On -DLLVM_INCLUDE_TESTS=On > > -DCMAKE_CXX_FLAGS=-stdlib=libc++ -DCMAKE_LINK_FLAGS=-stdlib=libc++ > > ../llvm-project/llvm > > ===> > > > And I'm running the tests like so: > > > > ===> > ninja check-llvm > > ===> > > > I'm doing this with the monorepo, if that's relevant. > > > > Help? > > > > -- > > Dean > > _______________________________________________ > > LLVM Developers mailing list > > llvm-dev at lists.llvm.org > > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20180830/72fb7a01/attachment-0001.html>