* elf64-ppc.c: Include elf/ppc64.h rather than elf/ppc.h.
(R_PPC_*): Rename all occurrences to R_PPC64_*. (R_PPC64_ADDR30): Rename all occurrences to R_PPC64_REL30. (enum elf_ppc_reloc_type): Ditto to enum elf_ppc64_reloc_type. (ppc64_elf_gc_sweep_hook): Handle R_PPC64_REL30 along with other relative relocs, not with absolute ones. * Makefile.am: Run "make dep-am". * Makefile.in: Regenerate. * po/SRC-POTFILES.in: Regenerate.
This commit is contained in:
parent
1df2fdb5b7
commit
04c9666ac8
5 changed files with 85 additions and 64 deletions
|
@ -1,3 +1,15 @@
|
|||
2003-01-16 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* elf64-ppc.c: Include elf/ppc64.h rather than elf/ppc.h.
|
||||
(R_PPC_*): Rename all occurrences to R_PPC64_*.
|
||||
(R_PPC64_ADDR30): Rename all occurrences to R_PPC64_REL30.
|
||||
(enum elf_ppc_reloc_type): Ditto to enum elf_ppc64_reloc_type.
|
||||
(ppc64_elf_gc_sweep_hook): Handle R_PPC64_REL30 along with other
|
||||
relative relocs, not with absolute ones.
|
||||
* Makefile.am: Run "make dep-am".
|
||||
* Makefile.in: Regenerate.
|
||||
* po/SRC-POTFILES.in: Regenerate.
|
||||
|
||||
2003-01-15 Andreas Schwab <schwab@suse.de>
|
||||
|
||||
* elf32-ppc.c (ppc_elf_check_relocs): Don't set DF_TEXTREL for a
|
||||
|
|
|
@ -1018,7 +1018,8 @@ coff-aux.lo: coff-aux.c $(INCDIR)/filenames.h $(INCDIR)/coff/aux-coff.h \
|
|||
coffswap.h
|
||||
coff-h8300.lo: coff-h8300.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \
|
||||
genlink.h $(INCDIR)/coff/h8300.h $(INCDIR)/coff/external.h \
|
||||
$(INCDIR)/coff/internal.h libcoff.h coffcode.h coffswap.h
|
||||
$(INCDIR)/coff/internal.h libcoff.h $(INCDIR)/libiberty.h \
|
||||
coffcode.h coffswap.h
|
||||
coff-h8500.lo: coff-h8500.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \
|
||||
$(INCDIR)/coff/h8500.h $(INCDIR)/coff/external.h $(INCDIR)/coff/internal.h \
|
||||
libcoff.h coffcode.h coffswap.h
|
||||
|
@ -1180,10 +1181,10 @@ elf32-ip2k.lo: elf32-ip2k.c $(INCDIR)/filenames.h elf-bfd.h \
|
|||
$(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
|
||||
$(INCDIR)/bfdlink.h $(INCDIR)/elf/ip2k.h $(INCDIR)/elf/reloc-macros.h \
|
||||
elf32-target.h
|
||||
elf32-iq2000.lo: elf32-iq2000.c $(INCDIR)/filenames.h elf-bfd.h \
|
||||
$(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
|
||||
$(INCDIR)/bfdlink.h $(INCDIR)/elf/iq2000.h $(INCDIR)/elf/reloc-macros.h \
|
||||
elf32-target.h
|
||||
elf32-iq2000.lo: elf32-iq2000.c $(INCDIR)/filenames.h \
|
||||
elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
|
||||
$(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(INCDIR)/elf/iq2000.h \
|
||||
$(INCDIR)/elf/reloc-macros.h elf32-target.h
|
||||
elf32-m32r.lo: elf32-m32r.c $(INCDIR)/filenames.h elf-bfd.h \
|
||||
$(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
|
||||
$(INCDIR)/bfdlink.h $(INCDIR)/elf/m32r.h $(INCDIR)/elf/reloc-macros.h \
|
||||
|
@ -1215,20 +1216,22 @@ elf32-mcore.lo: elf32-mcore.c $(INCDIR)/filenames.h \
|
|||
$(INCDIR)/bfdlink.h elf-bfd.h $(INCDIR)/elf/common.h \
|
||||
$(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/elf/mcore.h \
|
||||
$(INCDIR)/elf/reloc-macros.h elf32-target.h
|
||||
elfxx-mips.lo: elfxx-mips.c $(INCDIR)/filenames.h elf-bfd.h \
|
||||
$(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
|
||||
$(INCDIR)/bfdlink.h elfxx-mips.h $(INCDIR)/elf/mips.h \
|
||||
$(INCDIR)/elf/reloc-macros.h $(INCDIR)/coff/sym.h $(INCDIR)/coff/symconst.h \
|
||||
$(INCDIR)/coff/ecoff.h $(INCDIR)/coff/mips.h $(INCDIR)/coff/external.h
|
||||
elfxx-mips.lo: elfxx-mips.c $(INCDIR)/filenames.h $(INCDIR)/libiberty.h \
|
||||
elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
|
||||
$(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h elfxx-mips.h \
|
||||
$(INCDIR)/elf/mips.h $(INCDIR)/elf/reloc-macros.h $(INCDIR)/coff/sym.h \
|
||||
$(INCDIR)/coff/symconst.h $(INCDIR)/coff/ecoff.h $(INCDIR)/coff/mips.h \
|
||||
$(INCDIR)/coff/external.h $(INCDIR)/hashtab.h
|
||||
elf32-mips.lo: elf32-mips.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \
|
||||
genlink.h elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
|
||||
$(INCDIR)/elf/external.h elfxx-mips.h $(INCDIR)/elf/mips.h \
|
||||
$(INCDIR)/elf/reloc-macros.h $(INCDIR)/coff/sym.h $(INCDIR)/coff/symconst.h \
|
||||
$(INCDIR)/coff/internal.h $(INCDIR)/coff/ecoff.h $(INCDIR)/coff/mips.h \
|
||||
$(INCDIR)/coff/external.h ecoffswap.h elf32-target.h
|
||||
elf32-msp430.lo: elf32-msp430.c $(INCDIR)/filenames.h elf-bfd.h \
|
||||
$(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
|
||||
$(INCDIR)/bfdlink.h $(INCDIR)/elf/msp430.h $(INCDIR)/elf/reloc-macros.h \
|
||||
elf32-msp430.lo: elf32-msp430.c $(INCDIR)/filenames.h \
|
||||
$(INCDIR)/libiberty.h elf-bfd.h $(INCDIR)/elf/common.h \
|
||||
$(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h \
|
||||
$(INCDIR)/elf/msp430.h $(INCDIR)/elf/reloc-macros.h \
|
||||
elf32-target.h
|
||||
elf32-openrisc.lo: elf32-openrisc.c $(INCDIR)/filenames.h \
|
||||
elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
|
||||
|
@ -1545,7 +1548,7 @@ elf64-mmix.lo: elf64-mmix.c $(INCDIR)/filenames.h elf-bfd.h \
|
|||
$(INCDIR)/opcode/mmix.h elf64-target.h
|
||||
elf64-ppc.lo: elf64-ppc.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \
|
||||
elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
|
||||
$(INCDIR)/elf/external.h $(INCDIR)/elf/ppc.h $(INCDIR)/elf/reloc-macros.h \
|
||||
$(INCDIR)/elf/external.h $(INCDIR)/elf/ppc64.h $(INCDIR)/elf/reloc-macros.h \
|
||||
elf64-ppc.h elf64-target.h
|
||||
elf64-s390.lo: elf64-s390.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \
|
||||
elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
|
||||
# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am
|
||||
|
||||
# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
|
@ -799,7 +799,7 @@ configure.in version.h
|
|||
|
||||
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
|
||||
|
||||
TAR = gtar
|
||||
TAR = tar
|
||||
GZIP_ENV = --best
|
||||
SOURCES = $(libbfd_a_SOURCES) $(libbfd_la_SOURCES)
|
||||
OBJECTS = $(libbfd_a_OBJECTS) $(libbfd_la_OBJECTS)
|
||||
|
@ -1551,7 +1551,8 @@ coff-aux.lo: coff-aux.c $(INCDIR)/filenames.h $(INCDIR)/coff/aux-coff.h \
|
|||
coffswap.h
|
||||
coff-h8300.lo: coff-h8300.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \
|
||||
genlink.h $(INCDIR)/coff/h8300.h $(INCDIR)/coff/external.h \
|
||||
$(INCDIR)/coff/internal.h libcoff.h coffcode.h coffswap.h
|
||||
$(INCDIR)/coff/internal.h libcoff.h $(INCDIR)/libiberty.h \
|
||||
coffcode.h coffswap.h
|
||||
coff-h8500.lo: coff-h8500.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \
|
||||
$(INCDIR)/coff/h8500.h $(INCDIR)/coff/external.h $(INCDIR)/coff/internal.h \
|
||||
libcoff.h coffcode.h coffswap.h
|
||||
|
@ -1713,10 +1714,10 @@ elf32-ip2k.lo: elf32-ip2k.c $(INCDIR)/filenames.h elf-bfd.h \
|
|||
$(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
|
||||
$(INCDIR)/bfdlink.h $(INCDIR)/elf/ip2k.h $(INCDIR)/elf/reloc-macros.h \
|
||||
elf32-target.h
|
||||
elf32-iq2000.lo: elf32-iq2000.c $(INCDIR)/filenames.h elf-bfd.h \
|
||||
$(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
|
||||
$(INCDIR)/bfdlink.h $(INCDIR)/elf/iq2000.h $(INCDIR)/elf/reloc-macros.h \
|
||||
elf32-target.h
|
||||
elf32-iq2000.lo: elf32-iq2000.c $(INCDIR)/filenames.h \
|
||||
elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
|
||||
$(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(INCDIR)/elf/iq2000.h \
|
||||
$(INCDIR)/elf/reloc-macros.h elf32-target.h
|
||||
elf32-m32r.lo: elf32-m32r.c $(INCDIR)/filenames.h elf-bfd.h \
|
||||
$(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
|
||||
$(INCDIR)/bfdlink.h $(INCDIR)/elf/m32r.h $(INCDIR)/elf/reloc-macros.h \
|
||||
|
@ -1748,20 +1749,22 @@ elf32-mcore.lo: elf32-mcore.c $(INCDIR)/filenames.h \
|
|||
$(INCDIR)/bfdlink.h elf-bfd.h $(INCDIR)/elf/common.h \
|
||||
$(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/elf/mcore.h \
|
||||
$(INCDIR)/elf/reloc-macros.h elf32-target.h
|
||||
elfxx-mips.lo: elfxx-mips.c $(INCDIR)/filenames.h elf-bfd.h \
|
||||
$(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
|
||||
$(INCDIR)/bfdlink.h elfxx-mips.h $(INCDIR)/elf/mips.h \
|
||||
$(INCDIR)/elf/reloc-macros.h $(INCDIR)/coff/sym.h $(INCDIR)/coff/symconst.h \
|
||||
$(INCDIR)/coff/ecoff.h $(INCDIR)/coff/mips.h $(INCDIR)/coff/external.h
|
||||
elfxx-mips.lo: elfxx-mips.c $(INCDIR)/filenames.h $(INCDIR)/libiberty.h \
|
||||
elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
|
||||
$(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h elfxx-mips.h \
|
||||
$(INCDIR)/elf/mips.h $(INCDIR)/elf/reloc-macros.h $(INCDIR)/coff/sym.h \
|
||||
$(INCDIR)/coff/symconst.h $(INCDIR)/coff/ecoff.h $(INCDIR)/coff/mips.h \
|
||||
$(INCDIR)/coff/external.h $(INCDIR)/hashtab.h
|
||||
elf32-mips.lo: elf32-mips.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \
|
||||
genlink.h elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
|
||||
$(INCDIR)/elf/external.h elfxx-mips.h $(INCDIR)/elf/mips.h \
|
||||
$(INCDIR)/elf/reloc-macros.h $(INCDIR)/coff/sym.h $(INCDIR)/coff/symconst.h \
|
||||
$(INCDIR)/coff/internal.h $(INCDIR)/coff/ecoff.h $(INCDIR)/coff/mips.h \
|
||||
$(INCDIR)/coff/external.h ecoffswap.h elf32-target.h
|
||||
elf32-msp430.lo: elf32-msp430.c $(INCDIR)/filenames.h elf-bfd.h \
|
||||
$(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
|
||||
$(INCDIR)/bfdlink.h $(INCDIR)/elf/msp430.h $(INCDIR)/elf/reloc-macros.h \
|
||||
elf32-msp430.lo: elf32-msp430.c $(INCDIR)/filenames.h \
|
||||
$(INCDIR)/libiberty.h elf-bfd.h $(INCDIR)/elf/common.h \
|
||||
$(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h \
|
||||
$(INCDIR)/elf/msp430.h $(INCDIR)/elf/reloc-macros.h \
|
||||
elf32-target.h
|
||||
elf32-openrisc.lo: elf32-openrisc.c $(INCDIR)/filenames.h \
|
||||
elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
|
||||
|
@ -2078,7 +2081,7 @@ elf64-mmix.lo: elf64-mmix.c $(INCDIR)/filenames.h elf-bfd.h \
|
|||
$(INCDIR)/opcode/mmix.h elf64-target.h
|
||||
elf64-ppc.lo: elf64-ppc.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \
|
||||
elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
|
||||
$(INCDIR)/elf/external.h $(INCDIR)/elf/ppc.h $(INCDIR)/elf/reloc-macros.h \
|
||||
$(INCDIR)/elf/external.h $(INCDIR)/elf/ppc64.h $(INCDIR)/elf/reloc-macros.h \
|
||||
elf64-ppc.h elf64-target.h
|
||||
elf64-s390.lo: elf64-s390.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \
|
||||
elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
|
||||
|
|
|
@ -27,7 +27,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
|||
#include "bfdlink.h"
|
||||
#include "libbfd.h"
|
||||
#include "elf-bfd.h"
|
||||
#include "elf/ppc.h"
|
||||
#include "elf/ppc64.h"
|
||||
#include "elf64-ppc.h"
|
||||
|
||||
static void ppc_howto_init
|
||||
|
@ -126,7 +126,7 @@ static bfd_boolean ppc64_elf_merge_private_bfd_data
|
|||
#define ONES(n) (((bfd_vma) 1 << ((n) - 1) << 1) - 1)
|
||||
|
||||
/* Relocation HOWTO's. */
|
||||
static reloc_howto_type *ppc64_elf_howto_table[(int) R_PPC_max];
|
||||
static reloc_howto_type *ppc64_elf_howto_table[(int) R_PPC64_max];
|
||||
|
||||
static reloc_howto_type ppc64_elf_howto_raw[] = {
|
||||
/* This reloc does nothing. */
|
||||
|
@ -667,9 +667,8 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
|
|||
0xffff, /* dst_mask */
|
||||
FALSE), /* pcrel_offset */
|
||||
|
||||
/* Like R_PPC64_REL24 without touching the two least significant
|
||||
bits. Should have been named R_PPC64_REL30! */
|
||||
HOWTO (R_PPC64_ADDR30, /* type */
|
||||
/* Like R_PPC64_REL24 without touching the two least significant bits. */
|
||||
HOWTO (R_PPC64_REL30, /* type */
|
||||
2, /* rightshift */
|
||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
30, /* bitsize */
|
||||
|
@ -677,7 +676,7 @@ static reloc_howto_type ppc64_elf_howto_raw[] = {
|
|||
0, /* bitpos */
|
||||
complain_overflow_dont, /* complain_on_overflow */
|
||||
bfd_elf_generic_reloc, /* special_function */
|
||||
"R_PPC64_ADDR30", /* name */
|
||||
"R_PPC64_REL30", /* name */
|
||||
FALSE, /* partial_inplace */
|
||||
0, /* src_mask */
|
||||
0xfffffffc, /* dst_mask */
|
||||
|
@ -1207,7 +1206,7 @@ ppc64_elf_reloc_type_lookup (abfd, code)
|
|||
bfd *abfd ATTRIBUTE_UNUSED;
|
||||
bfd_reloc_code_real_type code;
|
||||
{
|
||||
enum elf_ppc_reloc_type ppc_reloc = R_PPC_NONE;
|
||||
enum elf_ppc64_reloc_type ppc_reloc = R_PPC64_NONE;
|
||||
|
||||
if (!ppc64_elf_howto_table[R_PPC64_ADDR32])
|
||||
/* Initialize howto table if needed. */
|
||||
|
@ -1365,7 +1364,7 @@ ppc64_elf_info_to_howto (abfd, cache_ptr, dst)
|
|||
cache_ptr->howto = ppc64_elf_howto_table[type];
|
||||
}
|
||||
|
||||
/* Handle the R_PPC_ADDR16_HA and similar relocs. */
|
||||
/* Handle the R_PPC64_ADDR16_HA and similar relocs. */
|
||||
|
||||
static bfd_reloc_status_type
|
||||
ppc64_elf_ha_reloc (abfd, reloc_entry, symbol, data,
|
||||
|
@ -1404,7 +1403,7 @@ ppc64_elf_brtaken_reloc (abfd, reloc_entry, symbol, data,
|
|||
char **error_message;
|
||||
{
|
||||
long insn;
|
||||
enum elf_ppc_reloc_type r_type;
|
||||
enum elf_ppc64_reloc_type r_type;
|
||||
bfd_size_type octets;
|
||||
/* Disabled until we sort out how ld should choose 'y' vs 'at'. */
|
||||
bfd_boolean is_power4 = FALSE;
|
||||
|
@ -1419,7 +1418,7 @@ ppc64_elf_brtaken_reloc (abfd, reloc_entry, symbol, data,
|
|||
octets = reloc_entry->address * bfd_octets_per_byte (abfd);
|
||||
insn = bfd_get_32 (abfd, (bfd_byte *) data + octets);
|
||||
insn &= ~(0x01 << 21);
|
||||
r_type = (enum elf_ppc_reloc_type) reloc_entry->howto->type;
|
||||
r_type = (enum elf_ppc64_reloc_type) reloc_entry->howto->type;
|
||||
if (r_type == R_PPC64_ADDR14_BRTAKEN
|
||||
|| r_type == R_PPC64_REL14_BRTAKEN)
|
||||
insn |= 0x01 << 21; /* 'y' or 't' bit, lowest bit of BO field. */
|
||||
|
@ -1771,7 +1770,7 @@ struct ppc_dyn_relocs
|
|||
#define IS_ABSOLUTE_RELOC(RTYPE) \
|
||||
((RTYPE) != R_PPC64_REL32 \
|
||||
&& (RTYPE) != R_PPC64_REL64 \
|
||||
&& (RTYPE) != R_PPC64_ADDR30)
|
||||
&& (RTYPE) != R_PPC64_REL30)
|
||||
|
||||
/* Section name for stubs is the associated section name plus this
|
||||
string. */
|
||||
|
@ -2579,7 +2578,7 @@ ppc64_elf_check_relocs (abfd, info, sec, relocs)
|
|||
{
|
||||
unsigned long r_symndx;
|
||||
struct elf_link_hash_entry *h;
|
||||
enum elf_ppc_reloc_type r_type;
|
||||
enum elf_ppc64_reloc_type r_type;
|
||||
|
||||
r_symndx = ELF64_R_SYM (rel->r_info);
|
||||
if (r_symndx < symtab_hdr->sh_info)
|
||||
|
@ -2587,7 +2586,7 @@ ppc64_elf_check_relocs (abfd, info, sec, relocs)
|
|||
else
|
||||
h = sym_hashes[r_symndx - symtab_hdr->sh_info];
|
||||
|
||||
r_type = (enum elf_ppc_reloc_type) ELF64_R_TYPE (rel->r_info);
|
||||
r_type = (enum elf_ppc64_reloc_type) ELF64_R_TYPE (rel->r_info);
|
||||
switch (r_type)
|
||||
{
|
||||
/* GOT16 relocations */
|
||||
|
@ -2723,7 +2722,7 @@ ppc64_elf_check_relocs (abfd, info, sec, relocs)
|
|||
if (opd_sym_map != NULL
|
||||
&& h == NULL
|
||||
&& rel + 1 < rel_end
|
||||
&& ((enum elf_ppc_reloc_type) ELF64_R_TYPE ((rel + 1)->r_info)
|
||||
&& ((enum elf_ppc64_reloc_type) ELF64_R_TYPE ((rel + 1)->r_info)
|
||||
== R_PPC64_TOC))
|
||||
{
|
||||
asection *s;
|
||||
|
@ -2737,8 +2736,9 @@ ppc64_elf_check_relocs (abfd, info, sec, relocs)
|
|||
}
|
||||
/* Fall through. */
|
||||
|
||||
case R_PPC64_REL64:
|
||||
case R_PPC64_REL30:
|
||||
case R_PPC64_REL32:
|
||||
case R_PPC64_REL64:
|
||||
case R_PPC64_ADDR14:
|
||||
case R_PPC64_ADDR14_BRNTAKEN:
|
||||
case R_PPC64_ADDR14_BRTAKEN:
|
||||
|
@ -2753,7 +2753,6 @@ ppc64_elf_check_relocs (abfd, info, sec, relocs)
|
|||
case R_PPC64_ADDR16_LO:
|
||||
case R_PPC64_ADDR16_LO_DS:
|
||||
case R_PPC64_ADDR24:
|
||||
case R_PPC64_ADDR30:
|
||||
case R_PPC64_ADDR32:
|
||||
case R_PPC64_UADDR16:
|
||||
case R_PPC64_UADDR32:
|
||||
|
@ -2912,10 +2911,10 @@ ppc64_elf_gc_mark_hook (sec, info, rel, h, sym)
|
|||
|
||||
if (h != NULL)
|
||||
{
|
||||
enum elf_ppc_reloc_type r_type;
|
||||
enum elf_ppc64_reloc_type r_type;
|
||||
struct ppc_link_hash_entry *fdh;
|
||||
|
||||
r_type = (enum elf_ppc_reloc_type) ELF64_R_TYPE (rel->r_info);
|
||||
r_type = (enum elf_ppc64_reloc_type) ELF64_R_TYPE (rel->r_info);
|
||||
switch (r_type)
|
||||
{
|
||||
case R_PPC64_GNU_VTINHERIT:
|
||||
|
@ -2993,11 +2992,11 @@ ppc64_elf_gc_sweep_hook (abfd, info, sec, relocs)
|
|||
for (rel = relocs; rel < relend; rel++)
|
||||
{
|
||||
unsigned long r_symndx;
|
||||
enum elf_ppc_reloc_type r_type;
|
||||
enum elf_ppc64_reloc_type r_type;
|
||||
struct elf_link_hash_entry *h;
|
||||
|
||||
r_symndx = ELF64_R_SYM (rel->r_info);
|
||||
r_type = (enum elf_ppc_reloc_type) ELF64_R_TYPE (rel->r_info);
|
||||
r_type = (enum elf_ppc64_reloc_type) ELF64_R_TYPE (rel->r_info);
|
||||
switch (r_type)
|
||||
{
|
||||
case R_PPC64_GOT16:
|
||||
|
@ -3044,6 +3043,7 @@ ppc64_elf_gc_sweep_hook (abfd, info, sec, relocs)
|
|||
}
|
||||
break;
|
||||
|
||||
case R_PPC64_REL30:
|
||||
case R_PPC64_REL32:
|
||||
case R_PPC64_REL64:
|
||||
if (r_symndx >= symtab_hdr->sh_info)
|
||||
|
@ -3081,7 +3081,6 @@ ppc64_elf_gc_sweep_hook (abfd, info, sec, relocs)
|
|||
case R_PPC64_ADDR16_LO:
|
||||
case R_PPC64_ADDR16_LO_DS:
|
||||
case R_PPC64_ADDR24:
|
||||
case R_PPC64_ADDR30:
|
||||
case R_PPC64_ADDR32:
|
||||
case R_PPC64_ADDR64:
|
||||
case R_PPC64_UADDR16:
|
||||
|
@ -3443,8 +3442,8 @@ ppc64_elf_adjust_dynamic_symbol (info, h)
|
|||
both the dynamic object and the regular object will refer to the
|
||||
same memory location for the variable. */
|
||||
|
||||
/* We must generate a R_PPC_COPY reloc to tell the dynamic linker to
|
||||
copy the initial value out of the dynamic object and into the
|
||||
/* We must generate a R_PPC64_COPY reloc to tell the dynamic linker
|
||||
to copy the initial value out of the dynamic object and into the
|
||||
runtime process image. We need to remember the offset into the
|
||||
.rela.bss section we are going to use. */
|
||||
if ((h->root.u.def.section->flags & SEC_ALLOC) != 0)
|
||||
|
@ -3599,7 +3598,7 @@ ppc64_elf_edit_opd (obfd, info)
|
|||
relend = relstart + sec->reloc_count;
|
||||
for (rel = relstart; rel < relend; rel++)
|
||||
{
|
||||
enum elf_ppc_reloc_type r_type;
|
||||
enum elf_ppc64_reloc_type r_type;
|
||||
unsigned long r_symndx;
|
||||
asection *sym_sec;
|
||||
struct elf_link_hash_entry *h;
|
||||
|
@ -3608,7 +3607,7 @@ ppc64_elf_edit_opd (obfd, info)
|
|||
/* .opd contains a regular array of 24 byte entries. We're
|
||||
only interested in the reloc pointing to a function entry
|
||||
point. */
|
||||
r_type = (enum elf_ppc_reloc_type) ELF64_R_TYPE (rel->r_info);
|
||||
r_type = (enum elf_ppc64_reloc_type) ELF64_R_TYPE (rel->r_info);
|
||||
if (r_type == R_PPC64_TOC)
|
||||
continue;
|
||||
|
||||
|
@ -3623,7 +3622,7 @@ ppc64_elf_edit_opd (obfd, info)
|
|||
|
||||
if (rel + 1 >= relend)
|
||||
continue;
|
||||
r_type = (enum elf_ppc_reloc_type) ELF64_R_TYPE ((rel + 1)->r_info);
|
||||
r_type = (enum elf_ppc64_reloc_type) ELF64_R_TYPE ((rel + 1)->r_info);
|
||||
if (r_type != R_PPC64_TOC)
|
||||
continue;
|
||||
|
||||
|
@ -4914,7 +4913,7 @@ ppc64_elf_size_stubs (output_bfd, stub_bfd, info, group_size,
|
|||
r_type = ELF64_R_TYPE (irela->r_info);
|
||||
r_indx = ELF64_R_SYM (irela->r_info);
|
||||
|
||||
if (r_type >= (unsigned int) R_PPC_max)
|
||||
if (r_type >= (unsigned int) R_PPC64_max)
|
||||
{
|
||||
bfd_set_error (bfd_error_bad_value);
|
||||
goto error_ret_free_internal;
|
||||
|
@ -5312,7 +5311,7 @@ ppc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
relend = relocs + input_section->reloc_count;
|
||||
for (; rel < relend; rel++)
|
||||
{
|
||||
enum elf_ppc_reloc_type r_type;
|
||||
enum elf_ppc64_reloc_type r_type;
|
||||
bfd_vma offset;
|
||||
bfd_vma addend;
|
||||
bfd_reloc_status_type r;
|
||||
|
@ -5330,7 +5329,7 @@ ppc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
bfd_vma max_br_offset;
|
||||
bfd_vma from;
|
||||
|
||||
r_type = (enum elf_ppc_reloc_type) ELF64_R_TYPE (rel->r_info);
|
||||
r_type = (enum elf_ppc64_reloc_type) ELF64_R_TYPE (rel->r_info);
|
||||
r_symndx = ELF64_R_SYM (rel->r_info);
|
||||
offset = rel->r_offset;
|
||||
addend = rel->r_addend;
|
||||
|
@ -5537,8 +5536,8 @@ ppc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
continue;
|
||||
|
||||
case R_PPC64_NONE:
|
||||
case R_PPC_GNU_VTINHERIT:
|
||||
case R_PPC_GNU_VTENTRY:
|
||||
case R_PPC64_GNU_VTINHERIT:
|
||||
case R_PPC64_GNU_VTENTRY:
|
||||
continue;
|
||||
|
||||
/* GOT16 relocations. Like an ADDR16 using the symbol's
|
||||
|
@ -5707,6 +5706,7 @@ ppc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
|
||||
/* Relocations that may need to be propagated if this is a
|
||||
dynamic object. */
|
||||
case R_PPC64_REL30:
|
||||
case R_PPC64_REL32:
|
||||
case R_PPC64_REL64:
|
||||
case R_PPC64_ADDR14:
|
||||
|
@ -5723,7 +5723,6 @@ ppc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
case R_PPC64_ADDR16_LO:
|
||||
case R_PPC64_ADDR16_LO_DS:
|
||||
case R_PPC64_ADDR24:
|
||||
case R_PPC64_ADDR30:
|
||||
case R_PPC64_ADDR32:
|
||||
case R_PPC64_ADDR64:
|
||||
case R_PPC64_UADDR16:
|
||||
|
@ -6176,9 +6175,9 @@ static enum elf_reloc_type_class
|
|||
ppc64_elf_reloc_type_class (rela)
|
||||
const Elf_Internal_Rela *rela;
|
||||
{
|
||||
enum elf_ppc_reloc_type r_type;
|
||||
enum elf_ppc64_reloc_type r_type;
|
||||
|
||||
r_type = (enum elf_ppc_reloc_type) ELF64_R_TYPE (rela->r_info);
|
||||
r_type = (enum elf_ppc64_reloc_type) ELF64_R_TYPE (rela->r_info);
|
||||
switch (r_type)
|
||||
{
|
||||
case R_PPC64_RELATIVE:
|
||||
|
|
|
@ -80,6 +80,7 @@ cpu-i860.c
|
|||
cpu-i960.c
|
||||
cpu-ia64.c
|
||||
cpu-ip2k.c
|
||||
cpu-iq2000.c
|
||||
cpu-m10200.c
|
||||
cpu-m10300.c
|
||||
cpu-m32r.c
|
||||
|
@ -90,6 +91,7 @@ cpu-m88k.c
|
|||
cpu-mcore.c
|
||||
cpu-mips.c
|
||||
cpu-mmix.c
|
||||
cpu-msp430.c
|
||||
cpu-ns32k.c
|
||||
cpu-openrisc.c
|
||||
cpu-or32.c
|
||||
|
@ -143,6 +145,7 @@ elf32-i386.c
|
|||
elf32-i860.c
|
||||
elf32-i960.c
|
||||
elf32-ip2k.c
|
||||
elf32-iq2000.c
|
||||
elf32-m32r.c
|
||||
elf32-m68hc11.c
|
||||
elf32-m68hc12.c
|
||||
|
@ -150,6 +153,7 @@ elf32-m68k.c
|
|||
elf32-m88k.c
|
||||
elf32-mcore.c
|
||||
elf32-mips.c
|
||||
elf32-msp430.c
|
||||
elf32-openrisc.c
|
||||
elf32-or32.c
|
||||
elf32-pj.c
|
||||
|
|
Loading…
Reference in a new issue