objdump и разрешающая связь локальных вызовов функций?
Если я запускаю objdump -d для файла (linux amd64) .o, вызовы функций отображаются без разрешения времени ссылки. Пример:
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>
Ветвь внутри функции отображается правильно, но callq - это просто заглушка, вставленная для компоновщика (с четырьмя байтами нулей, доступными для компоновщика, чтобы вставить правильный адрес).
Есть ли способ, без фактического связывания, получить список сборки, в котором разрешены имена функций? Меня не волнует адрес, который в конечном итоге будет использоваться, только имя функции. Эта информация должна быть в файле .o, так как компоновщик должен использовать ее для выполнения своей работы.
Я спрашиваю, потому что общая библиотека, в которую входит рассматриваемый код, составляет около 140 МБ, и она занимаетдолго время для запуска objdump -d, чтобы получить дамп asm со всеми вызовами функций, разрешенными в их настоящие имена.