objdump e resolução de ligação de chamadas de função local?
Se eu executar o objdump -d em um arquivo (linux amd64) .o, as chamadas de função aparecerão sem a resolução do tempo do link. Exemplo
90: 66 89 44 24 1c mov %ax,0x1c(%rsp)
95: 44 89 74 24 10 mov %r14d,0x10(%rsp)
9a: e8 00 00 00 00 callq 9f <foo+0x9f>
9f: 83 f8 ff cmp $0xffffffffffffffff,%eax
a2: 74 5e je 102 <foo+0x102>
Um ramo dentro da função aparece corretamente, mas o callq é apenas o stub inserido no vinculador (com quatro bytes de zeros disponíveis para o vinculador inserir um endereço apropriado
Existe uma maneira, sem realmente vincular, de obter uma listagem de montagem que tenha os nomes das funções resolvidos? Não me importo com o endereço que eventualmente será usado, apenas o nome da função. Essa informação precisa estar no arquivo .o, pois o vinculador deve consumi-la para fazer seu trabalh
Eu pergunto porque a lib compartilhada em que o código em questão entra é de cerca de 140 Mb e é necessário umgrande tempo para executar o objdump -d para obter o despejo do asm com todas as chamadas de função resolvidas com seus nomes reai