From: Alan Modra Date: Sun, 30 Nov 2025 03:44:18 +0000 (+1030) Subject: ELF symbol version output cleanup X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=09e5148c022b6131e3416aa662419a745da34906;p=thirdparty%2Fbinutils-gdb.git ELF symbol version output cleanup * elflink.c (elf_link_output_extsym): Localise code setting VERSYM_HIDDEN to previous branch of "if" where def_regular might be true. Delete noversion. Set vs_vers to zero instead. --- diff --git a/bfd/elflink.c b/bfd/elflink.c index 7a5f54b926f..adc21d7d821 100644 --- a/bfd/elflink.c +++ b/bfd/elflink.c @@ -11138,7 +11138,6 @@ elf_link_output_extsym (struct bfd_hash_entry *bh, void *data) { Elf_Internal_Versym iversym; Elf_External_Versym *eversym; - bool noversion = false; if (!h->def_regular && !ELF_COMMON_DEF_P (h)) { @@ -11150,7 +11149,7 @@ elf_link_output_extsym (struct bfd_hash_entry *bh, void *data) if (strchr (h->root.root.string, ELF_VER_CHR) == NULL) /* Referenced symbol without ELF_VER_CHR has no version. */ - noversion = true; + iversym.vs_vers = 0; } else iversym.vs_vers = h->verinfo.verdef->vd_exp_refno + 1; @@ -11163,22 +11162,16 @@ elf_link_output_extsym (struct bfd_hash_entry *bh, void *data) iversym.vs_vers = h->verinfo.vertree->vernum + 1; if (flinfo->info->create_default_symver) iversym.vs_vers++; - } - /* Don't set its DT_VERSYM entry for unversioned symbol. */ - if (!noversion) - { /* Turn on VERSYM_HIDDEN only if the hidden versioned symbol is defined locally. */ if (h->versioned == versioned_hidden && h->def_regular) iversym.vs_vers |= VERSYM_HIDDEN; - - eversym - = (Elf_External_Versym *) flinfo->symver_sec->contents; - eversym += h->dynindx; - _bfd_elf_swap_versym_out (flinfo->output_bfd, &iversym, - eversym); } + + eversym = (Elf_External_Versym *) flinfo->symver_sec->contents; + eversym += h->dynindx; + _bfd_elf_swap_versym_out (flinfo->output_bfd, &iversym, eversym); } }