GET WARNING: modpost: отсутствует MODULE_LICENSE (), когда LKM скомпилирован с несколькими файлами Sr c - PullRequest
0 голосов
/ 22 февраля 2020

У меня есть LKM с именем RtmNetlinkLKM.c, который компилируется и работает нормально. В тот момент, когда я обновляю его Makefile для компиляции с другими файлами sr c, он начинает выдавать предупреждение:

WARNING: modpost: missing MODULE_LICENSE()

Следующее MODULE_LICENSE("GPL"); уже присутствует в файле модуля ядра.

Предыдущий Makefile, модуль прекрасно компилируется

obj-m += RtmNetlinkLKM.o
all:
    make -C /lib/modules/`uname -r`/build M=$(PWD) modules
clean:
    make -C /lib/modules/`uname -r`/build M=$(PWD) clean

обновленный Makefile, модуль теперь компилируется с предупреждением

obj-m += RtmNetlinkLKM.o
RtmNetlinkLKM-objs += rt_kern.o gluethread/glthread.o << Added two more sources
all:
    make -C /lib/modules/`uname -r`/build M=$(PWD) modules
clean:
    make -C /lib/modules/`uname -r`/build M=$(PWD) clean
    rm -f rt_kern.o
    rm -f gluethread/glthread.o

При компиляции с использованием второго Makefile, это дает заявленное предупреждение. Когда я добавляю MODULE_LICENSE("GPL") в gluethread/glthread.c, предупреждение исчезает. Я не понимаю, зачем мне добавлять лицензию «GPL» в glthread.c, когда это не модуль, а содержит функции, которые будут использоваться модулем (это мини-библиотека со связанным списком). Почему он не жалуется другим sr c файлом rt_kern.c аналогичным образом. Я никогда не делал никаких изменений в исходном файле модуля RtmNetlink.c на протяжении всего этого процесса.

...