On Wed, Sep 10, 2025 at 08:05:11PM -0700, Kees Cook wrote: > > > +/* Check if a function needs KCFI preamble generation. > > > + ALL functions get preambles when -fsanitize=kcfi is enabled, > > > regardless > > > + of no_sanitize("kcfi") attribute. */ > > > > Why no_sanitize(“kcfi”) is not considered here? > > no_sanitize(“kcfi”) is strictly about whether call-site checking > is performed within the function. It is not used to mark a function as > not being the target of a KCFI call.
I'll once again argue that __attribute__((nocf_check)) (aka. __noendbr) should have that effect. If there is no ENDBR, then no amount of kCFI preamble will make the function (indirectly) callable.