Can someone tell me what is going on here?
This works fine for most libraries:
Code:
$ objdump -f /usr/lib64/libm.so
/usr/lib64/libm.so: file format elf64-x86-64
architecture: i386:x86-64, flags 0x00000150:
HAS_SYMS, DYNAMIC, D_PAGED
start address 0x0000000000003ea0
$ objdump -f /usr/lib/libm.so
/usr/lib/libm.so: file format elf32-i386
architecture: i386, flags 0x00000150:
HAS_SYMS, DYNAMIC, D_PAGED
start address 0x00003470
However, for some libraries (with debugging info? from glibc-devel?) this fails:
Code:
$ objdump -f /usr/lib64/libc.so
objdump: /usr/lib64/libc.so: File format not recognized
$ rpm -q --whatprovides /usr/lib64/libc.so
glibc-devel-2.13-1.x86_64
$ objdump -f /usr/lib64/libpthread.so
objdump: /usr/lib64/libpthread.so: File format not recognized
$ rpm -q --whatprovides /usr/lib64/libpthread.so
glibc-devel-2.13-1.x86_64
But...
Code:
$ objdump -f /lib64/libpthread.so.0
/lib64/libpthread.so.0: file format elf64-x86-64
architecture: i386:x86-64, flags 0x00000150:
HAS_SYMS, DYNAMIC, D_PAGED
start address 0x0000000000005b80
$ objdump -f /lib64/libc.so.6
/lib64/libc.so.6: file format elf64-x86-64
architecture: i386:x86-64, flags 0x00000150:
HAS_SYMS, DYNAMIC, D_PAGED
start address 0x000000000001ef70
$ rpm -q --whatprovides /lib64/libc.so.6
glibc-2.13-1.x86_64
It's not just 64-bit libs, the same is true for 32-bit. It's not a corrupted file, or at least, this is the exact binary file that glibc-devel provides.
Is this a bug or an expected result? If I don't hear anything here I'll submit a bug.