------- Additional Comments From hjl at lucon dot org 2007-02-03 01:52 ------- We have
bash-3.1$ cat foo.s SEGMENT_SIZE = 0x10000 RVECTOR = 0x00010 .code16 .globl _start _start: #jmp 0xfef0 jmp SEGMENT_SIZE-(0x1f00 +0xf0 +RVECTOR) bash-3.1$ gcc -c -m32 foo.s bash-3.1$ ./objdump -Mi8086 -dr foo.o foo.o: file format elf32-i386 Disassembly of section .text: 00000000 <_start>: 0: e9 fe df jmp ffffe001 <SEGMENT_SIZE+0xfffee001> 1: R_386_PC16 *ABS* That is a relocation against ABS section. But many ELF linkers have if (r_symndx == 0) { /* r_symndx will be zero only for relocs against symbols from removed linkonce sections, or sections discarded by a linker script. For these relocs, we just want the section contents zeroed. Avoid any special processing. */ _bfd_clear_contents (howto, input_bfd, contents + rel->r_offset); continue; } The above comment and code are certainly incorrect for this testcase. -- What |Removed |Added ---------------------------------------------------------------------------- Summary|LD + objcopy generate wrong |ELF linker failed to handle |jump address |relocation against ABS | |section http://sourceware.org/bugzilla/show_bug.cgi?id=3958 ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is. _______________________________________________ bug-binutils mailing list bug-binutils@gnu.org http://lists.gnu.org/mailman/listinfo/bug-binutils