Skip to content

Sanitizers enabled default environments - #53

Merged
daminetreg merged 15 commits into
mainfrom
feature/sanitizers-envs
Jul 16, 2026
Merged

Sanitizers enabled default environments#53
daminetreg merged 15 commits into
mainfrom
feature/sanitizers-envs

Conversation

@daminetreg

Copy link
Copy Markdown
Contributor

This introduces a cmake-re environment with clang20 that can be used for C++20 compilation or for MSAN instrumentation

It provides an environment that has multiple CMAKE_TOOLCHAIN_FILE that enables uses of the MSAN instrumentation on the complete stack, by also providing an instrumented libc++.

📂 Example : https://github.com/tipi-build/example-cmake-re-sanitizers
📹 Explanatory Video : Instrumenting the Stack: Strategies for End-to-end Sanitizer Adoption - Damien Buhl - CppCon 2025

@daminetreg daminetreg changed the title Sanitizers Enabled default environments Sanitizers enabled default environments Jul 10, 2026

@pysco68 pysco68 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM except for that hardcoded install version. I'm wondering if we can/could make use of multi-stage dockerfiles to have a lighter-weight result by separating the LLVM build out into a builder stage (just food for thoughts)

Comment thread linux-ubuntu-2404-clang20.pkr.js/linux-ubuntu-2404-clang20.Dockerfile Outdated
…R_BUILD_ADDITIONAL_PARAMETERS: "--build-context tipi..."
@daminetreg

Copy link
Copy Markdown
Contributor Author

could make use of multi-stage dockerfiles to have a lighter-weight result by separating the LLVM build out into a builder stage (just food for thoughts)

In general I agree but this image is tested and running and I don't want to modify to much in this scope, in general as follow-up work if there is demand for the image I agree to invest in improving. We could model it on the musl image which does that well, however this would require an expensive retest at this stage.

@daminetreg

Copy link
Copy Markdown
Contributor Author

could make use of multi-stage dockerfiles to have a lighter-weight result by separating the LLVM build out into a builder stage (just food for thoughts)

In general I agree but this image is tested and running and I don't want to modify to much in this scope, in general as follow-up work if there is demand for the image I agree to invest in improving. We could model it on the musl image which does that well, however this would require an expensive retest at this stage.

Also it seems that despite multi-stage build of the musl clang, that environment is faster to build than the musl libc environment :
image

@daminetreg
daminetreg requested a review from pysco68 July 16, 2026 13:12

@pysco68 pysco68 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@daminetreg
daminetreg merged commit 4cda1c6 into main Jul 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants