[ARM] Skip private symbol when doing objdump

2015-03-03  Jiong Wang  <jiong.wang@arm.com>

  opcode/
    * arm-dis.c (arm_symbol_is_valid): Skip ARM private symbols.

  binutils/testsuite/
    * binutils-all/arm/rvct_symbol.s: New testcase.
    * binutils-all/arm/objdump.exp: Run it.
This commit is contained in:
Jiong Wang 2015-03-03 15:00:59 +00:00
parent 90ad5e1d4f
commit d8282f0eb1
5 changed files with 51 additions and 2 deletions

View File

@ -1,3 +1,8 @@
2015-03-03 Jiong Wang <jiong.wang@arm.com>
* binutils-all/arm/rvct_symbol.s: New testcase.
* binutils-all/arm/objdump.exp: Run it.
2015-02-26 Andrew Burgess <andrew.burgess@embecosm.com>
* binutils-all/update-1.s: New file.

View File

@ -86,3 +86,25 @@ if [regexp $want $got] then {
} else {
fail "multiple input files"
}
if {![binutils_assemble $srcdir/$subdir/rvct_symbol.s tmpdir/rvct_symbol.o]} then {
return
}
if [is_remote host] {
set objfile [remote_download host tmpdir/rvct_symbol.o]
} else {
set objfile tmpdir/rvct_symbol.o
}
# Make sure multiple disassemblies come out the same
set got [binutils_run $OBJDUMP "-D $objfile $objfile"]
set want "foo.*global_a.*global_b"
if [regexp $want $got] then {
pass "skip rvct symbol"
} else {
fail "skip rvct symbol"
}

View File

@ -0,0 +1,15 @@
.text
foo:
__tagsym$$0:
add r0, r1, r2
.data
.global global_a
__tagsym$$used0:
global_a:
.word 0xcafedead
.global __tagsym$$used1
__tagsym$$used1:
global_b:
.word 0xcafecafe

View File

@ -1,3 +1,7 @@
2015-03-03 Jiong Wang <jiong.wang@arm.com>
* arm-dis.c (arm_symbol_is_valid): Skip ARM private symbols.
2015-02-25 Oleg Endo <olegendo@gcc.gnu.org>
* sh-opc.h (clrs, sets): Mark as arch_sh3_nommu_up instead of

View File

@ -4558,7 +4558,10 @@ print_insn_data (bfd_vma pc ATTRIBUTE_UNUSED,
}
/* Disallow mapping symbols ($a, $b, $d, $t etc) from
being displayed in symbol relative addresses. */
being displayed in symbol relative addresses.
Also disallow private symbol, with __tagsym$$ prefix,
from ARM RVCT toolchain being displayed. */
bfd_boolean
arm_symbol_is_valid (asymbol * sym,
@ -4571,7 +4574,7 @@ arm_symbol_is_valid (asymbol * sym,
name = bfd_asymbol_name (sym);
return (name && *name != '$');
return (name && *name != '$' && strncmp (name, "__tagsym$$", 10));
}
/* Parse an individual disassembler option. */