Skip to content
Commit e306f3e3 authored by Milian Wolff's avatar Milian Wolff
Browse files

Disable asan sigaltstack for select clang unit tests

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://github.com/google/sanitizers/issues/849
parent 01a35a3e
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment