summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/gdb/gdb/kill_arm_map_symbols.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/gdb/gdb/kill_arm_map_symbols.patch')
-rw-r--r--meta/recipes-devtools/gdb/gdb/kill_arm_map_symbols.patch36
1 files changed, 18 insertions, 18 deletions
diff --git a/meta/recipes-devtools/gdb/gdb/kill_arm_map_symbols.patch b/meta/recipes-devtools/gdb/gdb/kill_arm_map_symbols.patch
index c1756f7e24..9fc45b9f2a 100644
--- a/meta/recipes-devtools/gdb/gdb/kill_arm_map_symbols.patch
+++ b/meta/recipes-devtools/gdb/gdb/kill_arm_map_symbols.patch
@@ -1,26 +1,26 @@
1Upstream-Status: Inappropriate [embedded specific] 1Upstream-Status: Inappropriate [embedded specific]
2 2
3Index: gdb-6.3/gdb/arm-tdep.c 3Index: gdb-7.3/gdb/arm-tdep.c
4=================================================================== 4===================================================================
5--- gdb-6.3.orig/gdb/arm-tdep.c 2004-08-03 02:02:20.000000000 +0000 5--- gdb-7.3.orig/gdb/arm-tdep.c 2011-05-17 14:27:01.000000000 -0700
6+++ gdb-6.3/gdb/arm-tdep.c 2005-11-09 15:13:29.000000000 +0000 6+++ gdb-7.3/gdb/arm-tdep.c 2011-08-05 22:29:58.784201850 -0700
7@@ -2491,6 +2491,19 @@ 7@@ -7806,6 +7806,19 @@
8 static void 8 static void
9 arm_elf_make_msymbol_special(asymbol *sym, struct minimal_symbol *msym) 9 arm_elf_make_msymbol_special(asymbol *sym, struct minimal_symbol *msym)
10 { 10 {
11+ 11+
12+ /* FIXME: We want gdb to ignore the ARM ELF mapping symbols when 12+ /* FIXME: We want gdb to ignore the ARM ELF mapping symbols when
13+ displaying disassembly so we use this horrible hack here to 13+ displaying disassembly so we use this horrible hack here to
14+ artifically set their address to the highest possible value. 14+ artifically set their address to the highest possible value.
15+ This is wrong of course, and it prevents the symbols from being 15+ This is wrong of course, and it prevents the symbols from being
16+ used for their intended purpose - to distinguish between ARM 16+ used for their intended purpose - to distinguish between ARM
17+ and THUMB code. So we ought to find a better way to do this. */ 17+ and THUMB code. So we ought to find a better way to do this. */
18+ if (bfd_asymbol_name (sym) 18+ if (bfd_asymbol_name (sym)
19+ && bfd_asymbol_name (sym)[0] == '$' 19+ && bfd_asymbol_name (sym)[0] == '$'
20+ && bfd_asymbol_name (sym)[1] != 0 20+ && bfd_asymbol_name (sym)[1] != 0
21+ && bfd_asymbol_name (sym)[2] == 0) 21+ && bfd_asymbol_name (sym)[2] == 0)
22+ SYMBOL_VALUE_ADDRESS(msym) = (CORE_ADDR) 0x7ffffffc; 22+ SYMBOL_VALUE_ADDRESS(msym) = (CORE_ADDR) 0x7ffffffc;
23+ 23+
24 /* Thumb symbols are of type STT_LOPROC, (synonymous with 24 if (ARM_SYM_BRANCH_TYPE (&((elf_symbol_type *)sym)->internal_elf_sym)
25 STT_ARM_TFUNC). */ 25 == ST_BRANCH_TO_THUMB)
26 if (ELF_ST_TYPE (((elf_symbol_type *)sym)->internal_elf_sym.st_info) 26 MSYMBOL_SET_SPECIAL (msym);