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]

Re: [PATCH] fix objcopy PE -> ELF conversion


On Mon, Oct 22, 2007 at 09:52:10PM +0200, Christian Franke wrote:
> H.J. Lu wrote:
> >On Mon, Oct 22, 2007 at 09:02:39PM +0200, Christian Franke wrote:
> >  
> >>Objcopy cannot convert pe-i386 to elf32-i386. The offsets of the 
> >>pc-relative relocation entries are not converted properly.
> >>(http://sourceware.org/bugzilla/show_bug.cgi?id=970)
> >>
> >>I need some PE to ELF conversion for the Cygwin port of GRUB2. The first 
> >>working Cygwin patch for GRUB2 includes a workaround to load the broken 
> >>ELF modules produced by objcopy. It would be desirable to fix this in 
> >>objcopy itself.
> >>
> >>    
> >
> >There is nothing wrong with objcopy. GRUB2 should be fixed instead.
> >  
> 
> The ELF loader of GRUB2 is IMO OK.
> 
> "objcopy -O elf32-i386 pe-file.o elf-file.o" definitly produces bad 
> pc-relative relocation with offset 4. There are some provisions in the 
> BFD COFF_WITH_PE code to fix the offset later in the executable. But 
> this has no effect when converting relocatable modules.
> 

I don't think objcopy is designed to convert relocataions between
different formats. If we really want to support it, it should
be done in BFD.

H.J.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]