0

vfs_read、writeなどのカーネルレベルの関数を使用するカーネルモジュールを作成しました。このモジュールには、このモジュールをビルドして.koファイルを取得するmakefileがあります。この.koファイルのobjdump出力を分析したいと思います。ただし、vfs_readやwriteなどのカーネル関数が.koファイルで解決されていないことを確認しました。それらは呼び出されたばかりで、実行時に解決されると思います。分析の目的で、makefileにいくつかの変更を加え、これらすべての関数を単一の.koファイルに静的にリンクすることは可能ですか?コンパイル中にstaticを追加しようとしましたが、役に立ちませんでした。とにかくそうすることを誰かが提案できますか?

4

1 に答える 1

0

ld(1) のマニュアルを参照してください-static

-static 共有ライブラリに対してリンクしません。

カーネルモジュールはどの共有ライブラリ (またはそのライブラリ) に対してもリンクしないため、何の効果もありません。

カーネルは、独自の「関数プール」を使用して、ロード時に未定義の参照を解決します。したがって、リンクはメモリ内にのみ存在するか、コードをカーネルに配置したときにのみ存在します。

于 2010-12-09T21:06:04.553 に答える