daily update
[deliverable/binutils-gdb.git] / bfd / elflink.c
index f22e023df88c76b2ca055e2f384d38faa78e64d1..2fcbac3e06dbbca0e1a06cf636528a5bf1091ff3 100644 (file)
@@ -4394,6 +4394,8 @@ error_free_dyn:
                    {
                      h->def_dynamic = 0;
                      h->ref_dynamic = 1;
+                     /* PR 12549: Note if the dynamic reference is weak.  */
+                     h->ref_dynamic_nonweak = (bind != STB_WEAK);
                    }
                }
 
@@ -4411,6 +4413,9 @@ error_free_dyn:
                {
                  h->ref_dynamic = 1;
                  hi->ref_dynamic = 1;
+                 /* PR 12549: Note if the dynamic reference is weak.  */
+                 hi->ref_dynamic_nonweak =
+                   h->ref_dynamic_nonweak = (bind != STB_WEAK);
                }
              else
                {
@@ -4498,8 +4503,8 @@ error_free_dyn:
          if (!add_needed
              && definition
              && ((dynsym
-                  && h->ref_regular)
-                 || (h->ref_dynamic
+                  && h->ref_regular_nonweak)
+                 || (h->ref_dynamic_nonweak
                      && (elf_dyn_lib_class (abfd) & DYN_AS_NEEDED) != 0
                      && !on_needed_list (elf_dt_name (abfd), htab->needed))))
            {
This page took 0.025228 seconds and 4 git commands to generate.