-
-
Notifications
You must be signed in to change notification settings - Fork 5.6k
Add --target-sanitize=(memory|thread|address) #59035
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
Can we spell this as |
I'm also open to suggestions on ways to clean up the duplication between |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this is fine for now - we can think about refactoring the options struct at a later time.
Since these change codegen behavior, we should probably also thread them through the cache options (e.g. Lines 401 to 411 in 3b29187
|
We should also make sure that the sanitizer abi tags are still working and probably enable more of them on Yggdrasil |
I've added the sanitizer flags to |
Since the |
This will be used by Pkg instead of parsing a single UInt8, so #59035 and other changes to CacheFlags can be made without breaking Pkg in the future, as mentioned in JuliaLang/Pkg.jl#4347 (also ref: JuliaLang/Pkg.jl#4347 (comment)).
Options that affect only the base image (--ouput-incremental=false) and get copied from there should not be put into the Base.CacheFlags struct, which is for flags that can be different from the base image. |
Adds three hidden options that can enable the Memory/Thread/AddressSanitizer
LLVM passes even when Julia is not built with any sanitizers enabled. In
conjunction with #59033 this lets us build a ThreadSanitizer version of Julia in
only a few minutes rather than hours.
--target-sanitize=(memory|thread|address)
flags to enable thoseLLVM passes when compiling code ahead of time with
--output-*
.built with it.
CodegenParams
.