[Bug 237068] /usr/local/bin/ld: BFD (GNU Binutils) 2.30 assertion fail elflink.c:2824
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Tue Jul 9 23:33:36 UTC 2019
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=237068
--- Comment #52 from Mark Millard <marklmi26-fbsd at yahoo.com> ---
(In reply to Justin Hibbits from comment #51)
I do not know.
if (h->is_weakalias)
{
struct elf_link_hash_entry *def = weakdef (h);
// Here, so that def->def_regular is not based on bfd_link_hash_indirect ?
// (Not a "real definition"?)
/* If the real definition is defined by a regular object file,
don't do anything special. See the longer description in
_bfd_elf_adjust_dynamic_symbol, below. */
if (def->def_regular)
{
h = def;
while ((h = h->u.alias) != def)
h->is_weakalias = 0;
}
else
{
while (h->root.type == bfd_link_hash_indirect)
h = (struct elf_link_hash_entry *) h->root.u.i.link;
// Here instead?
BFD_ASSERT (h->root.type == bfd_link_hash_defined
|| h->root.type == bfd_link_hash_defweak);
BFD_ASSERT (def->def_dynamic);
BFD_ASSERT (def->root.type == bfd_link_hash_defined);
(*bed->elf_backend_copy_indirect_symbol) (eif->info, def, h);
}
}
Might:
while (def->root.type == bfd_link_hash_indirect)
def = (struct elf_link_hash_entry *) def->root.u.i.link;
(validly) reach something else that is not an example of bfd_link_hash_defined?
Should def->root.type == bfd_link_hash_indirect have been possible in the
first place?
I did not figure out that much about the context for the code.
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the freebsd-toolchain
mailing list