mirror of
https://github.com/darlinghq/darling-gdb.git
synced 2024-11-25 13:09:48 +00:00
bfd/
* elfxx-mips.c (mips_elf_link_hash_table): Add computed_got_sizes. (mips_elf_record_global_got_symbol): Increment local_gotno for each forced-local symbol. (_bfd_mips_elf_check_relocs): Pass forced-local call symbols to mips_elf_record_global_got_symbol for VxWorks too. (_bfd_mips_elf_always_size_sections): Set computed_got_sizes to true after computing the GOT size. (_bfd_mips_elf_hide_symbol): Increase local_gotno whenever got.offset == 1. Only adjust global_gotno if computed_got_sizes. For VxWorks, add a local entry when hiding a symbol that needs a plt but has not been marked as needing a global got entry. (_bfd_mips_elf_link_hash_table_create): Set computed_got_sizes to false. ld/testsuite/ * ld-mips-elf/vxworks-forced-local-1.d, * ld-mips-elf/vxworks-forced-local-1.s, * ld-mips-elf/vxworks-forced-local-1.ver: New test. * ld-mips-elf/mips-elf.exp: Run it. * ld-mips-elf/tlsdyn-o32-2.d: Adjust for removal of unnecessary local GOT entry. * ld-mips-elf/tlsdyn-o32-2.got: Likewise. * ld-mips-elf/tlsdyn-o32-3.d: Likewise. * ld-mips-elf/tlsdyn-o32-3.got: Likewise. * ld-mips-elf/vxworks1-lib.dd: Likewise. * ld-mips-elf/vxworks1-lib.rd: Likewise.
This commit is contained in:
parent
2cc176786d
commit
8275b357ad
@ -1,3 +1,19 @@
|
||||
2007-08-13 Richard Sandiford <richard@codesourcery.com>
|
||||
|
||||
* elfxx-mips.c (mips_elf_link_hash_table): Add computed_got_sizes.
|
||||
(mips_elf_record_global_got_symbol): Increment local_gotno for
|
||||
each forced-local symbol.
|
||||
(_bfd_mips_elf_check_relocs): Pass forced-local call symbols to
|
||||
mips_elf_record_global_got_symbol for VxWorks too.
|
||||
(_bfd_mips_elf_always_size_sections): Set computed_got_sizes
|
||||
to true after computing the GOT size.
|
||||
(_bfd_mips_elf_hide_symbol): Increase local_gotno whenever
|
||||
got.offset == 1. Only adjust global_gotno if computed_got_sizes.
|
||||
For VxWorks, add a local entry when hiding a symbol that needs a
|
||||
plt but has not been marked as needing a global got entry.
|
||||
(_bfd_mips_elf_link_hash_table_create): Set computed_got_sizes to
|
||||
false.
|
||||
|
||||
2007-08-12 Daniel Jacobowitz <dan@codesourcery.com>
|
||||
|
||||
* coffgen.c (coff_get_normalized_symtab): Correct cast.
|
||||
|
@ -323,6 +323,8 @@ struct mips_elf_link_hash_table
|
||||
bfd_vma rld_value;
|
||||
/* This is set if we see any mips16 stub sections. */
|
||||
bfd_boolean mips16_stubs_seen;
|
||||
/* True if we've computed the size of the GOT. */
|
||||
bfd_boolean computed_got_sizes;
|
||||
/* True if we're generating code for VxWorks. */
|
||||
bfd_boolean is_vxworks;
|
||||
/* True if we already reported the small-data section overflow. */
|
||||
@ -2691,7 +2693,7 @@ mips_elf_create_local_got_entry (bfd *abfd, struct bfd_link_info *info,
|
||||
|
||||
memcpy (*loc, &entry, sizeof entry);
|
||||
|
||||
if (g->assigned_gotno >= g->local_gotno)
|
||||
if (g->assigned_gotno > g->local_gotno)
|
||||
{
|
||||
(*loc)->gotidx = -1;
|
||||
/* We didn't allocate enough space in the GOT. */
|
||||
@ -2876,11 +2878,15 @@ mips_elf_record_global_got_symbol (struct elf_link_hash_entry *h,
|
||||
if (h->got.offset != MINUS_ONE)
|
||||
return TRUE;
|
||||
|
||||
/* By setting this to a value other than -1, we are indicating that
|
||||
there needs to be a GOT entry for H. Avoid using zero, as the
|
||||
generic ELF copy_indirect_symbol tests for <= 0. */
|
||||
if (tls_flag == 0)
|
||||
h->got.offset = 1;
|
||||
{
|
||||
/* By setting this to a value other than -1, we are indicating that
|
||||
there needs to be a GOT entry for H. Avoid using zero, as the
|
||||
generic ELF copy_indirect_symbol tests for <= 0. */
|
||||
h->got.offset = 1;
|
||||
if (h->forced_local)
|
||||
g->local_gotno++;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
@ -6528,7 +6534,7 @@ _bfd_mips_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
|
||||
/* VxWorks call relocations point the function's .got.plt
|
||||
entry, which will be allocated by adjust_dynamic_symbol.
|
||||
Otherwise, this symbol requires a global GOT entry. */
|
||||
if (!htab->is_vxworks
|
||||
if ((!htab->is_vxworks || h->forced_local)
|
||||
&& !mips_elf_record_global_got_symbol (h, abfd, info, g, 0))
|
||||
return FALSE;
|
||||
|
||||
@ -7312,6 +7318,7 @@ _bfd_mips_elf_always_size_sections (bfd *output_bfd,
|
||||
g->tls_assigned_gotno = g->global_gotno + g->local_gotno;
|
||||
htab_traverse (g->got_entries, mips_elf_initialize_tls_index, g);
|
||||
}
|
||||
htab->computed_got_sizes = TRUE;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
@ -9671,6 +9678,7 @@ _bfd_mips_elf_hide_symbol (struct bfd_link_info *info,
|
||||
asection *got;
|
||||
struct mips_got_info *g;
|
||||
struct mips_elf_link_hash_entry *h;
|
||||
struct mips_elf_link_hash_table *htab;
|
||||
|
||||
h = (struct mips_elf_link_hash_entry *) entry;
|
||||
if (h->forced_local)
|
||||
@ -9678,6 +9686,7 @@ _bfd_mips_elf_hide_symbol (struct bfd_link_info *info,
|
||||
h->forced_local = force_local;
|
||||
|
||||
dynobj = elf_hash_table (info)->dynobj;
|
||||
htab = mips_elf_hash_table (info);
|
||||
if (dynobj != NULL && force_local && h->root.type != STT_TLS
|
||||
&& (got = mips_elf_got_section (dynobj, TRUE)) != NULL
|
||||
&& (g = mips_elf_section_data (got)->u.got_info) != NULL)
|
||||
@ -9715,20 +9724,30 @@ _bfd_mips_elf_hide_symbol (struct bfd_link_info *info,
|
||||
gg->assigned_gotno--;
|
||||
}
|
||||
}
|
||||
else if (g->global_gotno == 0 && g->global_gotsym == NULL)
|
||||
/* If we haven't got through GOT allocation yet, just bump up the
|
||||
number of local entries, as this symbol won't be counted as
|
||||
global. */
|
||||
g->local_gotno++;
|
||||
else if (h->root.got.offset == 1)
|
||||
{
|
||||
/* If we're past non-multi-GOT allocation and this symbol had
|
||||
been marked for a global got entry, give it a local entry
|
||||
instead. */
|
||||
BFD_ASSERT (g->global_gotno > 0);
|
||||
/* check_relocs didn't know that this symbol would be
|
||||
forced-local, so add an extra local got entry. */
|
||||
g->local_gotno++;
|
||||
g->global_gotno--;
|
||||
if (htab->computed_got_sizes)
|
||||
{
|
||||
/* We'll have treated this symbol as global rather
|
||||
than local. */
|
||||
BFD_ASSERT (g->global_gotno > 0);
|
||||
g->global_gotno--;
|
||||
}
|
||||
}
|
||||
else if (htab->is_vxworks && h->root.needs_plt)
|
||||
{
|
||||
/* check_relocs didn't know that this symbol would be
|
||||
forced-local, so add an extra local got entry. */
|
||||
g->local_gotno++;
|
||||
if (htab->computed_got_sizes)
|
||||
/* The symbol is only used in call relocations, so we'll
|
||||
have assumed it only needs a .got.plt entry. Increase
|
||||
the size of .got accordingly. */
|
||||
got->size += MIPS_ELF_GOT_SIZE (dynobj);
|
||||
}
|
||||
}
|
||||
|
||||
_bfd_elf_link_hash_hide_symbol (info, &h->root, force_local);
|
||||
@ -10189,6 +10208,7 @@ _bfd_mips_elf_link_hash_table_create (bfd *abfd)
|
||||
ret->use_rld_obj_head = FALSE;
|
||||
ret->rld_value = 0;
|
||||
ret->mips16_stubs_seen = FALSE;
|
||||
ret->computed_got_sizes = FALSE;
|
||||
ret->is_vxworks = FALSE;
|
||||
ret->small_data_overflow_reported = FALSE;
|
||||
ret->srelbss = NULL;
|
||||
|
@ -1,3 +1,17 @@
|
||||
2007-08-13 Richard Sandiford <richard@codesourcery.com>
|
||||
|
||||
* ld-mips-elf/vxworks-forced-local-1.d,
|
||||
* ld-mips-elf/vxworks-forced-local-1.s,
|
||||
* ld-mips-elf/vxworks-forced-local-1.ver: New test.
|
||||
* ld-mips-elf/mips-elf.exp: Run it.
|
||||
* ld-mips-elf/tlsdyn-o32-2.d: Adjust for removal of unnecessary
|
||||
local GOT entry.
|
||||
* ld-mips-elf/tlsdyn-o32-2.got: Likewise.
|
||||
* ld-mips-elf/tlsdyn-o32-3.d: Likewise.
|
||||
* ld-mips-elf/tlsdyn-o32-3.got: Likewise.
|
||||
* ld-mips-elf/vxworks1-lib.dd: Likewise.
|
||||
* ld-mips-elf/vxworks1-lib.rd: Likewise.
|
||||
|
||||
2007-08-13 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* ld-powerpc/relbrlt.s (.text.pad2): Adjust space.
|
||||
|
@ -44,6 +44,7 @@ if {[istarget "mips*-*-vxworks"]} {
|
||||
}
|
||||
run_ld_link_tests $mipsvxtests
|
||||
run_dump_test "vxworks1-static"
|
||||
run_dump_test "vxworks-forced-local-1"
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -11,20 +11,20 @@ Disassembly of section .text:
|
||||
.*: afbe0008 sw s8,8\(sp\)
|
||||
.*: 03a0f021 move s8,sp
|
||||
.*: afbc0000 sw gp,0\(sp\)
|
||||
.*: 8f998030 lw t9,-32720\(gp\)
|
||||
.*: 27848048 addiu a0,gp,-32696
|
||||
.*: 8f99802c lw t9,-32724\(gp\)
|
||||
.*: 27848044 addiu a0,gp,-32700
|
||||
.*: 0320f809 jalr t9
|
||||
.*: 00000000 nop
|
||||
.*: 8fdc0000 lw gp,0\(s8\)
|
||||
.*: 00000000 nop
|
||||
.*: 8f998030 lw t9,-32720\(gp\)
|
||||
.*: 2784803c addiu a0,gp,-32708
|
||||
.*: 8f99802c lw t9,-32724\(gp\)
|
||||
.*: 27848038 addiu a0,gp,-32712
|
||||
.*: 0320f809 jalr t9
|
||||
.*: 00000000 nop
|
||||
.*: 8fdc0000 lw gp,0\(s8\)
|
||||
.*: 00000000 nop
|
||||
.*: 8f998030 lw t9,-32720\(gp\)
|
||||
.*: 27848034 addiu a0,gp,-32716
|
||||
.*: 8f99802c lw t9,-32724\(gp\)
|
||||
.*: 27848030 addiu a0,gp,-32720
|
||||
.*: 0320f809 jalr t9
|
||||
.*: 00000000 nop
|
||||
.*: 8fdc0000 lw gp,0\(s8\)
|
||||
@ -33,10 +33,10 @@ Disassembly of section .text:
|
||||
.*: 24638000 addiu v1,v1,-32768
|
||||
.*: 00621821 addu v1,v1,v0
|
||||
.*: 7c02283b rdhwr v0,\$5
|
||||
.*: 8f838050 lw v1,-32688\(gp\)
|
||||
.*: 8f83804c lw v1,-32692\(gp\)
|
||||
.*: 00000000 nop
|
||||
.*: 00621821 addu v1,v1,v0
|
||||
.*: 8f838044 lw v1,-32700\(gp\)
|
||||
.*: 8f838040 lw v1,-32704\(gp\)
|
||||
.*: 00000000 nop
|
||||
.*: 00621821 addu v1,v1,v0
|
||||
.*: 7c02283b rdhwr v0,\$5
|
||||
@ -61,20 +61,20 @@ Disassembly of section .text:
|
||||
.*: afbe0008 sw s8,8\(sp\)
|
||||
.*: 03a0f021 move s8,sp
|
||||
.*: afbc0000 sw gp,0\(sp\)
|
||||
.*: 8f998030 lw t9,-32720\(gp\)
|
||||
.*: 27848048 addiu a0,gp,-32696
|
||||
.*: 8f99802c lw t9,-32724\(gp\)
|
||||
.*: 27848044 addiu a0,gp,-32700
|
||||
.*: 0320f809 jalr t9
|
||||
.*: 00000000 nop
|
||||
.*: 8fdc0000 lw gp,0\(s8\)
|
||||
.*: 00000000 nop
|
||||
.*: 8f998030 lw t9,-32720\(gp\)
|
||||
.*: 2784803c addiu a0,gp,-32708
|
||||
.*: 8f99802c lw t9,-32724\(gp\)
|
||||
.*: 27848038 addiu a0,gp,-32712
|
||||
.*: 0320f809 jalr t9
|
||||
.*: 00000000 nop
|
||||
.*: 8fdc0000 lw gp,0\(s8\)
|
||||
.*: 00000000 nop
|
||||
.*: 8f998030 lw t9,-32720\(gp\)
|
||||
.*: 27848034 addiu a0,gp,-32716
|
||||
.*: 8f99802c lw t9,-32724\(gp\)
|
||||
.*: 27848030 addiu a0,gp,-32720
|
||||
.*: 0320f809 jalr t9
|
||||
.*: 00000000 nop
|
||||
.*: 8fdc0000 lw gp,0\(s8\)
|
||||
@ -83,10 +83,10 @@ Disassembly of section .text:
|
||||
.*: 24638000 addiu v1,v1,-32768
|
||||
.*: 00621821 addu v1,v1,v0
|
||||
.*: 7c02283b rdhwr v0,\$5
|
||||
.*: 8f838050 lw v1,-32688\(gp\)
|
||||
.*: 8f83804c lw v1,-32692\(gp\)
|
||||
.*: 00000000 nop
|
||||
.*: 00621821 addu v1,v1,v0
|
||||
.*: 8f838044 lw v1,-32700\(gp\)
|
||||
.*: 8f838040 lw v1,-32704\(gp\)
|
||||
.*: 00000000 nop
|
||||
.*: 00621821 addu v1,v1,v0
|
||||
.*: 7c02283b rdhwr v0,\$5
|
||||
|
@ -4,17 +4,17 @@
|
||||
DYNAMIC RELOCATION RECORDS
|
||||
OFFSET TYPE VALUE
|
||||
00000000 R_MIPS_NONE \*ABS\*
|
||||
10000058 R_MIPS_TLS_DTPMOD32 tlsbin_gd
|
||||
1000005c R_MIPS_TLS_DTPREL32 tlsbin_gd
|
||||
1000004c R_MIPS_TLS_DTPMOD32 tlsvar_gd
|
||||
10000050 R_MIPS_TLS_DTPREL32 tlsvar_gd
|
||||
10000054 R_MIPS_TLS_TPREL32 tlsvar_ie
|
||||
10000060 R_MIPS_TLS_TPREL32 tlsbin_ie
|
||||
10000054 R_MIPS_TLS_DTPMOD32 tlsbin_gd
|
||||
10000058 R_MIPS_TLS_DTPREL32 tlsbin_gd
|
||||
10000048 R_MIPS_TLS_DTPMOD32 tlsvar_gd
|
||||
1000004c R_MIPS_TLS_DTPREL32 tlsvar_gd
|
||||
10000050 R_MIPS_TLS_TPREL32 tlsvar_ie
|
||||
1000005c R_MIPS_TLS_TPREL32 tlsbin_ie
|
||||
|
||||
|
||||
Contents of section .got:
|
||||
10000020 00000000 80000000 00000000 00000000 .*
|
||||
10000030 00000000 00000000 00000000 00000000 .*
|
||||
10000040 0040053c 00000001 00000000 00000000 .*
|
||||
10000030 00000000 00000000 00000000 0040053c .*
|
||||
10000040 00000001 00000000 00000000 00000000 .*
|
||||
10000050 00000000 00000000 00000000 00000000 .*
|
||||
10000060 00000000 00000000 00000000 00000000 .*
|
||||
10000060 00000000 00000000 00000000 .*
|
||||
|
@ -11,20 +11,20 @@ Disassembly of section .text:
|
||||
.*: afbe0008 sw s8,8\(sp\)
|
||||
.*: 03a0f021 move s8,sp
|
||||
.*: afbc0000 sw gp,0\(sp\)
|
||||
.*: 8f998030 lw t9,-32720\(gp\)
|
||||
.*: 27848048 addiu a0,gp,-32696
|
||||
.*: 8f99802c lw t9,-32724\(gp\)
|
||||
.*: 27848044 addiu a0,gp,-32700
|
||||
.*: 0320f809 jalr t9
|
||||
.*: 00000000 nop
|
||||
.*: 8fdc0000 lw gp,0\(s8\)
|
||||
.*: 00000000 nop
|
||||
.*: 8f998030 lw t9,-32720\(gp\)
|
||||
.*: 2784803c addiu a0,gp,-32708
|
||||
.*: 8f99802c lw t9,-32724\(gp\)
|
||||
.*: 27848038 addiu a0,gp,-32712
|
||||
.*: 0320f809 jalr t9
|
||||
.*: 00000000 nop
|
||||
.*: 8fdc0000 lw gp,0\(s8\)
|
||||
.*: 00000000 nop
|
||||
.*: 8f998030 lw t9,-32720\(gp\)
|
||||
.*: 27848034 addiu a0,gp,-32716
|
||||
.*: 8f99802c lw t9,-32724\(gp\)
|
||||
.*: 27848030 addiu a0,gp,-32720
|
||||
.*: 0320f809 jalr t9
|
||||
.*: 00000000 nop
|
||||
.*: 8fdc0000 lw gp,0\(s8\)
|
||||
@ -33,10 +33,10 @@ Disassembly of section .text:
|
||||
.*: 24638000 addiu v1,v1,-32768
|
||||
.*: 00621821 addu v1,v1,v0
|
||||
.*: 7c02283b rdhwr v0,\$5
|
||||
.*: 8f838050 lw v1,-32688\(gp\)
|
||||
.*: 8f83804c lw v1,-32692\(gp\)
|
||||
.*: 00000000 nop
|
||||
.*: 00621821 addu v1,v1,v0
|
||||
.*: 8f838044 lw v1,-32700\(gp\)
|
||||
.*: 8f838040 lw v1,-32704\(gp\)
|
||||
.*: 00000000 nop
|
||||
.*: 00621821 addu v1,v1,v0
|
||||
.*: 7c02283b rdhwr v0,\$5
|
||||
@ -57,20 +57,20 @@ Disassembly of section .text:
|
||||
.*: afbe0008 sw s8,8\(sp\)
|
||||
.*: 03a0f021 move s8,sp
|
||||
.*: afbc0000 sw gp,0\(sp\)
|
||||
.*: 8f998030 lw t9,-32720\(gp\)
|
||||
.*: 27848048 addiu a0,gp,-32696
|
||||
.*: 8f99802c lw t9,-32724\(gp\)
|
||||
.*: 27848044 addiu a0,gp,-32700
|
||||
.*: 0320f809 jalr t9
|
||||
.*: 00000000 nop
|
||||
.*: 8fdc0000 lw gp,0\(s8\)
|
||||
.*: 00000000 nop
|
||||
.*: 8f998030 lw t9,-32720\(gp\)
|
||||
.*: 2784803c addiu a0,gp,-32708
|
||||
.*: 8f99802c lw t9,-32724\(gp\)
|
||||
.*: 27848038 addiu a0,gp,-32712
|
||||
.*: 0320f809 jalr t9
|
||||
.*: 00000000 nop
|
||||
.*: 8fdc0000 lw gp,0\(s8\)
|
||||
.*: 00000000 nop
|
||||
.*: 8f998030 lw t9,-32720\(gp\)
|
||||
.*: 27848034 addiu a0,gp,-32716
|
||||
.*: 8f99802c lw t9,-32724\(gp\)
|
||||
.*: 27848030 addiu a0,gp,-32720
|
||||
.*: 0320f809 jalr t9
|
||||
.*: 00000000 nop
|
||||
.*: 8fdc0000 lw gp,0\(s8\)
|
||||
@ -79,10 +79,10 @@ Disassembly of section .text:
|
||||
.*: 24638000 addiu v1,v1,-32768
|
||||
.*: 00621821 addu v1,v1,v0
|
||||
.*: 7c02283b rdhwr v0,\$5
|
||||
.*: 8f838050 lw v1,-32688\(gp\)
|
||||
.*: 8f83804c lw v1,-32692\(gp\)
|
||||
.*: 00000000 nop
|
||||
.*: 00621821 addu v1,v1,v0
|
||||
.*: 8f838044 lw v1,-32700\(gp\)
|
||||
.*: 8f838040 lw v1,-32704\(gp\)
|
||||
.*: 00000000 nop
|
||||
.*: 00621821 addu v1,v1,v0
|
||||
.*: 7c02283b rdhwr v0,\$5
|
||||
|
@ -4,17 +4,17 @@
|
||||
DYNAMIC RELOCATION RECORDS
|
||||
OFFSET TYPE VALUE
|
||||
00000000 R_MIPS_NONE \*ABS\*
|
||||
10000058 R_MIPS_TLS_DTPMOD32 tlsbin_gd
|
||||
1000005c R_MIPS_TLS_DTPREL32 tlsbin_gd
|
||||
1000004c R_MIPS_TLS_DTPMOD32 tlsvar_gd
|
||||
10000050 R_MIPS_TLS_DTPREL32 tlsvar_gd
|
||||
10000054 R_MIPS_TLS_TPREL32 tlsvar_ie
|
||||
10000060 R_MIPS_TLS_TPREL32 tlsbin_ie
|
||||
10000054 R_MIPS_TLS_DTPMOD32 tlsbin_gd
|
||||
10000058 R_MIPS_TLS_DTPREL32 tlsbin_gd
|
||||
10000048 R_MIPS_TLS_DTPMOD32 tlsvar_gd
|
||||
1000004c R_MIPS_TLS_DTPREL32 tlsvar_gd
|
||||
10000050 R_MIPS_TLS_TPREL32 tlsvar_ie
|
||||
1000005c R_MIPS_TLS_TPREL32 tlsbin_ie
|
||||
|
||||
|
||||
Contents of section .got:
|
||||
10000020 00000000 80000000 00000000 00000000 ................
|
||||
10000030 00000000 00000000 00000000 00000000 ................
|
||||
10000040 004005ec 00000001 00000000 00000000 .@..............
|
||||
10000050 00000000 00000000 00000000 00000000 ................
|
||||
10000060 00000000 00000000 00000000 00000000 ................
|
||||
10000020 00000000 80000000 00000000 00000000 .*
|
||||
10000030 00000000 00000000 00000000 004005ec .*
|
||||
10000040 00000001 00000000 00000000 00000000 .*
|
||||
10000050 00000000 00000000 00000000 00000000 .*
|
||||
10000060 00000000 00000000 00000000 .*
|
||||
|
12
ld/testsuite/ld-mips-elf/vxworks-forced-local-1.d
Normal file
12
ld/testsuite/ld-mips-elf/vxworks-forced-local-1.d
Normal file
@ -0,0 +1,12 @@
|
||||
#as: -mips2 -mvxworks-pic
|
||||
#source: vxworks-forced-local-1.s
|
||||
#ld: -shared -Tvxworks1.ld --version-script vxworks-forced-local-1.ver
|
||||
#readelf: --relocs
|
||||
|
||||
Relocation section '\.rela\.dyn' .*
|
||||
.*
|
||||
0008140c 00000002 R_MIPS_32 *00080810
|
||||
00081410 00000002 R_MIPS_32 *00080814
|
||||
00081414 00000002 R_MIPS_32 *00080818
|
||||
00081418 00000302 R_MIPS_32 *00000000 *bar \+ 0
|
||||
#pass
|
13
ld/testsuite/ld-mips-elf/vxworks-forced-local-1.s
Normal file
13
ld/testsuite/ld-mips-elf/vxworks-forced-local-1.s
Normal file
@ -0,0 +1,13 @@
|
||||
.globl foo1
|
||||
.globl foo2
|
||||
.globl foo3
|
||||
lw $4,%call16(foo1)($gp)
|
||||
lw $4,%call16(foo2)($gp)
|
||||
lw $4,%call16(foo3)($gp)
|
||||
lw $4,%got(bar)($gp)
|
||||
foo1:
|
||||
nop
|
||||
foo2:
|
||||
nop
|
||||
foo3:
|
||||
nop
|
1
ld/testsuite/ld-mips-elf/vxworks-forced-local-1.ver
Normal file
1
ld/testsuite/ld-mips-elf/vxworks-forced-local-1.ver
Normal file
@ -0,0 +1 @@
|
||||
{ local: foo*; };
|
@ -22,7 +22,7 @@ Disassembly of section \.text:
|
||||
80c0c: 3c1c0000 lui gp,0x0
|
||||
80c10: 8f9c0000 lw gp,0\(gp\)
|
||||
80c14: 8f9c0000 lw gp,0\(gp\)
|
||||
80c18: 8f820014 lw v0,20\(gp\)
|
||||
80c18: 8f820010 lw v0,16\(gp\)
|
||||
80c1c: 8c430000 lw v1,0\(v0\)
|
||||
80c20: 24630001 addiu v1,v1,1
|
||||
80c24: ac430000 sw v1,0\(v0\)
|
||||
|
@ -9,9 +9,8 @@ Relocation section '\.rela\.dyn' at offset .* contains .* entries:
|
||||
00081804 00000002 R_MIPS_32 00081800
|
||||
00081808 .*02 R_MIPS_32 00081808 dglobal \+ 0
|
||||
0008180c .*02 R_MIPS_32 00000000 dexternal \+ 0
|
||||
00081424 .*02 R_MIPS_32 00081c00 x \+ 0
|
||||
00000000 00000000 R_MIPS_NONE 00000000
|
||||
#...
|
||||
00081420 .*02 R_MIPS_32 00081c00 x \+ 0
|
||||
|
||||
Relocation section '\.rela\.plt' at offset .* contains 2 entries:
|
||||
Offset Info Type Sym\.Value Sym\. Name \+ Addend
|
||||
00081400 .*7f R_MIPS_JUMP_SLOT 00000000 sexternal \+ 0
|
||||
|
Loading…
Reference in New Issue
Block a user