aboutsummaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
authorRichard Sandiford <rdsandiford@googlemail.com>2008-08-18 18:14:05 +0000
committerRichard Sandiford <rdsandiford@googlemail.com>2008-08-18 18:14:05 +0000
commit61b0a4af457fa3397f28be42b016fa0bdb939c40 (patch)
treea3f68a55c4d62bba644270d61305d0b226603155 /bfd
parent677c5bb1ab2a47e4d5169bdda40f6a49968d7b75 (diff)
downloadgdb-61b0a4af457fa3397f28be42b016fa0bdb939c40.zip
gdb-61b0a4af457fa3397f28be42b016fa0bdb939c40.tar.gz
gdb-61b0a4af457fa3397f28be42b016fa0bdb939c40.tar.bz2
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.
Diffstat (limited to 'bfd')
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/elfxx-mips.c20
2 files changed, 25 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index bd98cfe..6c3dd56 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2008-08-18 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * elfxx-mips.c (_bfd_mips_elf_copy_indirect_symbol): Copy MIPS16
+ stub information.
+
2008-08-17 Nick Clifton <nickc@redhat.com>
* elf32-arm.c: Tidy up the code.
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)