This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
On Fri, Apr 24, 2009 at 6:41 AM, H.J. Lu <hjl.tools@gmail.com> wrote:
> On Fri, Apr 24, 2009 at 6:00 AM, Kai Tietz <ktietz70@googlemail.com> wrote:
>> Hello,
>>
>> 2009/4/24 Kai Tietz <ktietz70@googlemail.com>:
>>> Hello,
>>>
>>> The current implementation of objcopy/strip in binutils has problems,
>>> because for pe-coff targets. It assumes at the moment that it is an
>>> i386 version. This leads to issues (especially on strip) for PE+
>>> target that binaries are getting corrupted. So I think we have here to
>>> move those target specific pe-coff parts into seperate files. (I
>>> assume that possibly for othe pe-coff targets then i386 the same
>>> problem exists). Of course we could use here target specific macros to
>>> change internal structures, but for a mulilib version of them this
>>> isn't suitable anymore.
>>> So possible somebody of you have a strong opinion about how this issue
>>> could be solved. I'll prepare a patch for it and post it soon.
>>
>> Ah, I found the major issue here
>>
>> 2009-04-17 ?H.J. Lu ?<hongjiu.lu@intel.com>
>>
>> ? ? ? ?PR binutils/10074
>>
>> This patch made objcopy and strip for PE-Coff target 32-bit PE only
>
> I am trying to understand where the problem is. pe->pe_opthdr is
> supposed to target independent. Why doesn't it work for w64?
The problem is
#ifdef COFF_PAGE_SIZE
/* Clear D_PAGED if section alignment is smaller than
COFF_PAGE_SIZE. */
if (pe_data (abfd)->pe_opthdr.SectionAlignment < COFF_PAGE_SIZE)
abfd->flags &= ~D_PAGED;
#endif
in coff_compute_section_file_positions. For objcopy,
pe_data (abfd)->pe_opthdr.SectionAlignment may not be set. To
change PE parameters, we should call bfd_copy_private_bfd_data
before changing PE parameters. This patch works for me on
both w32 and w64.
--
H.J.
--
2009-04-24 H.J. Lu <hongjiu.lu@intel.com>
* objcopy.c (copy_object): Call bfd_copy_private_bfd_data
before changing PE parameters.
Attachment:
objcopy-pe-1.patch
Description: Text document
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |