]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
x86-64: Return SHN_COMMON on non-ELF input
authorH.J. Lu <hjl.tools@gmail.com>
Thu, 30 Jul 2026 07:47:05 +0000 (15:47 +0800)
committerH.J. Lu <hjl.tools@gmail.com>
Tue, 4 Aug 2026 03:06:04 +0000 (11:06 +0800)
elf_x86_64_common_definition segfaults on PE/x86-64 input.  Return
SHN_COMMON on non-ELF input.  Linker now gets assertion fail at
bfd/coffgen.c:575, instead of getting segfault.

PR ld/34449
* elf64-x86-64.c (elf_x86_64_common_definition): Return
SHN_COMMON on non-ELF input.

Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
bfd/elf64-x86-64.c

index ade6613b62a41a0ee046d0afb5a8e54955439d72..3700520b40f80ed97b6f2a5bc997c88d4cdd3ec3 100644 (file)
@@ -6091,7 +6091,8 @@ elf_x86_64_common_definition (Elf_Internal_Sym *sym)
 static unsigned int
 elf_x86_64_common_section_index (asection *sec)
 {
-  if ((elf_section_flags (sec) & SHF_X86_64_LARGE) == 0)
+  if (bfd_get_flavour (sec->owner) != bfd_target_elf_flavour
+      || (elf_section_flags (sec) & SHF_X86_64_LARGE) == 0)
     return SHN_COMMON;
   else
     return SHN_X86_64_LCOMMON;