objdump:无法识别文件格式

objdump:无法识别文件格式

我在尝试在 Gentoo 下编译新内核时遇到这些错误...

scripts/kconfig/conf  --syncconfig Kconfig
  DESCEND  objtool
  CC      kernel/bounds.s
  CC      arch/x86/kernel/asm-offsets.s
  GEN     scripts/gdb/linux/constants.py
  CALL    scripts/checksyscalls.sh
  CC [M]  arch/x86/kvm/../../../virt/kvm/kvm_main.o
  CC      init/main.o
  CC      kernel/bpf/core.o
  CC      arch/x86/ia32/sys_ia32.o
  CC      arch/x86/kernel/acpi/boot.o
  CC      arch/x86/events/amd/core.o
  CC      certs/system_keyring.o
  CC      arch/x86/entry/vdso/vma.o
  CC      arch/x86/crypto/sha1-mb/sha1_mb.o
objdump: certs/.tmp_system_keyring.o: unable to initialize decompress status for section .debug_info
objdump: certs/.tmp_system_keyring.o: unable to initialize decompress status for section .debug_info
objdump: certs/.tmp_system_keyring.o: file format not recognized
  EXTRACT_CERTS
  AS      certs/system_certificates.o
  AR      certs/built-in.a
objdump: arch/x86/ia32/.tmp_sys_ia32.o: unable to initialize decompress status for section .debug_info
objdump: arch/x86/ia32/.tmp_sys_ia32.o: unable to initialize decompress status for section .debug_info
objdump: arch/x86/ia32/.tmp_sys_ia32.o: file format not recognized
objdump: arch/x86/events/amd/.tmp_core.o: unable to initialize decompress status for section .debug_info
objdump: arch/x86/events/amd/.tmp_core.o: unable to initialize decompress status for section .debug_info
objdump: arch/x86/events/amd/.tmp_core.o: file format not recognized
  CC      arch/x86/ia32/ia32_signal.o
  CC      arch/x86/mm/init.o
  CC      arch/x86/events/amd/uncore.o
objdump: arch/x86/entry/vdso/.tmp_vma.o: unable to initialize decompress status for section .debug_info
objdump: arch/x86/entry/vdso/.tmp_vma.o: unable to initialize decompress status for section .debug_info
objdump: arch/x86/entry/vdso/.tmp_vma.o: file format not recognized
  CC      arch/x86/entry/vdso/vdso32-setup.o
objdump: arch/x86/kernel/acpi/.tmp_boot.o: unable to initialize decompress status for section .debug_info
objdump: arch/x86/kernel/acpi/.tmp_boot.o: unable to initialize decompress status for section .debug_info
objdump: arch/x86/kernel/acpi/.tmp_boot.o: file format not recognized
  CC      arch/x86/kernel/acpi/sleep.o
  AR      arch/x86/crypto/sha1-mb/built-in.a
objdump: init/.tmp_main.o: unable to initialize decompress status for section .debug_info
objdump: init/.tmp_main.o: unable to initialize decompress status for section .debug_info
objdump: init/.tmp_main.o: file format not recognized
...

我已经重建了binutils(这是 objdump 的来源包),但这没有效果。

我可以毫无问题地编译和安装其他软件包/软件,但这会阻止内核编译完成。

答案1

根据错误 671650elfutils-0.175有对齐问题。

切换到链接器ld.gold会出现大量有关节对齐的警告。

尝试恢复到elfutils-0.173

# emerge dev-libs/elfutils-0.173

然后重建你的内核。

sys-kernel/gentoo-sources-4.19.3在我的系统上可以很好地构建和加载elfutils-0.173.

相关内容