[PATCH] fix objcopy PE -> ELF conversion
H.J. Lu
hjl@lucon.org
Mon Oct 22 20:57:00 GMT 2007
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.
More information about the Binutils
mailing list