[PATCH] MIPS: Don't __gnu_lto_slim to .scommon
YunQiang Su
yunqiang.su@cipunited.com
Mon Jul 3 10:36:47 GMT 2023
The LTO plugin doesn't expect __gnu_lto_slim is marked as COMMON,
and in .scommon section.
Let's skip __gnu_lto_slim when detect symbols that should be moved
to .scommon.
This patch can fix testcase:
PR ld/15323 (3)
PR ld/15323 (4)
for MIPS.
---
bfd/elfxx-mips.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c
index 71f2dc9d779..63742de009c 100644
--- a/bfd/elfxx-mips.c
+++ b/bfd/elfxx-mips.c
@@ -7861,6 +7861,10 @@ _bfd_mips_elf_add_symbol_hook (bfd *abfd, struct bfd_link_info *info,
switch (sym->st_shndx)
{
case SHN_COMMON:
+ /* __gnu_lto_slim shouldn't mark as COMMON and move to .scommon:
+ lto plugin doesn't expect so. */
+ if (strcmp (*namep, "__gnu_lto_slim") == 0)
+ break;
/* Common symbols less than the GP size are automatically
treated as SHN_MIPS_SCOMMON symbols. */
if (sym->st_size > elf_gp_size (abfd)
--
2.30.2
More information about the Binutils
mailing list