2007-05-22 Paul Brook <paul@codesourcery.com>
bunutils/ * objdump.c (find_symbol_for_address): Merge section and target specific filtering code. ld/testsuite/ * ld-arm-mixed-lib.d: Update expected output. * ld-arm/arm-app.d: Ditto. * ld-arm/mixed-app.d: Ditto. * ld-arm/arm-lib-plt32.d: Ditto. * ld-arm/arm-app-abs32.d: Ditto. * ld-arm/mixed-app-v5.d: Ditto. * ld-arm/armthumb-lib.d: Ditto. * ld-arm/arm-lib.d: Ditto. gas/testsuite/ * gas/arm/backslash-at.d: Update expected output.
This commit is contained in:
parent
23776285b7
commit
e39ff52a3b
13 changed files with 69 additions and 48 deletions
|
@ -1,3 +1,8 @@
|
|||
2007-05-22 Paul Brook <paul@codesourcery.com>
|
||||
|
||||
* objdump.c (find_symbol_for_address): Merge section and target
|
||||
specific filtering code.
|
||||
|
||||
2007-05-22 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
* doc/binutils.texi: Use @copying around the copyright notice.
|
||||
|
|
|
@ -687,6 +687,7 @@ find_symbol_for_address (bfd_vma vma,
|
|||
bfd *abfd;
|
||||
asection *sec;
|
||||
unsigned int opb;
|
||||
bfd_boolean want_section;
|
||||
|
||||
if (sorted_symcount < 1)
|
||||
return NULL;
|
||||
|
@ -732,15 +733,19 @@ find_symbol_for_address (bfd_vma vma,
|
|||
Note that this may be wrong for some symbol references if the
|
||||
sections have overlapping memory ranges, but in that case there's
|
||||
no way to tell what's desired without looking at the relocation
|
||||
table. */
|
||||
if (sorted_syms[thisplace]->section != sec
|
||||
&& (aux->require_sec
|
||||
|| ((abfd->flags & HAS_RELOC) != 0
|
||||
&& vma >= bfd_get_section_vma (abfd, sec)
|
||||
&& vma < (bfd_get_section_vma (abfd, sec)
|
||||
+ bfd_section_size (abfd, sec) / opb))))
|
||||
table.
|
||||
|
||||
Also give the target a chance to reject symbols. */
|
||||
want_section = (aux->require_sec
|
||||
|| ((abfd->flags & HAS_RELOC) != 0
|
||||
&& vma >= bfd_get_section_vma (abfd, sec)
|
||||
&& vma < (bfd_get_section_vma (abfd, sec)
|
||||
+ bfd_section_size (abfd, sec) / opb)));
|
||||
if ((sorted_syms[thisplace]->section != sec && want_section)
|
||||
|| !info->symbol_is_valid (sorted_syms[thisplace], info))
|
||||
{
|
||||
long i;
|
||||
long newplace;
|
||||
|
||||
for (i = thisplace + 1; i < sorted_symcount; i++)
|
||||
{
|
||||
|
@ -750,27 +755,36 @@ find_symbol_for_address (bfd_vma vma,
|
|||
}
|
||||
|
||||
--i;
|
||||
newplace = sorted_symcount;
|
||||
|
||||
for (; i >= 0; i--)
|
||||
{
|
||||
if (sorted_syms[i]->section == sec
|
||||
&& (i == 0
|
||||
|| sorted_syms[i - 1]->section != sec
|
||||
|| (bfd_asymbol_value (sorted_syms[i])
|
||||
!= bfd_asymbol_value (sorted_syms[i - 1]))))
|
||||
if ((sorted_syms[i]->section == sec || !want_section)
|
||||
&& info->symbol_is_valid (sorted_syms[i], info))
|
||||
{
|
||||
thisplace = i;
|
||||
break;
|
||||
if (newplace == sorted_symcount)
|
||||
newplace = i;
|
||||
|
||||
if (bfd_asymbol_value (sorted_syms[i])
|
||||
!= bfd_asymbol_value (sorted_syms[newplace]))
|
||||
break;
|
||||
|
||||
/* Remember this symbol and keep searching until we reach
|
||||
an earlier address. */
|
||||
newplace = i;
|
||||
}
|
||||
}
|
||||
|
||||
if (sorted_syms[thisplace]->section != sec)
|
||||
if (newplace != sorted_symcount)
|
||||
thisplace = newplace;
|
||||
else
|
||||
{
|
||||
/* We didn't find a good symbol with a smaller value.
|
||||
Look for one with a larger value. */
|
||||
for (i = thisplace + 1; i < sorted_symcount; i++)
|
||||
{
|
||||
if (sorted_syms[i]->section == sec)
|
||||
if ((sorted_syms[i]->section == sec || !want_section)
|
||||
&& info->symbol_is_valid (sorted_syms[i], info))
|
||||
{
|
||||
thisplace = i;
|
||||
break;
|
||||
|
@ -778,25 +792,12 @@ find_symbol_for_address (bfd_vma vma,
|
|||
}
|
||||
}
|
||||
|
||||
if (sorted_syms[thisplace]->section != sec
|
||||
&& (aux->require_sec
|
||||
|| ((abfd->flags & HAS_RELOC) != 0
|
||||
&& vma >= bfd_get_section_vma (abfd, sec)
|
||||
&& vma < (bfd_get_section_vma (abfd, sec)
|
||||
+ bfd_section_size (abfd, sec)))))
|
||||
if ((sorted_syms[thisplace]->section != sec && want_section)
|
||||
|| !info->symbol_is_valid (sorted_syms[thisplace], info))
|
||||
/* There is no suitable symbol. */
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Give the target a chance to reject the symbol. */
|
||||
while (! info->symbol_is_valid (sorted_syms [thisplace], info))
|
||||
{
|
||||
++ thisplace;
|
||||
if (thisplace >= sorted_symcount
|
||||
|| bfd_asymbol_value (sorted_syms [thisplace]) > vma)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (place != NULL)
|
||||
*place = thisplace;
|
||||
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2007-05-22 Paul Brook <paul@codesourcery.com>
|
||||
|
||||
* gas/arm/backslash-at.d: Update expected output.
|
||||
|
||||
2007-05-17 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
2003-06-05 Michal Ludvig <mludvig@suse.cz>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
.*: file format .*arm.*
|
||||
|
||||
Disassembly of section .text:
|
||||
00000000 <.text> 615c .short 0x615c
|
||||
00000000 <foo-0x2> 615c .short 0x615c
|
||||
00000002 <foo> e3a00000 mov r0, #0 ; 0x0
|
||||
00000006 <foo\+0x4> e3a00000 mov r0, #0 ; 0x0
|
||||
0000000a <foo\+0x8> e3a00000 mov r0, #0 ; 0x0
|
||||
|
|
|
@ -1,3 +1,14 @@
|
|||
2007-05-22 Paul Brook <paul@codesourcery.com>
|
||||
|
||||
* ld-arm-mixed-lib.d: Update expected output.
|
||||
* ld-arm/arm-app.d: Ditto.
|
||||
* ld-arm/mixed-app.d: Ditto.
|
||||
* ld-arm/arm-lib-plt32.d: Ditto.
|
||||
* ld-arm/arm-app-abs32.d: Ditto.
|
||||
* ld-arm/mixed-app-v5.d: Ditto.
|
||||
* ld-arm/armthumb-lib.d: Ditto.
|
||||
* ld-arm/arm-lib.d: Ditto.
|
||||
|
||||
2007-05-21 Richard Sandiford <richard@codesourcery.com>
|
||||
|
||||
* ld-arm/emit-relocs1.d, ld-arm/emit-relocs1.s,
|
||||
|
|
|
@ -8,7 +8,7 @@ Disassembly of section .plt:
|
|||
|
||||
.* <.plt>:
|
||||
.*: e52de004 push {lr} ; \(str lr, \[sp, #-4\]!\)
|
||||
.*: e59fe004 ldr lr, \[pc, #4\] ; .* <\.plt\+0x10>
|
||||
.*: e59fe004 ldr lr, \[pc, #4\] ; .* <_start-0x10>
|
||||
.*: e08fe00e add lr, pc, lr
|
||||
.*: e5bef008 ldr pc, \[lr, #8\]!
|
||||
.*: .* .*
|
||||
|
@ -20,7 +20,7 @@ Disassembly of section .text:
|
|||
.* <_start>:
|
||||
.*: e1a0c00d mov ip, sp
|
||||
.*: e92dd800 push {fp, ip, lr, pc}
|
||||
.*: e59f0004 ldr r0, \[pc, #4\] ; .* <.text\+0x14>
|
||||
.*: e59f0004 ldr r0, \[pc, #4\] ; .* <_start\+0x14>
|
||||
.*: e89d6800 ldm sp, {fp, sp, lr}
|
||||
.*: e12fff1e bx lr
|
||||
.*: .* .*
|
||||
|
|
|
@ -8,7 +8,7 @@ Disassembly of section .plt:
|
|||
|
||||
.* <.plt>:
|
||||
.*: e52de004 push {lr} ; \(str lr, \[sp, #-4\]!\)
|
||||
.*: e59fe004 ldr lr, \[pc, #4\] ; .* <\.plt\+0x10>
|
||||
.*: e59fe004 ldr lr, \[pc, #4\] ; .* <_start-0x10>
|
||||
.*: e08fe00e add lr, pc, lr
|
||||
.*: e5bef008 ldr pc, \[lr, #8\]!
|
||||
.*: .*
|
||||
|
@ -27,7 +27,7 @@ Disassembly of section .text:
|
|||
.* <app_func>:
|
||||
.*: e1a0c00d mov ip, sp
|
||||
.*: e92dd800 push {fp, ip, lr, pc}
|
||||
.*: ebfffff4 bl .* <.text-0xc>
|
||||
.*: ebfffff4 bl .* <_start-0xc>
|
||||
.*: e89d6800 ldm sp, {fp, sp, lr}
|
||||
.*: e12fff1e bx lr
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@ Disassembly of section .plt:
|
|||
|
||||
.* <.plt>:
|
||||
.*: e52de004 push {lr} ; \(str lr, \[sp, #-4\]!\)
|
||||
.*: e59fe004 ldr lr, \[pc, #4\] ; .* <\.plt\+0x10>
|
||||
.*: e59fe004 ldr lr, \[pc, #4\] ; .* <lib_func1-0x10>
|
||||
.*: e08fe00e add lr, pc, lr
|
||||
.*: e5bef008 ldr pc, \[lr, #8\]!
|
||||
.*: .*
|
||||
|
@ -20,7 +20,7 @@ Disassembly of section .text:
|
|||
.* <lib_func1>:
|
||||
.*: e1a0c00d mov ip, sp
|
||||
.*: e92dd800 push {fp, ip, lr, pc}
|
||||
.*: ebfffff9 bl .* <\.text-0xc>
|
||||
.*: ebfffff9 bl .* <lib_func1-0xc>
|
||||
.*: e89d6800 ldm sp, {fp, sp, lr}
|
||||
.*: e12fff1e bx lr
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@ Disassembly of section .plt:
|
|||
|
||||
.* <.plt>:
|
||||
.*: e52de004 push {lr} ; \(str lr, \[sp, #-4\]!\)
|
||||
.*: e59fe004 ldr lr, \[pc, #4\] ; .* <\.plt\+0x10>
|
||||
.*: e59fe004 ldr lr, \[pc, #4\] ; .* <lib_func1-0x10>
|
||||
.*: e08fe00e add lr, pc, lr
|
||||
.*: e5bef008 ldr pc, \[lr, #8\]!
|
||||
.*: .*
|
||||
|
@ -20,7 +20,7 @@ Disassembly of section .text:
|
|||
.* <lib_func1>:
|
||||
.*: e1a0c00d mov ip, sp
|
||||
.*: e92dd800 push {fp, ip, lr, pc}
|
||||
.*: ebfffff9 bl .* <\.text-0xc>
|
||||
.*: ebfffff9 bl .* <lib_func1-0xc>
|
||||
.*: e89d6800 ldm sp, {fp, sp, lr}
|
||||
.*: e12fff1e bx lr
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@ Disassembly of section .plt:
|
|||
|
||||
.* <.plt>:
|
||||
.*: e52de004 push {lr} ; \(str lr, \[sp, #-4\]!\)
|
||||
.*: e59fe004 ldr lr, \[pc, #4\] ; .* <\.plt\+0x10>
|
||||
.*: e59fe004 ldr lr, \[pc, #4\] ; .* <lib_func1-0x1c>
|
||||
.*: e08fe00e add lr, pc, lr
|
||||
.*: e5bef008 ldr pc, \[lr, #8\]!
|
||||
.*: .*
|
||||
|
@ -20,7 +20,7 @@ Disassembly of section .text:
|
|||
.* <lib_func1>:
|
||||
.*: e1a0c00d mov ip, sp
|
||||
.*: e92dd800 push {fp, ip, lr, pc}
|
||||
.*: ebfffff. bl .* <.text-0x..?>
|
||||
.*: ebfffff. bl .* <lib_func1-0x..?>
|
||||
.*: e89d6800 ldm sp, {fp, sp, lr}
|
||||
.*: e12fff1e bx lr
|
||||
.*: e1a00000 nop \(mov r0,r0\)
|
||||
|
|
|
@ -8,7 +8,7 @@ Disassembly of section .plt:
|
|||
|
||||
.* <.plt>:
|
||||
.*: e52de004 push {lr} ; \(str lr, \[sp, #-4\]!\)
|
||||
.*: e59fe004 ldr lr, \[pc, #4\] ; .* <\.plt\+0x10>
|
||||
.*: e59fe004 ldr lr, \[pc, #4\] ; .* <_start-0x1c>
|
||||
.*: e08fe00e add lr, pc, lr
|
||||
.*: e5bef008 ldr pc, \[lr, #8\]!
|
||||
.*: .*
|
||||
|
@ -48,7 +48,7 @@ Disassembly of section .text:
|
|||
|
||||
.* <app_tfunc>:
|
||||
.*: b500 push {lr}
|
||||
.*: f7ff efc. blx .* <.text-0x..>
|
||||
.*: f7ff efc. blx .* <_start-0x..>
|
||||
.*: bd00 pop {pc}
|
||||
.*: 4770 bx lr
|
||||
.*: 46c0 nop \(mov r8, r8\)
|
||||
|
|
|
@ -8,7 +8,7 @@ Disassembly of section .plt:
|
|||
|
||||
.* <.plt>:
|
||||
.*: e52de004 push {lr} ; \(str lr, \[sp, #-4\]!\)
|
||||
.*: e59fe004 ldr lr, \[pc, #4\] ; .* <\.plt\+0x10>
|
||||
.*: e59fe004 ldr lr, \[pc, #4\] ; .* <_start-0x2c>
|
||||
.*: e08fe00e add lr, pc, lr
|
||||
.*: e5bef008 ldr pc, \[lr, #8\]!
|
||||
.*: .*
|
||||
|
@ -50,7 +50,7 @@ Disassembly of section .text:
|
|||
|
||||
.* <app_tfunc>:
|
||||
.*: b500 push {lr}
|
||||
.*: f7ff ffc. bl .* <.text-0x..>
|
||||
.*: f7ff ffc. bl .* <_start-0x..>
|
||||
.*: bd00 pop {pc}
|
||||
.*: 4770 bx lr
|
||||
.*: 46c0 nop \(mov r8, r8\)
|
||||
|
|
|
@ -8,7 +8,7 @@ Disassembly of section .plt:
|
|||
|
||||
.* <.plt>:
|
||||
.*: e52de004 push {lr} ; \(str lr, \[sp, #-4\]!\)
|
||||
.*: e59fe004 ldr lr, \[pc, #4\] ; .* <\.plt\+0x10>
|
||||
.*: e59fe004 ldr lr, \[pc, #4\] ; .* <lib_func1-0x1c>
|
||||
.*: e08fe00e add lr, pc, lr
|
||||
.*: e5bef008 ldr pc, \[lr, #8\]!
|
||||
.*: .*
|
||||
|
@ -20,7 +20,7 @@ Disassembly of section .text:
|
|||
.* <lib_func1>:
|
||||
.*: e1a0c00d mov ip, sp
|
||||
.*: e92dd800 push {fp, ip, lr, pc}
|
||||
.*: ebfffff. bl .* <.text-0x..?>
|
||||
.*: ebfffff. bl .* <lib_func1-0x..?>
|
||||
.*: e89d6800 ldm sp, {fp, sp, lr}
|
||||
.*: e12fff1e bx lr
|
||||
.*: e1a00000 nop \(mov r0,r0\)
|
||||
|
|
Loading…
Reference in a new issue