X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=bfd%2Felfxx-tilegx.c;h=e206bc72d6b5bdc1283d61d6a7bdf2b3baa53c5e;hb=0cfd832fc7d4f1b5633248754dcc75fa90b5475b;hp=accf34b33cedf09da28ca80f191b415593c4c904;hpb=7e612e9848387838d6e9bda6e95eac165a25e4ed;p=deliverable%2Fbinutils-gdb.git diff --git a/bfd/elfxx-tilegx.c b/bfd/elfxx-tilegx.c index accf34b33c..e206bc72d6 100644 --- a/bfd/elfxx-tilegx.c +++ b/bfd/elfxx-tilegx.c @@ -1,5 +1,5 @@ /* TILE-Gx-specific support for ELF. - Copyright 2011, 2012 Free Software Foundation, Inc. + Copyright (C) 2011-2014 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -1220,7 +1220,7 @@ tilegx64_short_plt_entry[PLT_ENTRY_SIZE] = }; /* Reuse an existing info 10 bundle. */ -static const bfd_byte const *tilegx64_plt_tail_entry = +static const bfd_byte *const tilegx64_plt_tail_entry = &tilegx64_short_plt_entry[4 * TILEGX_BUNDLE_SIZE_IN_BYTES]; static const bfd_byte @@ -1265,7 +1265,7 @@ tilegx32_short_plt_entry[PLT_ENTRY_SIZE] = }; /* Reuse an existing info 10 bundle. */ -static const bfd_byte const *tilegx32_plt_tail_entry = +static const bfd_byte *const tilegx32_plt_tail_entry = &tilegx64_short_plt_entry[4 * TILEGX_BUNDLE_SIZE_IN_BYTES]; static int @@ -1738,6 +1738,10 @@ tilegx_elf_check_relocs (bfd *abfd, struct bfd_link_info *info, while (h->root.type == bfd_link_hash_indirect || h->root.type == bfd_link_hash_warning) h = (struct elf_link_hash_entry *) h->root.u.i.link; + + /* PR15323, ref flags aren't set for references in the same + object. */ + h->root.non_ir_ref = 1; } r_type = tilegx_elf_tls_transition (info, r_type, h == NULL, @@ -2729,7 +2733,7 @@ tilegx_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, /* Set up .got offsets for local syms, and space for local dynamic relocs. */ - for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next) { bfd_signed_vma *local_got; bfd_signed_vma *end_local_got; @@ -3187,12 +3191,13 @@ tilegx_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info, } else { - bfd_boolean warned; + bfd_boolean warned ATTRIBUTE_UNUSED; + bfd_boolean ignored ATTRIBUTE_UNUSED; RELOC_FOR_GLOBAL_SYMBOL (info, input_bfd, input_section, rel, r_symndx, symtab_hdr, sym_hashes, h, sec, relocation, - unresolved_reloc, warned); + unresolved_reloc, warned, ignored); if (warned) { /* To avoid generating warning messages about truncated