0

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.

1 Answer 1

1

Base means that there is no version associated with the symbol, i.e. the libraries which provide the symbols don’t provide multiple versions (or in the case of symbols in ls itself, ls contains a single version). The libraries used by ls can be seen using ldd /bin/ls.

See What do the multiple GLIBC versions mean in the output of ldd? for details.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .