objdumpダイナミックシンボルテーブルのBaseはどういう意味ですか?

objdumpダイナミックシンボルテーブルのBaseはどういう意味ですか?

動的シンボルテーブルエントリを印刷するobjdump -TGNUユーティリティで実行される次の切り捨て出力を検討してください。ls

/usr/bin/ls:     file format elf64-x86-64

DYNAMIC SYMBOL TABLE:
0000000000000000      DF *UND*  0000000000000000 (GLIBC_2.3)  __ctype_toupper_loc
0000000000000000      DF *UND*  0000000000000000 (GLIBC_2.2.5) getenv
0000000000000000      DO *UND*  0000000000000000 (GLIBC_2.2.5) __progname
0000000000000000      DF *UND*  0000000000000000 (GLIBC_2.2.5) sigprocmask
0000000000000000      DF *UND*  0000000000000000 (GLIBC_2.3.4) __snprintf_chk
0000000000000000      DF *UND*  0000000000000000 (GLIBC_2.2.5) raise
0000000000000000      DF *UND*  0000000000000000 (GLIBC_2.34) __libc_start_main
0000000000000000      DF *UND*  0000000000000000 (GLIBC_2.2.5) abort
0000000000000000      DF *UND*  0000000000000000 (GLIBC_2.2.5) __errno_location
0000000000000000      DF *UND*  0000000000000000 (GLIBC_2.2.5) strncmp
0000000000000000  w   D  *UND*  0000000000000000  Base        _ITM_deregisterTMCloneTable

Base最後の行と列6はどういう意味ですか?たとえば、これが関数バージョンで(GLIBC_2.2.5)あることは明らかです。しかし、これらの関数はどの外部ライブラリで定義されていますか?これを理解するのに役立ちます。glibcstrncmpBase

答え1

Baseシンボルに関連付けられたバージョンがないことを意味します。つまりlsシンボルを提供するライブラリは、複数のバージョン(またはシンボル自体の場合はls単一バージョン)を提供しません。lsを使用して使用されているライブラリを表示できますldd /bin/ls

バラよりldd出力に複数のGLIBCバージョンがあることはどういう意味ですか?もっと学ぶ。

関連情報