В компании, над которой я работаю, разрабатывается модуль ядра с закрытым исходным кодом (файл .ko). Этот модуль должен выполнять вызовы функций, которые содержатся в модуле gpl2. В основном у нас есть такая ситуация:
// GPL 2 kernel module (gpl.c -> gpl.ko)
void a_function(void)
{
// ...
}
EXPORT_SYMBOL(a_function)
// Closed Source module (closed.c -> closed.ko)
a_function();
Является ли это законным? Нарушаем ли мы лицензию GPL2 в этом примере? Обратите внимание, что closed.c не включает заголовочный файл gpl2.