mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-01-18 12:24:38 +08:00
* elf64-sparc.c (sparc64_elf_relocate_section): Adjust addend of
dynamic relocs against section symbols for the output section vma.
This commit is contained in:
parent
7d5b6fdd3b
commit
dad628168e
@ -1,3 +1,9 @@
|
||||
2002-11-06 David O'Brien <obrien@FreeBSD.org>
|
||||
Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* elf64-sparc.c (sparc64_elf_relocate_section): Adjust addend of
|
||||
dynamic relocs against section symbols for the output section vma.
|
||||
|
||||
2002-11-05 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* elf32-arm.h (t2a1_push_insn, t2a2_ldr_insn, t2a3_mov_insn,
|
||||
|
@ -2164,11 +2164,9 @@ sparc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
|
||||
}
|
||||
else
|
||||
{
|
||||
outrel.r_addend = relocation + rel->r_addend;
|
||||
if (r_type == R_SPARC_64)
|
||||
{
|
||||
outrel.r_info = ELF64_R_INFO (0, R_SPARC_RELATIVE);
|
||||
outrel.r_addend = relocation + rel->r_addend;
|
||||
}
|
||||
outrel.r_info = ELF64_R_INFO (0, R_SPARC_RELATIVE);
|
||||
else
|
||||
{
|
||||
long indx;
|
||||
@ -2198,6 +2196,13 @@ sparc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
|
||||
osec = sec->output_section;
|
||||
indx = elf_section_data (osec)->dynindx;
|
||||
|
||||
/* We are turning this relocation into one
|
||||
against a section symbol, so subtract out
|
||||
the output section's address but not the
|
||||
offset of the input section in the output
|
||||
section. */
|
||||
outrel.r_addend -= osec->vma;
|
||||
|
||||
/* FIXME: we really should be able to link non-pic
|
||||
shared libraries. */
|
||||
if (indx == 0)
|
||||
@ -2216,7 +2221,6 @@ sparc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
|
||||
ELF64_R_TYPE_INFO (
|
||||
ELF64_R_TYPE_DATA (rel->r_info),
|
||||
r_type));
|
||||
outrel.r_addend = relocation + rel->r_addend;
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user