como verificar qual versão do bfd estou usando?

1

Encontrei um bug ao executar o comando gcc em uma máquina Linux, e no googling, descobri que as pessoas dizem que ele foi corrigido em uma nova revisão da biblioteca bfd . Pesquisando mais, descobri, que bfd pode ser uma biblioteca estática com a qual gcc foi vinculada quando foi criada, não uma biblioteca dinâmica compartilhada, mas não tenho certeza disso.

Como descobrir se a versão gcc que tenho está usando bfd estaticamente ou dinamicamente e qual versão de bfd ?

    
por user322908 21.07.2015 / 05:33

1 resposta

2

O 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 chamado binutils e binutils-dev (Debian e amigos) ou binutils-devel (Fedora / RHEL). Você pode executar qualquer um dos programas mencionados acima com uma opção -V para obter seu número de versão. Você pode usar readelf para listar suas dependências. Para listar as dependências de ld , incluindo 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]

Eu não estou muito familiarizado com o funcionamento interno do GCC, mas eu diria que é estranho pensar que o GCC está ligado ao BFD.

    
por 21.07.2015 / 06:48

Tags