Respostas:
A @PSkocik respondeu a isso. Eu só quero adicionar mais detalhes. Existem dois tipos de seções de símbolos no ELF: .symtab
e .dynsym
(consulte a Especificação básica do Linux Standard Core, também conhecida como LSB_5.0.0 , para obter detalhes). .symtab
é para a etapa de vinculação da própria lib compartilhada. Depois que a vinculação terminar, a .symtab
seção não será mais necessária. A .dynsym
seção contém símbolos importantes que devem ser pesquisados pelo vinculador dinâmico em tempo de execução. nm
por padrão, apenas despeja símbolos na .symtab
seção.
LSB_5.0.0 Seção 10.2.2.1, “Tipos de seção ELF”, diz que uma lib compartilhada em conformidade deve ter uma .symtab
ou .dynsym
mas não ambas. Como parte da biblioteca ABI, libc é retirado da .symtab
especificação conforme.
Descubra se é um objeto compartilhado ou um arquivo ASCII comum. Se for um objeto compartilhado, você verá "Objeto compartilhado ELF de 32 bits LSF"
file /lib/i386-linux-gnu/libc.so.6
libc.so.6
é oviosamente um objeto compartilhado.