GNU/Linux >> Linux の 問題 >  >> Linux

glibc:elf ファイルの OS ABI が無効です

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

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

STT_GNU_IFUNC for Sparc に関する Dave Miller のブログ エントリ (アーカイブ) を参照して、STT_GNU_IFUNC の機能を理解してください。


新しいシステムのローダーを手に入れれば、それを使って動作させることができるかもしれません。しかし、あなたのプログラムがどこへ行ってもローダーを持ち運ばなければなりません。ここで説明したように、そのローダーを使用するようにプログラムをコンパイルするか、ここで述べたのと同様の方法で、プログラムをコンパイルしてから patchelf を使用してパッチを適用することができます。 OS ABI invalid を返すプログラムを実行できました 他の場所から ld-2.15.so をコピーすることにより、ld-2.5.so を持っていた Linux 2.6.18 (あなたのものよりも古い) でのエラー。

注:しない システムの ld*.so または ld-linux を上書きします。;-/


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


Linux
  1. Linuxファイルパーミッションの基本

  2. Linux –すべてがファイルですか?

  3. Linux でのフラット バイナリ ファイルの実行

  1. Linuxでファイルを移動する方法

  2. Linuxファイルのアクセス許可について

  3. Linuxでファイルの名前を変更するにはどうすればよいですか?

  1. Linuxテールコマンド

  2. Linuxタッチコマンド

  3. LinuxでのCatコマンド