ダウンロードしてコンパイルした glibc-2.13。malloc() を実行するサンプル C プログラムを実行しようとしたとき。次のエラーが表示されます
elf file OS ABI invalid
誰でもこの問題を解決するのに役立つポインタを渡してもらえますか.私のカーネルバージョンはlinux-2.6.35.9であることに注意してください.
ダウンロードしてコンパイルした glibc-2.13。malloc() を実行するサンプル C プログラムを実行しようとしたとき。次のエラーが表示されます
elf file OS ABI invalid
誰でもこの問題を解決するのに役立つポインタを渡してもらえますか.私のカーネルバージョンはlinux-2.6.35.9であることに注意してください.
問題はカーネルのバージョンではありません。
Linux
システムのローダーは新しいABIをサポートしていません。比較的最近まで、Linux ELF バイナリはSystem V
ABI を使用していました。最近、STT_GNU_IFUNC をサポートするために、Linux
ABI が追加されました。システムC ライブラリを更新して、STT_GNU_IFUNC をサポートするローダーを持たせる必要があります。そうすれば、Linux
ABI タイプの ELF オブジェクトも認識されるようになります。
必要に応じて、STT_GNU_IFUNC が何をするのかを理解するために、Dave Miller の Sparc 用 STT_GNU_IFUNC に関するブログ エントリ (アーカイブ)を参照してください。
--enable-multiarch
ifunc と新しい LINUX ABI の使用を強制するフラグを使用して glibc がビルドされた可能性があります。
私が言えることは--enable-multiarch
、それがデフォルト設定であり、設定して無効にする必要があるということです--enable-multiarch=no
。