COFF/PE: don't leave zero timestamp after objcopy / strip
authorJan Beulich <jbeulich@suse.com>
Thu, 19 May 2022 10:44:32 +0000 (12:44 +0200)
committerJan Beulich <jbeulich@suse.com>
Thu, 19 May 2022 10:44:32 +0000 (12:44 +0200)
Fill the timestamp field suitably for _bfd_XXi_only_swap_filehdr_out().
Instead of re-arranging the present if(), fold this logic with that of
copying the optional header.

binutils/objcopy.c

index 6fb31c8cac7bba17f72857cd5cd85d64b709b7a0..7ad39e854f01f98ae8bc2c14b4e77eccaef30be2 100644 (file)
@@ -2747,7 +2747,14 @@ copy_object (bfd *ibfd, bfd *obfd, const bfd_arch_info_type *input_arch)
       /* Copy PE parameters before changing them.  */
       if (bfd_get_flavour (ibfd) == bfd_target_coff_flavour
          && bfd_pei_p (ibfd))
-       pe->pe_opthdr = pe_data (ibfd)->pe_opthdr;
+       {
+         pe->pe_opthdr = pe_data (ibfd)->pe_opthdr;
+
+         if (preserve_dates)
+           pe->timestamp = pe_data (ibfd)->coff.timestamp;
+         else
+           pe->timestamp = -1;
+       }
 
       if (pe_file_alignment != (bfd_vma) -1)
        pe->pe_opthdr.FileAlignment = pe_file_alignment;
@@ -2793,11 +2800,6 @@ copy_object (bfd *ibfd, bfd *obfd, const bfd_arch_info_type *input_arch)
 
                     file_alignment, section_alignment);
        }
-
-      if (preserve_dates
-         && bfd_get_flavour (ibfd) == bfd_target_coff_flavour
-         && bfd_pei_p (ibfd))
-       pe->timestamp = pe_data (ibfd)->coff.timestamp;
     }
 
   free (isympp);