This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
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.