bug-binutils
[Top][All Lists]
Advanced

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

[Bug binutils/3958] ELF linker failed to handle relocation against ABS s


From: hjl at lucon dot org
Subject: [Bug binutils/3958] ELF linker failed to handle relocation against ABS section
Date: 3 Feb 2007 01:52:27 -0000

------- 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.




reply via email to

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