aboutsummaryrefslogtreecommitdiff
path: root/binutils/objcopy.c
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2020-03-30 16:30:02 +0100
committerNick Clifton <nickc@redhat.com>2020-03-30 16:30:02 +0100
commit00386881a3d0f7ac89fcc5cc912da8cd69c04324 (patch)
tree49d19d14cdb49b7bf0c6fb7f292be780eb385ca3 /binutils/objcopy.c
parent227c0bf4b3dd0cf65dceb58e729e9da81b38b5a7 (diff)
downloadgdb-00386881a3d0f7ac89fcc5cc912da8cd69c04324.zip
gdb-00386881a3d0f7ac89fcc5cc912da8cd69c04324.tar.gz
gdb-00386881a3d0f7ac89fcc5cc912da8cd69c04324.tar.bz2
Fix objcopy's --preserve-dates command line option so that it will work with PE format files.
PR binutils/pr25662 bfd * libcoff-in.h (struct pe_tdata): Rename the insert_timestamp field to timestamp and make it an integer. * libcoff.h: Regenerate. * peXXigen.c (_bfd_XXi_only_swap_filehdr_out): Test the timestamp field in the pe_data structure rather than the insert_timestamp field. binutils* objcopy.c (copy_object): When copying PE format files set the timestamp field in the pe_data structure if the preserve_dates flag is set. * testsuite/binutils-all/objcopy.exp (objcopy_test) Use --preserve-dates in place of the -p option, in order to make its effect more obvious. ld * emultempl/pe.em (after_open): Replace initialisation of the insert_timestamp field in the pe_data structure with an initialisation of the timestamp field. * emultemp/pep.em: Likewise. * pe-dll.c (fill_edata): Use the timestamp field in the pe_data structure instead of the insert_timestamp field.
Diffstat (limited to 'binutils/objcopy.c')
-rw-r--r--binutils/objcopy.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/binutils/objcopy.c b/binutils/objcopy.c
index e6711a9..738ef4c 100644
--- a/binutils/objcopy.c
+++ b/binutils/objcopy.c
@@ -2774,6 +2774,11 @@ 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;
}
if (isympp)