diff options
author | Eric Christopher <echristo@gmail.com> | 2002-01-17 08:19:08 +0000 |
---|---|---|
committer | Eric Christopher <echristo@gmail.com> | 2002-01-17 08:19:08 +0000 |
commit | 175e996239a7ca4db791e9e70fb7152c3359edb8 (patch) | |
tree | ea00f6c2871a6fa65a580eba43793fa8cc54d75e /bfd/elf32-mips.c | |
parent | 8de3c354c7c3bdde03b521762ff72489eb121e94 (diff) | |
download | gdb-175e996239a7ca4db791e9e70fb7152c3359edb8.zip gdb-175e996239a7ca4db791e9e70fb7152c3359edb8.tar.gz gdb-175e996239a7ca4db791e9e70fb7152c3359edb8.tar.bz2 |
2002-01-16 Eric Christopher <echristo@redhat.com>
* elf32-mips.c (mips_elf_calculate_relocation): Set require_jalxp
on R_MIPS_26 and target is 16bit. Add R_MIPS16_GPREL to list of
relocations requiring gp0 and gp.
Diffstat (limited to 'bfd/elf32-mips.c')
-rw-r--r-- | bfd/elf32-mips.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/bfd/elf32-mips.c b/bfd/elf32-mips.c index a4007ef..4bb1fcb 100644 --- a/bfd/elf32-mips.c +++ b/bfd/elf32-mips.c @@ -6735,7 +6735,8 @@ mips_elf_calculate_relocation (abfd, /* Calls from 16-bit code to 32-bit code and vice versa require the special jalx instruction. */ *require_jalxp = (!info->relocateable - && ((r_type == R_MIPS16_26) != target_is_16_bit_code_p)); + && (((r_type == R_MIPS16_26) != target_is_16_bit_code_p + || ((r_type == R_MIPS_26) == target_is_16_bit_code_p)))); local_p = mips_elf_local_relocation_p (input_bfd, relocation, local_sections, true); @@ -6790,6 +6791,7 @@ mips_elf_calculate_relocation (abfd, case R_MIPS_HI16: case R_MIPS_LO16: + case R_MIPS16_GPREL: case R_MIPS_GPREL16: case R_MIPS_GPREL32: case R_MIPS_LITERAL: @@ -9758,7 +9760,7 @@ _bfd_elf32_mips_discard_info (abfd, cookie, info) cookie->rel = cookie->rels; cookie->relend = cookie->rels + o->reloc_count * bed->s->int_rels_per_ext_rel; - + for (i = 0, skip = 0; i < o->_raw_size; i ++) { if (_bfd_elf32_reloc_symbol_deleted_p (i * PDR_SIZE, cookie)) |