相互に依存するLinuxカーネルモジュールをコンパイルする際に、リンカーは次のような未定義シンボルの警告を発します。
Building modules, stage 2.
MODPOST
*** Warning: "function_name1" [module_name] undefined!
*** Warning: "function_name2" [module_name] undefined!
*** Warning: "function_name3" [module_name] undefined!
未解決のシンボルは、insmod または modprobe を使用してモジュールがカーネルに挿入されるとすぐに解決されます。ただし、リンカーの警告を取り除く方法はありますか?
この問題に関して 3 つの Google SERP を読みましたが、誰も答えを知らないようです。カーネル モジュールをビルドするときに、これらのリンカー警告はこのように表示されるのでしょうか?
ベストアンサー1
KBUILD_EXTRA_SYMBOLS を以下のように使用します: KBUILD_EXTRA_SYMBOLS='your module path'/Module.symvers