On Thu, Jan 25, 2024 at 2:46 PM Conor Dooley <conor.dooley@xxxxxxxxxxxxx> wrote: > > Ah, thanks for the direct link :) My pleasure! > Actually, thinking about it for a moment - if only a single compiler > version is supported (the minimum, right?) then you could just add the Yeah, the minimum listed in `scripts/min-tool-version.sh` and in `Documentation/process/changes.rst`. It also happens to be the maximum too, until we can relax that. > -Zsanitizer=kcfi flag whenever CFI_CLANG and RUST are both set. Since the flag goes to the Rust compiler, `RUST` would be always enabled, so the flag would only need to be added when `CFI_CLANG=y`, no? Or what do you mean? > I'm not sure if that is a better option though. It's a choice between > CFI_CLANG being disabled if the check is not updated when the toolchain > is bumped versus being enabled for C and not for RUST. I think I prefer > the former though, tracking down the cause of the latter I would rather > not wish on a user. > > I vote for having the check, even if it can only ever be true at the > moment. Since we only support a single version, we don't need `rc-option` tests until we start supporting several versions (which is why other tests like that do not exist so far). In my previous message I thought you meant using the flag to test for arch/target support or similar. That would be fine, but we can also do the usual `ARCH_SUPPORTS_CFI_RUST` here, I would assume. Now, during the version bump to a stable flag, if we happen to forget to update the flag name, it would be a build error, so it should be easily spotted and fixed. And if we did use an `rc-option` for the arch/target support idea, it would be the first case you mention, so it is all good. What we may want to add, though, to avoid the confusion you mention meanwhile, is just a `depends on !CFI_CLANG` for `RUST`, like for the other requirements we have there (which are things that should eventually go away). Then they can remove that when the `-Z` flag is deemed ready to be used. But perhaps let's see what Ramon et al. say. In other words, the flag was added back in 1.68.0 to `rustc`, but it was not ready, so we need to store the "ready" bit in our side meanwhile, i.e. we can't know that just by testing the flag itself. By the way, concerning the tracking issue, since you mentioned it: it has a list of PRs, but not fixes, there is a "known issues" link there. On top of that, we are "shifted in time" w.r.t. the latest status in the compiler, since we use stable versions of the compiler. Cheers, Miguel