diff options
author | Alan Modra <amodra@gmail.com> | 2007-02-26 08:58:16 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2007-02-26 08:58:16 +0000 |
commit | 45d3b878abeec9aba15bde906804909c480fbb6f (patch) | |
tree | 5495ada8b691a9d71890c8080fae678f0caee051 /ld | |
parent | 56b60c14ab85dadc5eef8af7dcbd5132b69b67eb (diff) | |
download | gdb-45d3b878abeec9aba15bde906804909c480fbb6f.zip gdb-45d3b878abeec9aba15bde906804909c480fbb6f.tar.gz gdb-45d3b878abeec9aba15bde906804909c480fbb6f.tar.bz2 |
* emultempl/spuelf.em (_binary_builtin_ovl_mgr_start): Rename
to _binary_spu_ovl_o_start.
(_binary_builtin_ovl_mgr_end): Rename to _binary_spu_ovl_o_end.
(spu_elf_load_ovl_mgr): Fatal error on missing overlay manager.
* emultempl/spu_inc.s: Rename symbols.
* emultempl/spu_none.s: New file.
* emultempl/spu_ovl.S: Update copyright.
* Makefile.am (spu_inc.o): Try building with ld -r first, then
gas incbin, then build without overlay manager.
* Makefile.in: Regenerate.
Diffstat (limited to 'ld')
-rw-r--r-- | ld/ChangeLog | 13 | ||||
-rw-r--r-- | ld/Makefile.am | 10 | ||||
-rw-r--r-- | ld/Makefile.in | 10 | ||||
-rw-r--r-- | ld/emultempl/spu_inc.s | 8 | ||||
-rw-r--r-- | ld/emultempl/spu_none.s | 6 | ||||
-rw-r--r-- | ld/emultempl/spu_ovl.S | 2 | ||||
-rw-r--r-- | ld/emultempl/spuelf.em | 10 |
7 files changed, 46 insertions, 13 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index a119a0a..f6de156 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,16 @@ +2007-02-26 Alan Modra <amodra@bigpond.net.au> + + * emultempl/spuelf.em (_binary_builtin_ovl_mgr_start): Rename + to _binary_spu_ovl_o_start. + (_binary_builtin_ovl_mgr_end): Rename to _binary_spu_ovl_o_end. + (spu_elf_load_ovl_mgr): Fatal error on missing overlay manager. + * emultempl/spu_inc.s: Rename symbols. + * emultempl/spu_none.s: New file. + * emultempl/spu_ovl.S: Update copyright. + * Makefile.am (spu_inc.o): Try building with ld -r first, then + gas incbin, then build without overlay manager. + * Makefile.in: Regenerate. + 2007-02-22 Joseph Myers <joseph@codesourcery.com> * configure.tgt (mips64*el-*-linux-*, mips64*-*-linux-*, diff --git a/ld/Makefile.am b/ld/Makefile.am index a62167a..d83bb16 100644 --- a/ld/Makefile.am +++ b/ld/Makefile.am @@ -724,8 +724,14 @@ eelf32_sparc_vxworks.c: $(srcdir)/emulparams/elf32_sparc_vxworks.sh \ eelf32_spu.c: $(srcdir)/emulparams/elf32_spu.sh $(srcdir)/emultempl/spuelf.em \ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32_spu "$(tdir_elf32_spu)" -spu_inc.o: $(srcdir)/emultempl/spu_inc.s $(srcdir)/emultempl/spu_ovl.o - $(CC) -c -Wa,-I,$(srcdir)/emultempl -o $@ $< +spu_inc.o: $(srcdir)/emultempl/spu_inc.s $(srcdir)/emultempl/spu_none.s \ + $(srcdir)/emultempl/spu_ovl.o + cp $(srcdir)/emultempl/spu_ovl.o spu_ovl.o; \ + if ! ld -r -o $@ -b binary spu_ovl.o; then \ + if ! $(CC) -c -o $@ $(srcdir)/emultempl/spu_inc.s; then \ + $(CC) -c -o $@ $(srcdir)/emultempl/spu_none.s; \ + fi \ + fi $(srcdir)/emultempl/spu_ovl.o: @MAINT@ $(srcdir)/emultempl/spu_ovl.S cpp -DOVLY_IRQ_SAVE $(srcdir)/emultempl/spu_ovl.S spu_ovl.s if ../gas/as-new --version \ diff --git a/ld/Makefile.in b/ld/Makefile.in index c19ff97..cf3357b 100644 --- a/ld/Makefile.in +++ b/ld/Makefile.in @@ -1535,8 +1535,14 @@ eelf32_sparc_vxworks.c: $(srcdir)/emulparams/elf32_sparc_vxworks.sh \ eelf32_spu.c: $(srcdir)/emulparams/elf32_spu.sh $(srcdir)/emultempl/spuelf.em \ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32_spu "$(tdir_elf32_spu)" -spu_inc.o: $(srcdir)/emultempl/spu_inc.s $(srcdir)/emultempl/spu_ovl.o - $(CC) -c -Wa,-I,$(srcdir)/emultempl -o $@ $< +spu_inc.o: $(srcdir)/emultempl/spu_inc.s $(srcdir)/emultempl/spu_none.s \ + $(srcdir)/emultempl/spu_ovl.o + cp $(srcdir)/emultempl/spu_ovl.o spu_ovl.o; \ + if ! ld -r -o $@ -b binary spu_ovl.o; then \ + if ! $(CC) -c -o $@ $(srcdir)/emultempl/spu_inc.s; then \ + $(CC) -c -o $@ $(srcdir)/emultempl/spu_none.s; \ + fi \ + fi $(srcdir)/emultempl/spu_ovl.o: @MAINT@ $(srcdir)/emultempl/spu_ovl.S cpp -DOVLY_IRQ_SAVE $(srcdir)/emultempl/spu_ovl.S spu_ovl.s if ../gas/as-new --version \ diff --git a/ld/emultempl/spu_inc.s b/ld/emultempl/spu_inc.s index 243bd10..29a076c 100644 --- a/ld/emultempl/spu_inc.s +++ b/ld/emultempl/spu_inc.s @@ -1,7 +1,7 @@ .text - .globl _binary_builtin_ovl_mgr_start - .globl _binary_builtin_ovl_mgr_end + .globl _binary_spu_ovl_o_start + .globl _binary_spu_ovl_o_end -_binary_builtin_ovl_mgr_start: +_binary_spu_ovl_o_start: .incbin "spu_ovl.o" -_binary_builtin_ovl_mgr_end: +_binary_spu_ovl_o_end: diff --git a/ld/emultempl/spu_none.s b/ld/emultempl/spu_none.s new file mode 100644 index 0000000..f0d2318 --- /dev/null +++ b/ld/emultempl/spu_none.s @@ -0,0 +1,6 @@ + .text + .globl _binary_spu_ovl_o_start + .globl _binary_spu_ovl_o_end + +_binary_spu_ovl_o_start: +_binary_spu_ovl_o_end: diff --git a/ld/emultempl/spu_ovl.S b/ld/emultempl/spu_ovl.S index 3af4fd8..53d82a4 100644 --- a/ld/emultempl/spu_ovl.S +++ b/ld/emultempl/spu_ovl.S @@ -1,6 +1,6 @@ /* Overlay manager for SPU. - Copyright 2006 Free Software Foundation, Inc. + Copyright 2006, 2007 Free Software Foundation, Inc. This file is part of GLD, the Gnu Linker. diff --git a/ld/emultempl/spuelf.em b/ld/emultempl/spuelf.em index de6a914..95b1cb2 100644 --- a/ld/emultempl/spuelf.em +++ b/ld/emultempl/spuelf.em @@ -38,12 +38,12 @@ static int emit_stub_syms = 0; static bfd_vma local_store_lo = 0; static bfd_vma local_store_hi = 0x3ffff; -extern void *_binary_builtin_ovl_mgr_start; -extern void *_binary_builtin_ovl_mgr_end; +extern void *_binary_spu_ovl_o_start; +extern void *_binary_spu_ovl_o_end; static const struct _ovl_stream ovl_mgr_stream = { - &_binary_builtin_ovl_mgr_start, - &_binary_builtin_ovl_mgr_end + &_binary_spu_ovl_o_start, + &_binary_spu_ovl_o_end }; static asection *toe = NULL; @@ -118,6 +118,8 @@ spu_elf_load_ovl_mgr (void) { /* User supplied __ovly_load. */ } + else if (ovl_mgr_stream.start == ovl_mgr_stream.end) + einfo ("%F%P: no built-in overlay manager\n"); else { lang_input_statement_type *ovl_is; |