Я использую этот Makefile
для создания моего модуля ядра из дерева. (Модуль состоит только из одного исходного файла.) Я хочу использовать больше предупреждающих флагов, чем те, которые поступают по умолчанию. Проблема в том, что стандартные заголовки Linux (например, #include <linux/module.h>
) также проверяются на наличие предупреждений, и поэтому выводится множество предупреждений. Как я могу изменить этот Makefile, чтобы стандартные заголовки Linux не проверялись на предупреждения?Предупреждающие флаги Makefile Linux-модуль ядра
# to build the module: make module=mymodulename
# to clean: make clean
obj-m += $(module).o
# extra warning flags
ccflags-y := -fdiagnostics-show-option -Wall -Wextra -Wdouble-promotion -Wformat=2 -Winit-self -Wmissing-include-dirs -Wswitch-default -Wswitch-enum -Wunused -Wstrict-overflow=5 -Wno-div-by-zero -Wtrampolines -Wfloat-equal -Wundef -Wno-endif-labels -Wshadow -Wunsafe-loop-optimizations -Wsync-nand -Wbad-function-cast -Wcast-qual -Wcast-align -Wwrite-strings -Wconversion -Wjump-misses-init -Wlogical-op -Waggregate-return -Wstrict-prototypes -Wold-style-definition -Wmissing-noreturn -Wmissing-format-attribute -Wnormalized=nfc -Wpacked -Wpadded -Wredundant-decls -Wnested-externs -Wunreachable-code -Winline -Winvalid-pch -Wdisabled-optimization -Wmissing-prototypes -Wmissing-declarations -Woverlength-strings -Wunsuffixed-float-constants
# disable some warning flags
ccflags-y += -Wno-declaration-after-statement -Wno-missing-prototypes -Wno-missing-declarations -Wno-cast-qual -Wno-sign-conversion -Wno-conversion
# enable some extra warning flags
KBUILD_ENABLE_EXTRA_GCC_CHECKS := 3
# increase verbosity
KBUILD_VERBOSE := 1
all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD)
clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
gcc имеет для этого также прагмы: https://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Pragmas.html – nos
@nos: Nice! Вы знаете, это, вероятно, очень хорошо ответит на вопрос OP ... ;-) – DevSolar