aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/peXXigen.c2
-rw-r--r--binutils/ChangeLog5
-rw-r--r--binutils/objcopy.c5
4 files changed, 16 insertions, 1 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index bc34a78..194ba68 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2009-04-27 H.J. Lu <hongjiu.lu@intel.com>
+
+ * peXXigen.c (_bfd_XX_bfd_copy_private_bfd_data_common): Don't
+ copy pe_opthdr.
+
2009-04-23 Matthias Klose <doko@ubuntu.com>
* peXXigen.c (_bfd_XXi_swap_sym_in): Initialize `name'.
diff --git a/bfd/peXXigen.c b/bfd/peXXigen.c
index 76224cb..4229de2 100644
--- a/bfd/peXXigen.c
+++ b/bfd/peXXigen.c
@@ -2188,7 +2188,7 @@ _bfd_XX_bfd_copy_private_bfd_data_common (bfd * ibfd, bfd * obfd)
ipe = pe_data (ibfd);
ope = pe_data (obfd);
- ope->pe_opthdr = ipe->pe_opthdr;
+ /* pe_opthdr is copied in copy_object. */
ope->dll = ipe->dll;
/* Don't copy input subsystem if output is different from input. */
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 0e2d554..75af8f1 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,8 @@
+2009-04-27 H.J. Lu <hongjiu.lu@intel.com>
+
+ * objcopy.c (copy_object): Copy pe_opthdr before changing PE
+ parameters.
+
2009-04-24 Cary Coutant <ccoutant@google.com>
* dwarf.c (process_extended_line_op): Add DW_LNE_set_discriminator.
diff --git a/binutils/objcopy.c b/binutils/objcopy.c
index 3fe8741..7ef95c5 100644
--- a/binutils/objcopy.c
+++ b/binutils/objcopy.c
@@ -1491,6 +1491,11 @@ copy_object (bfd *ibfd, bfd *obfd)
/* Set up PE parameters. */
pe_data_type *pe = pe_data (obfd);
+ /* Copy PE parameters before changing them. */
+ if (ibfd->xvec->flavour == bfd_target_coff_flavour
+ && bfd_pei_p (ibfd))
+ pe->pe_opthdr = pe_data (ibfd)->pe_opthdr;
+
if (pe_file_alignment != (bfd_vma) -1)
pe->pe_opthdr.FileAlignment = pe_file_alignment;
else