Consider the following truncated output from running objdump -T
(Prints dynamic symbol table entries) on the GNU ls
utility.
/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
What does Base
mean in the last line 6th column? For example, It is apparent that (GLIBC_2.2.5)
is the glibc
version for strncmp
function. However, in which external libraries are the Base
functions defined? Any pointers in understanding this would be helpful.