* 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.
This commit is contained in:
Alan Modra 2007-02-26 08:58:16 +00:00
parent 56b60c14ab
commit 45d3b878ab
7 changed files with 46 additions and 13 deletions

View File

@ -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-*,

View File

@ -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 \

View File

@ -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 \

View File

@ -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:

6
ld/emultempl/spu_none.s Normal file
View File

@ -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:

View File

@ -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.

View File

@ -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;