[libcxx] r243574 - Recommit r243503 "[libcxx] Cleanup CMake configuration and integrate with LLVM"

Eric Fiselier eric at efcs.ca
Thu Jul 30 13:26:54 PDT 2015

> What would/does `-DLLVM_USE_SANITIZER=Thread` do differently than `-DCMAKE_CXX_FLAGS=-
> fsanitize=thread` here?

Using LLVM_USE_SANITIZER will prevent LLVM from adding certain link
flags such as '-Wl,-z,defs', '-ffunction-sections' and
'-fdata-sections' and it will force LLVM to provide some level of
debug information in RELEASE mode.

For sanitizers other than Thread, LLVM_USE_SANITIZER will add extra
flags such as '-fsanitize-no-recover'.

Also, for libc++, using LLVM_USE_SANITIZER sets the testsuite up to
run with the sanitizers as well.

On Thu, Jul 30, 2015 at 4:09 PM, Jonathan Roelofs
<jonathan at codesourcery.com> wrote:
> On 7/30/15 12:47 PM, Alexey Samsonov wrote:
>> I actually support the idea of including LLVM CMake modules from
>> libc++ CMake: the logic for building instrumented LLVM and building
>> instrumented libc++ should better be listed in a single place, and be
>> controlled by LLVM_USE_SANITIZER options: i.e. when we configure
>> libc++ from compiler-rt, we should pass -DLLVM_USE_SANITIZER=Thread
>> rather than -DCMAKE_CXX_FLAGS=-fsanitize=thread. It's not possible to
>> do this right now, though (for instance we build two different
>> versions of MSan-libc++), but I think I'd be able to work on that
>> once your patch lands and the dust settles.
> What would/does `-DLLVM_USE_SANITIZER=Thread` do differently than
> `-DCMAKE_CXX_FLAGS=-fsanitize=thread` here?
> Jon
> --
> Jon Roelofs
> jonathan at codesourcery.com
> CodeSourcery / Mentor Embedded

More information about the cfe-commits mailing list