aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorPaul Iannetta <piannetta@kalrayinc.com>2023-08-23 16:39:21 +0200
committerAlan Modra <amodra@gmail.com>2023-08-24 12:36:25 +0930
commit66644c5dc3d61b5cabefba7f0ddb467c2ca750ed (patch)
tree6431bca22fbbbe7bb37dc1beca280520de8145c2 /gas
parent492e9b6b0f9d104467a9986281e74455ed5b7738 (diff)
downloadbinutils-66644c5dc3d61b5cabefba7f0ddb467c2ca750ed.zip
binutils-66644c5dc3d61b5cabefba7f0ddb467c2ca750ed.tar.gz
binutils-66644c5dc3d61b5cabefba7f0ddb467c2ca750ed.tar.bz2
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.
Diffstat (limited to 'gas')
-rw-r--r--gas/config/tc-kvx.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/gas/config/tc-kvx.c b/gas/config/tc-kvx.c
index c5c8312..be8bc7d 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)
;