como verificar qual versão do bfd estou usando?

como verificar qual versão do bfd estou usando?

Encontrei um bug ao executar o gcccomando em uma máquina Linux e, pesquisando o bug no Google, descobri que as pessoas dizem que ele foi corrigido em uma revisão mais recente da bfdbiblioteca. Pesquisando mais, descobri que bfdpode ser uma biblioteca estática à qual gccestava vinculada quando foi construída, não uma biblioteca dinâmica compartilhada, mas não tenho certeza disso.

Como descobrir se a gccversão que tenho está usando bfdestática ou dinamicamente e qual versão bfd?

Responder1

BFD é a biblioteca usada pelos programas que compõem o Binutils do GNU, que incluem ld, gold, e as, entre outros. Eles geralmente vêm em um pacote chamadobinutilsebinutils-dev(Debian e amigos) oubinutils-devel(Fedora/RHEL). Você pode executar qualquer um dos programas mencionados acima com um -Vswitch para obter o número da versão. Você pode usar readelfpara listar suas dependências. Para listar as dependências ldincluindo seus tipos:

readelf -d `which ld`

Dynamic section at offset 0xc900c contains 28 entries:
  Tag        Type                         Name/Value
 0x00000001 (NEEDED)                     Shared library: [libbfd-2.22-system.so]
 0x00000001 (NEEDED)                     Shared library: [libz.so.1]
 0x00000001 (NEEDED)                     Shared library: [libdl.so.2]
 0x00000001 (NEEDED)                     Shared library: [libc.so.6]

Não estou muito familiarizado com o funcionamento interno do GCC, mas diria que é estranho pensar que o GCC esteja alguma vez ligado ao BFD.

informação relacionada