coff-sh.c keep_relocs, keep_contents and keep_syms
authorAlan Modra <amodra@gmail.com>
Wed, 8 Feb 2023 13:21:04 +0000 (23:51 +1030)
committerAlan Modra <amodra@gmail.com>
Wed, 8 Feb 2023 23:10:51 +0000 (09:40 +1030)
keep_relocs and keep_contents are unused nowadays except by
xcofflink.c, and I can't see a reason why keep_syms needs to be set.
The external syms are read and used by sh_relax_section and used by
sh_relax_delete_bytes.  There doesn't appear to be any way that
freeing them will cause trouble.

* coff-sh.c (sh_relax_section): Don't set keep_relocs,
keep_contents or keep_syms.
(sh_relax_delete_bytes): Don't set keep_contents.

bfd/coff-sh.c

index cc6faac4e806d592150c985016c20d303754390d..314b796ac8be45dba4ebfdad6983957263e7592f 100644 (file)
@@ -905,12 +905,7 @@ sh_relax_section (bfd *abfd,
         the linker is run.  */
 
       coff_section_data (abfd, sec)->relocs = internal_relocs;
-      coff_section_data (abfd, sec)->keep_relocs = true;
-
       coff_section_data (abfd, sec)->contents = contents;
-      coff_section_data (abfd, sec)->keep_contents = true;
-
-      obj_coff_keep_syms (abfd) = true;
 
       /* Replace the jsr with a bsr.  */
 
@@ -1027,12 +1022,7 @@ sh_relax_section (bfd *abfd,
       if (swapped)
        {
          coff_section_data (abfd, sec)->relocs = internal_relocs;
-         coff_section_data (abfd, sec)->keep_relocs = true;
-
          coff_section_data (abfd, sec)->contents = contents;
-         coff_section_data (abfd, sec)->keep_contents = true;
-
-         obj_coff_keep_syms (abfd) = true;
        }
     }
 
@@ -1435,8 +1425,6 @@ sh_relax_delete_bytes (bfd *abfd,
              if (val > addr && val < toaddr)
                bfd_put_32 (abfd, val - count,
                            ocontents + irelscan->r_vaddr - o->vma);
-
-             coff_section_data (abfd, o)->keep_contents = true;
            }
        }
     }