ファイルコマンドでELFバイナリがLinux 2.6.9用であると言うのはなぜですか?

ファイルコマンドでELFバイナリがLinux 2.6.9用であると言うのはなぜですか?

ELF バイナリでファイルを実行するたびに、次の結果が表示されます。

[jonescb@localhost ~]$ file a.out
a.out: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for
GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, 
not stripped

このバイナリが2.6.8で実行されるのを防ぐために、Linux 2.6.9で何が変更されたのか疑問に思います。 Linux 2.0にELFサポートは追加されていませんか?

ベストアンサー1

glibc--enable-kernelサポートされている最小カーネルバージョンを指定できる設定オプションがあります。オブジェクトファイルがこのglibcバージョンに関連付けられると、リンカは.note.ABI-tagこの最小カーネルバージョンを含む結果実行可能ファイルにSHT_NOTEセクションを追加します。正確な形式は以下に定義されています。最下位ビットそして、fileその部分を見つけて解釈する方法を学びます。

特定のglibcビルドに2.6.9が必要な理由は、誰がビルドしたかによって異なります。私のシステム(Gentoo)でも同じです。 glibc ebuild のコメントには、2.6.9 が 2.6.9 に必要な最小バージョンであるため、2.6.9 を指定することが示されています。NPTLしたがって、これは一般的な選択肢かもしれません。もう一つは登場したらしい最小要件なので、2.4.1です。Linuxスレッド、NPTL以前に使用されたパッケージ

おすすめ記事