On Wed, Dec 06, 2023 at 09:49:47AM -0700, Nathan Chancellor wrote: > -Wincompatible-function-pointer-types-strict aims to catch clang kernel > Control Flow Integrity (kCFI) violations at build time (rather than run > time) by validating function pointer assignments against the expected > prototype, similar to the existing -Wincompatible-function-pointer-types > that is considered a hard error in the kernel. The -strict variant > requires the types to match exactly, as opposed to just matching in > terms of ABI compatibility. This is primarily visible with int/unsigned > int in lieu of enum types or vice versa. > > The tree is not completely clean, so this warning cannot currently be > enabled unconditionally. However, there are only warnings in one > subsystem ('drivers/counter'), so it is really close. In order to > benefit from CI infrastructure that tests with W=1, enable this warning > at that level, so that new instances have a chance of being caught and > fixed during development. > > This should eventually be a hard error in a similar manner as > Wincompatible-function-pointer-types but some subsystems test > with W=1 + CONFIG_WERROR=n, so it would be rude to break their builds > when they do not care about warnings outside of their subsystem. > > Link: https://github.com/ClangBuiltLinux/linux/issues/1750 > Reviewed-by: Nick Desaulniers <ndesaulniers@xxxxxxxxxx> > Signed-off-by: Nathan Chancellor <nathan@xxxxxxxxxx> Keeping these from leaking in is always good. Thanks! Reviewed-by: Kees Cook <keescook@xxxxxxxxxxxx> -- Kees Cook