The upcoming GCC 9 release extends the -Wmissing-attributes warnings (enabled by -Wall) to C and aliases: it warns when particular function attributes are missing in the aliases but not in their target, e.g.:
void __cold f(void) {} void __alias("f") g(void); diagnoses: warning: 'g' specifies less restrictive attribute than its target 'f': 'cold' [-Wmissing-attributes] These patch series clean these new warnings. Most of them are caused by the module_init/exit macros. The first patch has been in -next for a long time already, and an alternative solution (only __cold) for module.h as well. However, since we decided to go with the new __copy attribute, I will leave the series for a few days again and send the PR for -rc7. Link: https://lore.kernel.org/lkml/20190125104353.2791-1-labb...@redhat.com/ Miguel Ojeda (3): lib/crc32.c: mark crc32_le_base/__crc32c_le_base aliases as __pure Compiler Attributes: add support for __copy (gcc >= 9) include/linux/module.h: copy __init/__exit attrs to init/cleanup_module include/linux/compiler_attributes.h | 14 ++++++++++++++ include/linux/module.h | 4 ++-- lib/crc32.c | 4 ++-- 3 files changed, 18 insertions(+), 4 deletions(-) -- 2.17.1