mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-10-16 20:32:21 +08:00
* elf32-m68k.c (elf_m68k_relocate_section): Don't ignore existing
addend on _GLOBAL_OFFSET_TABLE_. ld/testsuite/: * ld-m68k/got-1.s: New file. * ld-m68k/got-1.d: New dump test. * ld-m68k/m68k.exp: Run it.
This commit is contained in:
@ -1,3 +1,8 @@
|
||||
2008-06-29 Andreas Schwab <schwab@suse.de>
|
||||
|
||||
* elf32-m68k.c (elf_m68k_relocate_section): Don't ignore existing
|
||||
addend on _GLOBAL_OFFSET_TABLE_.
|
||||
|
||||
2008-06-24 Daniel Jacobowitz <dan@codesourcery.com>
|
||||
|
||||
* elf32-arm.c (STUB_ENTRY_NAME): Define.
|
||||
|
@ -3135,8 +3135,6 @@ elf_m68k_relocate_section (output_bfd, info, input_bfd, input_section,
|
||||
if (h != NULL
|
||||
&& strcmp (h->root.root.string, "_GLOBAL_OFFSET_TABLE_") == 0)
|
||||
{
|
||||
BFD_ASSERT (rel->r_addend == 0);
|
||||
|
||||
if (elf_m68k_hash_table (info)->local_gp_p)
|
||||
{
|
||||
bfd_vma sgot_output_offset;
|
||||
@ -3185,7 +3183,7 @@ elf_m68k_relocate_section (output_bfd, info, input_bfd, input_section,
|
||||
|
||||
/* Adjust GOT pointer to point to the GOT
|
||||
assigned to input_bfd. */
|
||||
rel->r_addend = sgot_output_offset + got_offset;
|
||||
rel->r_addend += sgot_output_offset + got_offset;
|
||||
}
|
||||
else
|
||||
BFD_ASSERT (got == NULL || got->offset == 0);
|
||||
|
@ -1,3 +1,9 @@
|
||||
2008-06-29 Andreas Schwab <schwab@suse.de>
|
||||
|
||||
* ld-m68k/got-1.s: New file.
|
||||
* ld-m68k/got-1.d: New dump test.
|
||||
* ld-m68k/m68k.exp: Run it.
|
||||
|
||||
2008-06-24 Daniel Jacobowitz <dan@codesourcery.com>
|
||||
|
||||
* ld-arm/farcall-arm-arm-be8.d, ld-arm/farcall-arm-arm-pic-veneer.d,
|
||||
|
19
ld/testsuite/ld-m68k/got-1.d
Normal file
19
ld/testsuite/ld-m68k/got-1.d
Normal file
@ -0,0 +1,19 @@
|
||||
#source: got-1.s
|
||||
#ld: -shared
|
||||
#readelf: -d -r
|
||||
|
||||
Dynamic section at offset .* contains 9 entries:
|
||||
Tag Type Name/Value
|
||||
0x00000004 \(HASH\) 0x[0-9a-f]+
|
||||
0x00000005 \(STRTAB\) 0x[0-9a-f]+
|
||||
0x00000006 \(SYMTAB\) 0x[0-9a-f]+
|
||||
0x0000000a \(STRSZ\) [0-9]+ \(bytes\)
|
||||
0x0000000b \(SYMENT\) 16 \(bytes\)
|
||||
0x00000007 \(RELA\) 0x[0-9a-f]+
|
||||
0x00000008 \(RELASZ\) 12 \(bytes\)
|
||||
0x00000009 \(RELAENT\) 12 \(bytes\)
|
||||
0x00000000 \(NULL\) 0x0
|
||||
|
||||
Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 1 entries:
|
||||
Offset Info Type Sym.Value Sym. Name \+ Addend
|
||||
[0-9a-f]+ [0-9a-f]+ R_68K_GLOB_DAT 00000000 a \+ 0
|
18
ld/testsuite/ld-m68k/got-1.s
Normal file
18
ld/testsuite/ld-m68k/got-1.s
Normal file
@ -0,0 +1,18 @@
|
||||
#NO_APP
|
||||
.file "got-1.c"
|
||||
.text
|
||||
.align 2
|
||||
.globl foo
|
||||
.type foo, @function
|
||||
foo:
|
||||
link.w %fp,#0
|
||||
move.l %a5,-(%sp)
|
||||
lea (%pc, _GLOBAL_OFFSET_TABLE_@GOTPC), %a5
|
||||
move.l a@GOT(%a5),%d0
|
||||
move.l %d0,%a0
|
||||
move.l (%a0),%d0
|
||||
move.l (%sp)+,%a5
|
||||
unlk %fp
|
||||
rts
|
||||
.size foo, .-foo
|
||||
.section .note.GNU-stack,"",@progbits
|
@ -73,6 +73,7 @@ foreach { id sources } { a { plt1.s } b { plt1-empty.s plt1.s } } {
|
||||
# 4 - 16384
|
||||
# 5 - 16385
|
||||
|
||||
run_dump_test "got-1"
|
||||
run_dump_test "got-single-12-ok"
|
||||
run_dump_test "got-single-13-er"
|
||||
run_dump_test "got-negative-14-ok"
|
||||
|
Reference in New Issue
Block a user