/* IA-64 support for 64-bit ELF
- Copyright (C) 1998-2015 Free Software Foundation, Inc.
+ Copyright (C) 1998-2018 Free Software Foundation, Inc.
Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
This file is part of BFD, the Binary File Descriptor library.
/* THE RULES for all the stuff the linker creates --
GOT Entries created in response to LTOFF or LTOFF_FPTR
- relocations. Dynamic relocs created for dynamic
- symbols in an application; REL relocs for locals
- in a shared library.
+ relocations. Dynamic relocs created for dynamic
+ symbols in an application; REL relocs for locals
+ in a shared library.
FPTR The canonical function descriptor. Created for local
- symbols in applications. Descriptors for dynamic symbols
- and local symbols in shared libraries are created by
- ld.so. Thus there are no dynamic relocs against these
- objects. The FPTR relocs for such _are_ passed through
- to the dynamic relocation tables.
+ symbols in applications. Descriptors for dynamic symbols
+ and local symbols in shared libraries are created by
+ ld.so. Thus there are no dynamic relocs against these
+ objects. The FPTR relocs for such _are_ passed through
+ to the dynamic relocation tables.
FULL_PLT Created for a PCREL21B relocation against a dynamic symbol.
- Requires the creation of a PLTOFF entry. This does not
- require any dynamic relocations.
+ Requires the creation of a PLTOFF entry. This does not
+ require any dynamic relocations.
- PLTOFF Created by PLTOFF relocations. For local symbols, this
- is an alternate function descriptor, and in shared libraries
- requires two REL relocations. Note that this cannot be
- transformed into an FPTR relocation, since it must be in
- range of the GP. For dynamic symbols, this is a function
- descriptor for a MIN_PLT entry, and requires one IPLT reloc.
+ PLTOFF Created by PLTOFF relocations. For local symbols, this
+ is an alternate function descriptor, and in shared libraries
+ requires two REL relocations. Note that this cannot be
+ transformed into an FPTR relocation, since it must be in
+ range of the GP. For dynamic symbols, this is a function
+ descriptor for a MIN_PLT entry, and requires one IPLT reloc.
MIN_PLT Created by PLTOFF entries against dynamic symbols. This
- does not require dynamic relocations. */
+ does not require dynamic relocations. */
/* ia64-specific relocation. */
done in elfNN_ia64_final_link_relocate. */
static bfd_reloc_status_type
ia64_elf_reloc (bfd *abfd ATTRIBUTE_UNUSED, arelent *reloc,
- asymbol *sym ATTRIBUTE_UNUSED,
- PTR data ATTRIBUTE_UNUSED, asection *input_section,
- bfd *output_bfd, char **error_message)
+ asymbol *sym ATTRIBUTE_UNUSED,
+ PTR data ATTRIBUTE_UNUSED, asection *input_section,
+ bfd *output_bfd, char **error_message)
{
if (output_bfd)
{
TYPE field. */
static reloc_howto_type ia64_howto_table[] =
{
- IA64_HOWTO (R_IA64_NONE, "NONE", 0, FALSE, TRUE),
+ IA64_HOWTO (R_IA64_NONE, "NONE", 3, FALSE, TRUE),
IA64_HOWTO (R_IA64_IMM14, "IMM14", 0, FALSE, TRUE),
IA64_HOWTO (R_IA64_IMM22, "IMM22", 0, FALSE, TRUE),
reloc_howto_type*
ia64_elf_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED,
- bfd_reloc_code_real_type bfd_code)
+ bfd_reloc_code_real_type bfd_code)
{
unsigned int rtype;
reloc_howto_type *
ia64_elf_reloc_name_lookup (bfd *abfd ATTRIBUTE_UNUSED,
- const char *r_name)
+ const char *r_name)
{
unsigned int i;
{
case 0:
/* Check if slot 1 and slot 2 are NOPs. Possible template is
- BBB. We only need to check nop.b. */
+ BBB. We only need to check nop.b. */
if (!(IS_NOP_B (s1) && IS_NOP_B (s2)))
return FALSE;
br_code = s0;