Hi, 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.
I first found it running cygwin objcopy on windows, and reproduced it on linux. cygwin version is E:\>c:\cygwin\bin\objcopy --version GNU objcopy 2.16.91 20050610 linux version is $ objcopy --version GNU objcopy (GNU Binutils) 2.18.0.20080103 Copyright 2007 Free Software Foundation, Inc. (freshly downloaded, and bfd configured with all targets) 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.) Consider $ cat test.c extern int e; int *p = &e; $ gcc -c test.c $ objdump -r test.o test.o: file format elf32-i386 RELOCATION RECORDS FOR [.data]: OFFSET TYPE VALUE 00000000 R_386_32 e $ objcopy -O pe-i386 test.o test.obj $ objdump -r -b pe-i386 test.obj test.obj: file format pe-i386 RELOCATION RECORDS FOR [.data]: OFFSET TYPE VALUE 00000000 1 e # then try to convert back : $ objcopy -I pe-i386 -O elf32-i386 test.obj back-again.o BFD: back-again.o: unsupported relocation type (null) ./binutils_gen/binutils/objcopy: back-again.o: Bad value Running dumpbin on windows on test.obj gives E:\>dumpbin /relocations z:\tmp\test.obj Microsoft (R) COFF Binary File Dumper Version 6.00.8168 Copyright (C) Microsoft Corp 1992-1998. All rights reserved. Dump of file z:\tmp\test.obj File Type: COFF OBJECT RELOCATIONS #2 Symbol Symbol Offset Type Applied To Index Name -------- ---------------- ----------------- -------- ------ 00000000 DIR16 0000 1 e Summary 0 .bss 23 .comment 4 .data 0 .note.GNU-stack 0 .text (and ms linker rejects the fixup entries as invalid if I try to use such a converted file...) dd -- Dave Denholm <[EMAIL PROTECTED]> http://www.esmertec.com _______________________________________________ bug-binutils mailing list bug-binutils@gnu.org http://lists.gnu.org/mailman/listinfo/bug-binutils