x86-64: Return SHN_COMMON on non-ELF input
Checks
| Context |
Check |
Description |
| linaro-tcwg-bot/tcwg_binutils_build--master-arm |
success
|
Build passed
|
| linaro-tcwg-bot/tcwg_binutils_build--master-aarch64 |
success
|
Build passed
|
| linaro-tcwg-bot/tcwg_binutils_check--master-aarch64 |
success
|
Test passed
|
| linaro-tcwg-bot/tcwg_binutils_check--master-arm |
success
|
Test passed
|
Commit Message
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.
From fb72e8483e55333dd66f39c7ab5df250418133bc Mon Sep 17 00:00:00 2001
From: "H.J. Lu" <hjl.tools@gmail.com>
Date: Thu, 30 Jul 2026 15:47:05 +0800
Subject: [PATCH] x86-64: Return SHN_COMMON on non-ELF input
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 | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
@@ -6105,7 +6105,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;
--
2.55.0