次のコマンドを実行しobjdump -T
て、生成された出力の次のフラグメントを確認しますlibc.so.6
。
000000000009f8a0 g DF .text 000000000000001d (GLIBC_2.2.5) aio_write64
0000000000119d00 g DF .text 0000000000000034 GLIBC_PRIVATE __pread64_nocancel
000000000009aae0 g DF .text 00000000000003c0 GLIBC_2.34 pthread_rwlock_timedwrlock
0000000000133db0 g DF .text 0000000000000354 GLIBC_2.2.5 __backtrace_symbols
00000000001184f0 w DF .text 00000000000006c2 GLIBC_2.23 fts64_read
000000000009aae0 g DF .text 00000000000003c0 (GLIBC_2.2.5) pthread_rwlock_timedwrlock
出力の1行と4行は同じGLIBC
バージョン文字列を持ちますが、1つは括弧で囲まれ、もう1つはそうではありません。私はobjdump
他の多くのバイナリelf
の出力でこれらの違いを観察しました。(GLIBC_2.2.5)
出力GLIBC_2.2.5
間に微妙な違いはありますかobjdump
?
ベストアンサー1
バラより-T
オプションの説明:
バージョンがシンボルへのバージョンが指定されていない参照を確認するために使用されるデフォルトバージョンの場合はそのまま表示し、それ以外の場合は括弧内に入れます。
したがって、ライブラリはバージョン2.2.5を提供しますaio_write64
が、以前のバージョンとの互換性のためにのみデフォルトで他のバージョンが使用されます。今回もデフォルトpthread_rwlock_timedwrlock
バージョンは2.34ですが、2.2.5も付属しています。