aboutsummaryrefslogtreecommitdiff
path: root/bfd/elfxx-mips.c
diff options
context:
space:
mode:
authorMaciej W. Rozycki <macro@linux-mips.org>2012-08-13 13:06:14 +0000
committerMaciej W. Rozycki <macro@linux-mips.org>2012-08-13 13:06:14 +0000
commit9f1a453ea1b37d280adaff3d45a517e9a6318d90 (patch)
tree87adaa15b26fe2ac7e805482c78c07b503b67185 /bfd/elfxx-mips.c
parent7507c54a534f620a576c5101ff5a41045409db56 (diff)
downloadgdb-9f1a453ea1b37d280adaff3d45a517e9a6318d90.zip
gdb-9f1a453ea1b37d280adaff3d45a517e9a6318d90.tar.gz
gdb-9f1a453ea1b37d280adaff3d45a517e9a6318d90.tar.bz2
* elfxx-mips.c (mips_elf_calculate_relocation): Fix the handling
of protected symbols.
Diffstat (limited to 'bfd/elfxx-mips.c')
-rw-r--r--bfd/elfxx-mips.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c
index 2a4c278..966a0be 100644
--- a/bfd/elfxx-mips.c
+++ b/bfd/elfxx-mips.c
@@ -5360,7 +5360,10 @@ mips_elf_calculate_relocation (bfd *abfd, bfd *input_bfd,
&& (target_is_16_bit_code_p
|| target_is_micromips_code_p))));
- local_p = h == NULL || SYMBOL_REFERENCES_LOCAL (info, &h->root);
+ local_p = (h == NULL
+ || (h->got_only_for_calls
+ ? SYMBOL_CALLS_LOCAL (info, &h->root)
+ : SYMBOL_REFERENCES_LOCAL (info, &h->root)));
gp0 = _bfd_get_gp_value (input_bfd);
gp = _bfd_get_gp_value (abfd);