bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: objcopy elf32-i386 to pe-i386 breaks R_386_32 relocations


From: Nick Clifton
Subject: Re: objcopy elf32-i386 to pe-i386 breaks R_386_32 relocations
Date: Fri, 30 May 2008 17:02:48 +0100
User-agent: Thunderbird 1.5.0.12 (X11/20080213)

Hi Dave,

   I think there's a bug in the way objcopy handles R_386_32 (absolute
32-bit) relocation entries when translating from elf to pe-i386
(windows) object files.


The symptom is that R_386_32 relocations in elf get translated into
DIR16 entries in the pe-i386. (Or perhaps just not translated, since I
think DIR16 is numerical value 1, which I think is the same numerical
value as R_386_REL, and possibly also the same value as bfd uses
internally, though that part is pure speculation from a very quick
look at the source.)

Your speculation is correct. Objcopy does not perform *any* translation of relocations. This is why it very rarely works when translating object files. Your best bet is to link the elf32-i386 object files into a fully linked program first and then use objcopy to translate it into a pe-i386 executable. (But beware of shared libraries/DLLs. Objcopy will not translate between uses of shared library functions and uses of DLL functions either).

Cheers
  Nick




reply via email to

[Prev in Thread] Current Thread [Next in Thread]