0

ELF ライブラリにビルド ID をタグ付けするにはどうすればよいですか? sha1 サムを含むプリコンパイル済みライブラリをダウンロードしました。

user@localhost ~/tmp $ file foo.so.0
foo.so.0: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=0x7e3374eb34cafb69d3dca8b126f4aa33d44bb465, stripped

user@localhost ~/tmp $ ldd foo.so.0
linux-vdso.so.1 (0x00007fff955b1000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f436d3c9000)
libc.so.6 => /lib64/libc.so.6 (0x00007f436d022000)
/lib64/ld-linux-x86-64.so.2 (0x0000003000000000)
4

1 に答える 1

0

http://fedoraproject.org/wiki/RolandMcGrath/BuildIDから

ld: 新しいオプション --build-id :

これにより、タイプ SHT_NOTE とフラグ SHF_ALLOC (読み取り専用データ) を持つ .note.gnu.build-id セクションを合成するオプションが ld に追加されます。このセクションには、ELF ノート ヘッダーとビルド ID ビットが含まれます。これは、あたかも最初のオブジェクト ファイルの一部であるかのようにリンクに入ります (したがって、リンカー スクリプトによって配置またはマージされる可能性があります)。ビルド ID ビットは、リンクされたファイルを書き出す前に ld が行う最後の処理として決定されます。--build-id=style には、md5、uuid (ランダムな 128 ビット)、または 0xabcdef (16 進数で選択したバイト) を指定できます。--build-id だけがデフォルトで md5 になり、ファイル内のすべての ELF ヘッダー ビットとセクション コンテンツに基づいて 128 ビットの MD5 署名が計算されます。出力ファイルがそうでなければ同一であった場合。

Linux binutils-2.17.50.0.17 リリースには、f8test1 にこれが含まれています。

于 2013-04-21T18:37:25.120 に答える