[Top][All Lists]
[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.