diff options
author | Maciej W. Rozycki <macro@linux-mips.org> | 2005-02-10 03:07:46 +0000 |
---|---|---|
committer | Maciej W. Rozycki <macro@linux-mips.org> | 2005-02-10 03:07:46 +0000 |
commit | cc3416193ab7f5bf201d4270bc169c751acd0a14 (patch) | |
tree | 9648fc31e9e97fc2368e37cbcf182cfa38ed70ef /bfd/elfn32-mips.c | |
parent | 6d9cddd56b2179b05041275364a36cd7069c5d83 (diff) | |
download | binutils-redhat-cc3416193ab7f5bf201d4270bc169c751acd0a14.tar.gz |
* elf64-mips.c (mips16_gprel_reloc): Update a comment.
* elfn32-mips.c (mips16_gprel_reloc): Keep R_MIPS16_GPREL
relocations against external symbols unchanged.
Diffstat (limited to 'bfd/elfn32-mips.c')
-rw-r--r-- | bfd/elfn32-mips.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/bfd/elfn32-mips.c b/bfd/elfn32-mips.c index 48c2579bef..d87c45c076 100644 --- a/bfd/elfn32-mips.c +++ b/bfd/elfn32-mips.c @@ -1507,6 +1507,16 @@ mips16_gprel_reloc (bfd *abfd, arelent *reloc_entry, asymbol *symbol, bfd_signed_vma val; bfd_vma relocation; + /* If we're relocating, and this is an external symbol, we don't want + to change anything. */ + if (output_bfd != NULL + && (symbol->flags & BSF_SECTION_SYM) == 0 + && (symbol->flags & BSF_LOCAL) != 0) + { + reloc_entry->address += input_section->output_offset; + return bfd_reloc_ok; + } + if (output_bfd != NULL) relocatable = TRUE; else |