From 61b0a4af457fa3397f28be42b016fa0bdb939c40 Mon Sep 17 00:00:00 2001 From: Richard Sandiford Date: Mon, 18 Aug 2008 18:14:05 +0000 Subject: bfd/ * elfxx-mips.c (_bfd_mips_elf_copy_indirect_symbol): Copy MIPS16 stub information. ld/testsuite/ * ld-mips-elf/mips16-pic-4a.s, ld-mips-elf/mips16-pic-4b.s, ld-mips-elf/mips16-pic-4.ver, ld-mips-elf/mips16-pic-4a.dd, ld-mips-elf/mips16-pic-4a.nd, ld-mips-elf/mips16-pic-4a.gd, ld-mips-elf/mips16-pic-4c.s, ld-mips-elf/mips16-pic-4b.dd: New tests. * ld-mips-elf/mips-elf.exp: Run them. --- bfd/elfxx-mips.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'bfd/elfxx-mips.c') diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c index eb6d55e..43a46046 100644 --- a/bfd/elfxx-mips.c +++ b/bfd/elfxx-mips.c @@ -10923,6 +10923,26 @@ _bfd_mips_elf_copy_indirect_symbol (struct bfd_link_info *info, dirmips->readonly_reloc = TRUE; if (indmips->no_fn_stub) dirmips->no_fn_stub = TRUE; + if (indmips->fn_stub) + { + dirmips->fn_stub = indmips->fn_stub; + indmips->fn_stub = NULL; + } + if (indmips->need_fn_stub) + { + dirmips->need_fn_stub = TRUE; + indmips->need_fn_stub = FALSE; + } + if (indmips->call_stub) + { + dirmips->call_stub = indmips->call_stub; + indmips->call_stub = NULL; + } + if (indmips->call_fp_stub) + { + dirmips->call_fp_stub = indmips->call_fp_stub; + indmips->call_fp_stub = NULL; + } if (indmips->global_got_area < dirmips->global_got_area) dirmips->global_got_area = indmips->global_got_area; if (indmips->global_got_area < GGA_NONE) -- cgit v1.1