bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug ld/26094] Corrupt version table generated


From: hjl.tools at gmail dot com
Subject: [Bug ld/26094] Corrupt version table generated
Date: Tue, 09 Jun 2020 14:17:47 +0000

https://sourceware.org/bugzilla/show_bug.cgi?id=26094

H.J. Lu <hjl.tools at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
     Ever confirmed|0                           |1
   Last reconfirmed|                            |2020-06-09
             Status|UNCONFIRMED                 |NEW

--- Comment #2 from H.J. Lu <hjl.tools at gmail dot com> ---
I am testing this:

diff --git a/bfd/elflink.c b/bfd/elflink.c
index 60a3c2216f..1912b8b0dd 100644
--- a/bfd/elflink.c
+++ b/bfd/elflink.c
@@ -14805,9 +14805,12 @@ bfd_elf_define_start_stop (struct bfd_link_info *info,
   if (h != NULL
       && (h->root.type == bfd_link_hash_undefined
          || h->root.type == bfd_link_hash_undefweak
-         || ((h->ref_regular || h->def_dynamic) && !h->def_regular)))
+         || ((h->ref_regular || h->def_dynamic)
+             && !h->def_regular
+             && h->root.type != bfd_link_hash_common)))
     {
       bfd_boolean was_dynamic = h->ref_dynamic || h->def_dynamic;
+      h->verinfo.verdef = NULL;
       h->root.type = bfd_link_hash_defined;
       h->root.u.def.section = sec;
       h->root.u.def.value = 0;
@@ -14824,7 +14827,8 @@ bfd_elf_define_start_stop (struct bfd_link_info *info,
        }
       else
        {
-         if (ELF_ST_VISIBILITY (h->other) == STV_DEFAULT)
+         if ((bfd_link_dll (info))
+             && ELF_ST_VISIBILITY (h->other) == STV_DEFAULT)
            h->other = (h->other & ~ELF_ST_VISIBILITY (-1)) | STV_PROTECTED;
          if (was_dynamic)
            bfd_elf_link_record_dynamic_symbol (info, h);

-- 
You are receiving this mail because:
You are on the CC list for the bug.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]