22

ダウンロードしてコンパイルした glibc-2.13。malloc() を実行するサンプル C プログラムを実行しようとしたとき。次のエラーが表示されます elf file OS ABI invalid

誰でもこの問題を解決するのに役立つポインタを渡してもらえますか.私のカーネルバージョンはlinux-2.6.35.9であることに注意してください.

4

4 に答える 4

34

問題はカーネルのバージョンではありません。

Linuxシステムのローダーは新しいABIをサポートしていません。比較的最近まで、Linux ELF バイナリはSystem VABI を使用していました。最近、STT_GNU_IFUNC をサポートするために、LinuxABI が追加されました。システムC ライブラリを更新して、STT_GNU_IFUNC をサポートするローダーを持たせる必要があります。そうすれば、LinuxABI タイプの ELF オブジェクトも認識されるようになります。

必要に応じて、STT_GNU_IFUNC が何をするのかを理解するために、Dave Miller の Sparc 用 STT_GNU_IFUNC に関するブログ エントリ (アーカイブ)を参照してください。

于 2011-10-04T16:52:29.770 に答える
3

--enable-multiarchifunc と新しい LINUX ABI の使用を強制するフラグを使用して glibc がビルドされた可能性があります。

于 2012-01-25T11:16:41.533 に答える
1

私が言えることは--enable-multiarch、それがデフォルト設定であり、設定して無効にする必要があるということです--enable-multiarch=no

于 2016-04-14T13:59:35.447 に答える