* elf32-h8300 (h8_relax_section): Add new relaxation of mov
[deliverable/binutils-gdb.git] / bfd / elflink.c
index ba65f21aaa38935706508530105631c5d23e5002..fa805bce213b36d1a4b7577bace5ea23401bc50e 100644 (file)
@@ -4482,10 +4482,10 @@ error_free_dyn:
          if (!add_needed
              && definition
              && ((dynsym
-                  && h->ref_regular
+                  && h->ref_regular_nonweak
                   && (undef_bfd == NULL
                       || (undef_bfd->flags & BFD_PLUGIN) == 0))
-                 || (h->ref_dynamic
+                 || (h->ref_dynamic_nonweak
                      && (elf_dyn_lib_class (abfd) & DYN_AS_NEEDED) != 0
                      && !on_needed_list (elf_dt_name (abfd), htab->needed))))
            {
@@ -4498,6 +4498,7 @@ error_free_dyn:
                 --no-add-needed is used and the reference was not
                 a weak one.  */
              if (undef_bfd != NULL
+                 && h->ref_regular_nonweak
                  && (elf_dyn_lib_class (abfd) & DYN_NO_NEEDED) != 0)
                {
                  (*_bfd_error_handler)
@@ -13025,6 +13026,11 @@ _bfd_elf_make_dynamic_reloc_section (asection *         sec,
          reloc_sec = bfd_make_section_anyway_with_flags (dynobj, name, flags);
          if (reloc_sec != NULL)
            {
+             /* _bfd_elf_get_sec_type_attr chooses a section type by
+                name.  Override as it may be wrong, eg. for a user
+                section named "auto" we'll get ".relauto" which is
+                seen to be a .rela section.  */
+             elf_section_type (reloc_sec) = is_rela ? SHT_RELA : SHT_REL;
              if (! bfd_set_section_alignment (dynobj, reloc_sec, alignment))
                reloc_sec = NULL;
            }
This page took 0.033615 seconds and 4 git commands to generate.