mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-28 23:39:35 +08:00
bfd/
* elf32-spu.c (spu_elf_output_symbol_hook): New function. (elf_backend_link_output_symbol_hook): Define. ld/testsuite/ * ld-spu/ovl2.d: Update.
This commit is contained in:
@ -1,3 +1,8 @@
|
|||||||
|
2007-04-05 Alan Modra <amodra@bigpond.net.au>
|
||||||
|
|
||||||
|
* elf32-spu.c (spu_elf_output_symbol_hook): New function.
|
||||||
|
(elf_backend_link_output_symbol_hook): Define.
|
||||||
|
|
||||||
2007-04-02 Nick Clifton <nickc@redhat.com>
|
2007-04-02 Nick Clifton <nickc@redhat.com>
|
||||||
|
|
||||||
PR binutils/4292
|
PR binutils/4292
|
||||||
|
@ -1590,6 +1590,47 @@ spu_elf_relocate_section (bfd *output_bfd,
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Adjust _SPUEAR_ syms to point at their overlay stubs. */
|
||||||
|
|
||||||
|
static bfd_boolean
|
||||||
|
spu_elf_output_symbol_hook (struct bfd_link_info *info,
|
||||||
|
const char *sym_name ATTRIBUTE_UNUSED,
|
||||||
|
Elf_Internal_Sym *sym,
|
||||||
|
asection *sym_sec ATTRIBUTE_UNUSED,
|
||||||
|
struct elf_link_hash_entry *h)
|
||||||
|
{
|
||||||
|
struct spu_link_hash_table *htab = spu_hash_table (info);
|
||||||
|
|
||||||
|
if (!info->relocatable
|
||||||
|
&& htab->num_overlays != 0
|
||||||
|
&& h != NULL
|
||||||
|
&& (h->root.type == bfd_link_hash_defined
|
||||||
|
|| h->root.type == bfd_link_hash_defweak)
|
||||||
|
&& h->def_regular
|
||||||
|
&& strncmp (h->root.root.string, "_SPUEAR_", 8) == 0)
|
||||||
|
{
|
||||||
|
static Elf_Internal_Rela zero_rel;
|
||||||
|
char *stub_name = spu_stub_name (h->root.u.def.section, h, &zero_rel);
|
||||||
|
struct spu_stub_hash_entry *sh;
|
||||||
|
|
||||||
|
if (stub_name == NULL)
|
||||||
|
return FALSE;
|
||||||
|
sh = (struct spu_stub_hash_entry *)
|
||||||
|
bfd_hash_lookup (&htab->stub_hash_table, stub_name, FALSE, FALSE);
|
||||||
|
free (stub_name);
|
||||||
|
if (sh == NULL)
|
||||||
|
return TRUE;
|
||||||
|
sym->st_shndx
|
||||||
|
= _bfd_elf_section_from_bfd_section (htab->stub->output_section->owner,
|
||||||
|
htab->stub->output_section);
|
||||||
|
sym->st_value = (htab->stub->output_section->vma
|
||||||
|
+ htab->stub->output_offset
|
||||||
|
+ sh->off);
|
||||||
|
}
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
static int spu_plugin = 0;
|
static int spu_plugin = 0;
|
||||||
|
|
||||||
void
|
void
|
||||||
@ -1830,6 +1871,7 @@ spu_elf_section_processing (bfd *abfd ATTRIBUTE_UNUSED,
|
|||||||
#define elf_backend_gc_mark_hook spu_elf_gc_mark_hook
|
#define elf_backend_gc_mark_hook spu_elf_gc_mark_hook
|
||||||
#define elf_backend_relocate_section spu_elf_relocate_section
|
#define elf_backend_relocate_section spu_elf_relocate_section
|
||||||
#define elf_backend_symbol_processing spu_elf_backend_symbol_processing
|
#define elf_backend_symbol_processing spu_elf_backend_symbol_processing
|
||||||
|
#define elf_backend_link_output_symbol_hook spu_elf_output_symbol_hook
|
||||||
#define bfd_elf32_new_section_hook spu_elf_new_section_hook
|
#define bfd_elf32_new_section_hook spu_elf_new_section_hook
|
||||||
#define bfd_elf32_bfd_link_hash_table_create spu_elf_link_hash_table_create
|
#define bfd_elf32_bfd_link_hash_table_create spu_elf_link_hash_table_create
|
||||||
#define bfd_elf32_bfd_link_hash_table_free spu_elf_link_hash_table_free
|
#define bfd_elf32_bfd_link_hash_table_free spu_elf_link_hash_table_free
|
||||||
|
@ -1,3 +1,7 @@
|
|||||||
|
2007-04-05 Alan Modra <amodra@bigpond.net.au>
|
||||||
|
|
||||||
|
* ld-spu/ovl2.d: Update.
|
||||||
|
|
||||||
2007-04-02 H.J. Lu <hongjiu.lu@intel.com>
|
2007-04-02 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
PR ld/4090
|
PR ld/4090
|
||||||
|
@ -33,7 +33,7 @@ Disassembly of section \.text:
|
|||||||
138: 42 00 00 ce ila \$78,1
|
138: 42 00 00 ce ila \$78,1
|
||||||
13c: 32 00 08 80 br 180 <__ovly_load> # 180
|
13c: 32 00 08 80 br 180 <__ovly_load> # 180
|
||||||
|
|
||||||
00000140 <00000000\.ovl_call\._SPUEAR_f1_a2>:
|
00000140 <_SPUEAR_f1_a2>:
|
||||||
140: 42 02 00 4f ila \$79,1024 # 400
|
140: 42 02 00 4f ila \$79,1024 # 400
|
||||||
144: 40 20 00 00 nop \$0
|
144: 40 20 00 00 nop \$0
|
||||||
148: 42 00 01 4e ila \$78,2
|
148: 42 00 01 4e ila \$78,2
|
||||||
@ -46,7 +46,7 @@ Disassembly of section \.ov_a1:
|
|||||||
\.\.\.
|
\.\.\.
|
||||||
Disassembly of section \.ov_a2:
|
Disassembly of section \.ov_a2:
|
||||||
|
|
||||||
00000400 <_SPUEAR_f1_a2>:
|
00000400 <f1_a2>:
|
||||||
400: 32 7f a2 00 br 110 <longjmp> # 110
|
400: 32 7f a2 00 br 110 <longjmp> # 110
|
||||||
400: SPU_REL16 longjmp
|
400: SPU_REL16 longjmp
|
||||||
\.\.\.
|
\.\.\.
|
||||||
|
Reference in New Issue
Block a user