* elf32-ppc.c (ppc_elf_relocate_section): Adjust addend for GOT16_HA.
* elf64-ppc.c (ppc64_elf_relocate_section): Likewise. PLTGOT16_HA too.
This commit is contained in:
parent
2b0ee4544f
commit
86bbe32fa7
3 changed files with 17 additions and 8 deletions
|
@ -1,3 +1,8 @@
|
|||
2003-01-10 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* elf32-ppc.c (ppc_elf_relocate_section): Adjust addend for GOT16_HA.
|
||||
* elf64-ppc.c (ppc64_elf_relocate_section): Likewise. PLTGOT16_HA too.
|
||||
|
||||
2002-01-08 Klee Dienes <kdienes@apple.com>
|
||||
|
||||
* Makefile.am (ALL_MACHINES): Use cpu-msp430.lo, not cpu-msp430.c.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* PowerPC-specific support for 32-bit ELF
|
||||
Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
|
||||
Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
|
||||
Free Software Foundation, Inc.
|
||||
Written by Ian Lance Taylor, Cygnus Support.
|
||||
|
||||
|
@ -3414,6 +3414,8 @@ ppc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
|
||||
relocation = sgot->output_offset + off - 4;
|
||||
}
|
||||
if (r_type == R_PPC_GOT16_HA)
|
||||
addend += ((relocation + addend) & 0x8000) << 1;
|
||||
break;
|
||||
|
||||
/* Indirect .sdata relocation */
|
||||
|
@ -3946,7 +3948,7 @@ ppc_elf_begin_write_processing (abfd, link_info)
|
|||
unsigned long datum;
|
||||
char * ptr;
|
||||
|
||||
|
||||
|
||||
asec = bfd_get_section_by_name (ibfd, APUINFO_SECTION_NAME);
|
||||
if (asec == NULL)
|
||||
continue;
|
||||
|
@ -3957,7 +3959,7 @@ ppc_elf_begin_write_processing (abfd, link_info)
|
|||
error_message = _("corrupt or empty %s section in %s");
|
||||
goto fail;
|
||||
}
|
||||
|
||||
|
||||
if (bfd_seek (ibfd, asec->filepos, SEEK_SET) != 0
|
||||
|| (bfd_bread (buffer + offset, length, ibfd) != length))
|
||||
{
|
||||
|
@ -4011,7 +4013,7 @@ ppc_elf_begin_write_processing (abfd, link_info)
|
|||
if (! bfd_set_section_size (abfd, asec, output_section_size))
|
||||
ibfd = abfd,
|
||||
error_message = _("warning: unable to set size of %s section in %s");
|
||||
|
||||
|
||||
fail:
|
||||
free (buffer);
|
||||
|
||||
|
@ -4071,7 +4073,7 @@ ppc_elf_final_write_processing (abfd, linker)
|
|||
bfd_put_32 (abfd, num_entries, buffer + 4);
|
||||
bfd_put_32 (abfd, 0x2, buffer + 8);
|
||||
strcpy (buffer + 12, APUINFO_LABEL);
|
||||
|
||||
|
||||
length = 20;
|
||||
for (i = 0; i < num_entries; i++)
|
||||
{
|
||||
|
@ -4081,10 +4083,10 @@ ppc_elf_final_write_processing (abfd, linker)
|
|||
|
||||
if (length != asec->_raw_size)
|
||||
_bfd_error_handler (_("failed to compute new APUinfo section."));
|
||||
|
||||
|
||||
if (! bfd_set_section_contents (abfd, asec, buffer, (file_ptr) 0, length))
|
||||
_bfd_error_handler (_("failed to install new APUinfo section."));
|
||||
|
||||
|
||||
free (buffer);
|
||||
|
||||
apuinfo_list_finish ();
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* PowerPC64-specific support for 64-bit ELF.
|
||||
Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
|
||||
Copyright 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
|
||||
Written by Linus Nordberg, Swox AB <info@swox.com>,
|
||||
based on elf32-ppc.c by Ian Lance Taylor.
|
||||
|
||||
|
@ -5903,6 +5903,8 @@ ppc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
case R_PPC64_ADDR16_HA:
|
||||
case R_PPC64_ADDR16_HIGHERA:
|
||||
case R_PPC64_ADDR16_HIGHESTA:
|
||||
case R_PPC64_GOT16_HA:
|
||||
case R_PPC64_PLTGOT16_HA:
|
||||
case R_PPC64_PLT16_HA:
|
||||
case R_PPC64_TOC16_HA:
|
||||
case R_PPC64_SECTOFF_HA:
|
||||
|
|
Loading…
Reference in a new issue