diff options
-rw-r--r-- | ld/ChangeLog | 5 | ||||
-rw-r--r-- | ld/emultempl/spuelf.em | 23 |
2 files changed, 18 insertions, 10 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index 179f7a7..9850e52 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,8 @@ +2008-03-14 Alan Modra <amodra@bigpond.net.au> + + * emultempl/spuelf.em (gld${EMULATION_NAME}_finish): Protect + spu_elf_build_stubs with is_spu_target. + 2008-03-13 Alan Modra <amodra@bigpond.net.au> * Makefile.am: Run "make dep-am". diff --git a/ld/emultempl/spuelf.em b/ld/emultempl/spuelf.em index 14d1d9e..fa28212 100644 --- a/ld/emultempl/spuelf.em +++ b/ld/emultempl/spuelf.em @@ -229,20 +229,23 @@ gld${EMULATION_NAME}_finish (void) gld${EMULATION_NAME}_map_segments (need_laying_out); - if (is_spu_target () && local_store_lo < local_store_hi) + if (is_spu_target ()) { - asection *s; + if (local_store_lo < local_store_hi) + { + asection *s; + + s = spu_elf_check_vma (link_info.output_bfd, + local_store_lo, local_store_hi); + if (s != NULL) + einfo ("%X%P: %A exceeds local store range\n", s); + } - s = spu_elf_check_vma (link_info.output_bfd, - local_store_lo, local_store_hi); - if (s != NULL) - einfo ("%X%P: %A exceeds local store range\n", s); + if (!spu_elf_build_stubs (&link_info, + emit_stub_syms || link_info.emitrelocations)) + einfo ("%X%P: can not build overlay stubs: %E\n"); } - if (!spu_elf_build_stubs (&link_info, - emit_stub_syms || link_info.emitrelocations)) - einfo ("%X%P: can not build overlay stubs: %E\n"); - finish_default (); } |