私の以前の質問に対する回答はありませんが、いくつかの手がかりになる可能性のあるいくつかの推測と、回答へのステップを次に示します。
私の記憶では、.ko は、ソース モジュールによって生成されたすべての .o ファイルをマージし、.modinfo セクションを追加した結果の .o ファイルに他なりません。Makefile をビルドする .ko の最後には、LD 呼び出しがあります。私の記憶では、ld は -r オプションで呼び出されます。これにより、Makefile が .ko を呼び出す .o ファイルが作成されます。この結果のファイルは、アーカイブまたはオブジェクト ライブラリ (.a ファイル) と混同しないでください。これは、複数の .o ファイルを 1 つとしてアーカイブ/パッケージ化する形式です。マージされたオブジェクトは、さらに別の .o を生成するリンクの結果です。 module: しかし、結果のモジュールでは、マージできるすべてのセクションがあり、解決できるすべてのパブリック/外部ペアがそれらのセクション内にあります。したがって、すべての「ローカル」extern 定義を含む .ko ファイルになると仮定します。
前者はマージ中に ld によって既に解決されている可能性が高いですが、.ko の外部からも呼び出し可能にするつもりかどうかを ld が知る方法はありません。
したがって、表示される不要なシンボルは、各 .o ファイルの extern であるシンボルですが、結果の .ko の extern としては必要ありません。そして、あなたが探しているのは、それらだけを取り除く方法です。
この最後の段落は、削除したいシンボルを適切に説明していますか?