From 66644c5dc3d61b5cabefba7f0ddb467c2ca750ed Mon Sep 17 00:00:00 2001 From: Paul Iannetta Date: Wed, 23 Aug 2023 16:39:21 +0200 Subject: [PATCH] kvx: fix handling of STB_GNU_UNIQUE symbols When processing a STB_GNU_UNIQUE symbol we did not update has_gnu_osabi correctly. * config/tc-kvx.c (kvx_end): Do not write to e_ident. (kvx_type): Properly handle STB_GNU_UNIQUE symbols. --- gas/config/tc-kvx.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/gas/config/tc-kvx.c b/gas/config/tc-kvx.c index c5c8312922f..be8bc7da923 100644 --- a/gas/config/tc-kvx.c +++ b/gas/config/tc-kvx.c @@ -2205,7 +2205,6 @@ void kvx_end (void) { int newflags; - Elf_Internal_Ehdr *i_ehdrp; if (!env.params.core_set) env.params.core = kvx_core_info->elf_core; @@ -2218,10 +2217,6 @@ kvx_end (void) bfd_set_private_flags (stdoutput, newflags); - i_ehdrp = elf_elfheader (stdoutput); - i_ehdrp->e_ident[EI_ABIVERSION] = env.params.abi; - i_ehdrp->e_ident[EI_OSABI] = env.params.osabi; - cleanup (); if (inside_bundle && insncnt != 0) @@ -2277,7 +2272,10 @@ kvx_type (int start ATTRIBUTE_UNUSED) type = BSF_ELF_COMMON; else if (strcmp (typename, "gnu_unique_object") == 0 || strcmp (typename, "STB_GNU_UNIQUE") == 0) - type = BSF_OBJECT | BSF_GNU_UNIQUE; + { + elf_tdata (stdoutput)->has_gnu_osabi |= elf_gnu_osabi_unique; + type = BSF_OBJECT | BSF_GNU_UNIQUE; + } else if (strcmp (typename, "notype") == 0 || strcmp (typename, "STT_NOTYPE") == 0) ; -- 2.30.2