rpm-build-kernel-0.11-alt1 After modules have been compiled, it would be nice to check if they can be loaded into the corresponding kernel, whether they have no unknown symbols. Before it happens in a working system. Perhaps, module-init-tools are able to do such a check (not for the running kernel), or it could be done in a hardware emulator. This feature request was inspired by https://bugzilla.altlinux.org/show_bug.cgi?id=14408 , https://bugzilla.altlinux.org/show_bug.cgi?id=14409 .
The kernel build system already does some checks for undefined symbols; unfortunately, even in 2.6.24 failures of these checks when building external modules are just warnings. However, the real problem with drm is not undefined symbols, but multiple definitions of symbols (the drm module cannot be loaded due to the duplicate idr_remove_all definition, and then all modules which depend on it fail with unresolved symbols), and the uhci_hcd problem is due to races between concurrent modprobe invocations.
(In reply to comment #1) > However, the real problem with drm is not undefined symbols, but multiple > definitions of symbols (the drm module cannot be loaded due to the duplicate > idr_remove_all definition, I see. Added "multiple definitions of symbols" to the summary.
Guess VM support is out of rpm-build-kernel scope.
Проверка, о которой просили, теперь делается самой сборочной системой ядра, и не предупреждением, а ошибкой. Собрал в контейнере Sisyphus внешний модуль с заведомо неразрешённым символом против kernel-headers-modules-6.12: ERROR: modpost: "this_symbol_does_not_exist" [/tmp/m/hello.ko] undefined! make[2]: *** [scripts/Makefile.modpost:145: /tmp/m/Module.symvers] Error 1 make rc=2 Файл .ko не создаётся, сборка падает — модуль с неразрешёнными символами в репозиторий не попадёт. Дублирующиеся экспорты modpost тоже ловит («exports duplicate symbol»). Проверка загрузки собранных модулей в виртуальной машине, как и говорил mike@ в комментарии 3, выходит за рамки rpm-build-kernel (сейчас это бинарный пакет из kernel-build-tools 0.132-alt1). FIXED.