[2/4] kvx: fix handling of STB_GNU_UNIQUE symbols

Message ID 20230823143923.10105-3-piannetta@kalrayinc.com
State Unresolved
Headers
Series kvx: various fixes |

Checks

Context Check Description
snail/binutils-gdb-check warning Git am fail log

Commit Message

Paul Iannetta Aug. 23, 2023, 2:39 p.m. UTC
  When processing a STB_GNU_UNIQUE symbol we did not update has_gnu_osabi
correctly.

gas/ChangeLog:

2023-08-23  Paul Iannetta  <piannetta@kalrayinc.com>

	* 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(-)
  

Patch

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)
     ;