bug-binutils
[Top][All Lists]
Advanced

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

[Bug ld/22220] BFD linker plugin wrongly marks symbols as PREVAILING_DEF


From: amodra at gmail dot com
Subject: [Bug ld/22220] BFD linker plugin wrongly marks symbols as PREVAILING_DEF_IRONLY
Date: Wed, 27 Sep 2017 11:53:27 +0000

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

--- Comment #6 from Alan Modra <amodra at gmail dot com> ---
gold has the following

static inline bool
is_visible_from_outside(Symbol* lsym)
{
  if (lsym->in_dyn())
    return true;
  if (parameters->options().export_dynamic() || parameters->options().shared()
      || parameters->options().in_dynamic_list(lsym->name())
      || parameters->options().is_export_dynamic_symbol(lsym->name()))
    return lsym->is_externally_visible();
  return false;
}

while ld.bfd uses

static inline bfd_boolean
is_visible_from_outside (struct ld_plugin_symbol *lsym,
                         struct bfd_link_hash_entry *blhe)
{
  struct bfd_sym_chain *sym;

  if (bfd_link_relocatable (&link_info))
    return TRUE;
  if (blhe->non_ir_ref_dynamic
      || link_info.export_dynamic
      || bfd_link_dll (&link_info))
    {
...

What makes a difference here is that gold has is_dyn() true while the roughly
equivalent ld.bfd non_ir_ref_dynamic is not set.

-- 
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]