Skip to content
  • Milian Wolff's avatar
    Disable asan sigaltstack for select clang unit tests · e306f3e3
    Milian Wolff authored
    Apparently LLVM's internal sigaltstack usage does not play well
    together with the sanitizers, see [1]. This leads to failed tests
    on our CI. Setting use_sigaltstack=0 as an ASAN_OPTION fixes this
    issue, which this patch here does.
    
    Sadly, we have to jump through some hoops to achieve this though.
    On one hand, we want to extend the ASAN_OPTIONS, not overwrite it.
    As such, we can't just set the ctest ENVIRONMENT property, as the
    CI sets a bunch of custom flags in the ASAN_OPTIONS env var. Users
    might have their own set of values there too. Once we can rely on
    CMake 3.22 or newer, we might use ENVIRONMENT_MODIFICATION.
    
    Furthermore, I could not get __asan_default_options() to work
    with GCC.
    
    So, instead for now we use some dirty hackery: We check whether the
    use_sigaltstack option is set in ASAN_OPTIONS. If not, we set it
    explicitly to 0 and then execve the test anew. This way we can be
    sure that the environment gets picked up properly.
    
    [1]: https://githu...
    e306f3e3