¿Cómo comprobar qué versión de BFD estoy usando?

¿Cómo comprobar qué versión de BFD estoy usando?

Encontré un error al ejecutar el gcccomando en una máquina Linux y, al buscar en Google el error, encontré que la gente dice que se ha solucionado en una revisión más reciente de la bfdbiblioteca. Al seguir buscando, descubrí que bfdpuede ser una biblioteca estática a la que gccse vinculó cuando se creó, no una biblioteca dinámica compartida, pero no estoy seguro de eso.

¿Cómo saber si la gccversión que tengo se utiliza bfdde forma estática o dinámica y de qué versión bfd?

Respuesta1

BFD es la biblioteca utilizada por los programas que componen los Binutils de GNU, que incluyen ld, goldy as, entre otros. Generalmente vienen en un paquete llamadobinutilsybinutils-dev(Debian y amigos) obinutils-devel(Fedora/RHEL). Puede ejecutar cualquiera de los programas antes mencionados con un -Vinterruptor para obtener su número de versión. Puede utilizar readelfpara enumerar sus dependencias. Para enumerar las dependencias ldincluyendo sus 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]

No estoy muy familiarizado con el funcionamiento interno de GCC, pero diría que es extraño pensar que GCC alguna vez esté vinculado con BFD.

información relacionada