summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--openembedded/packages/gdb/files/kill_arm_map_symbols.patch24
-rw-r--r--openembedded/packages/gdb/gdb_6.3.bb1
2 files changed, 25 insertions, 0 deletions
diff --git a/openembedded/packages/gdb/files/kill_arm_map_symbols.patch b/openembedded/packages/gdb/files/kill_arm_map_symbols.patch
new file mode 100644
index 0000000000..177142192d
--- /dev/null
+++ b/openembedded/packages/gdb/files/kill_arm_map_symbols.patch
@@ -0,0 +1,24 @@
1Index: gdb-6.3/gdb/arm-tdep.c
2===================================================================
3--- gdb-6.3.orig/gdb/arm-tdep.c 2004-08-03 02:02:20.000000000 +0000
4+++ gdb-6.3/gdb/arm-tdep.c 2005-11-09 15:13:29.000000000 +0000
5@@ -2491,6 +2491,19 @@
6 static void
7 arm_elf_make_msymbol_special(asymbol *sym, struct minimal_symbol *msym)
8 {
9+
10+ /* FIXME: We want gdb to ignore the ARM ELF mapping symbols when
11+ displaying disassembly so we use this horrible hack here to
12+ artifically set their address to the highest possible value.
13+ This is wrong of course, and it prevents the symbols from being
14+ used for their intended purpose - to distinguish between ARM
15+ and THUMB code. So we ought to find a better way to do this. */
16+ if (bfd_asymbol_name (sym)
17+ && bfd_asymbol_name (sym)[0] == '$'
18+ && bfd_asymbol_name (sym)[1] != 0
19+ && bfd_asymbol_name (sym)[2] == 0)
20+ SYMBOL_VALUE_ADDRESS(msym) = (CORE_ADDR) 0x7ffffffc;
21+
22 /* Thumb symbols are of type STT_LOPROC, (synonymous with
23 STT_ARM_TFUNC). */
24 if (ELF_ST_TYPE (((elf_symbol_type *)sym)->internal_elf_sym.st_info)
diff --git a/openembedded/packages/gdb/gdb_6.3.bb b/openembedded/packages/gdb/gdb_6.3.bb
index 98825500f6..3e755cee67 100644
--- a/openembedded/packages/gdb/gdb_6.3.bb
+++ b/openembedded/packages/gdb/gdb_6.3.bb
@@ -15,6 +15,7 @@ inherit autotools gettext
15 15
16SRC_URI = "${GNU_MIRROR}/gdb/gdb-${PV}.tar.gz \ 16SRC_URI = "${GNU_MIRROR}/gdb/gdb-${PV}.tar.gz \
17 file://uclibc.patch;patch=1 \ 17 file://uclibc.patch;patch=1 \
18 file://kill_arm_map_symbols.patch;patch=1 \
18 file://gdbserver-cflags-last.diff;patch=1;pnum=0" 19 file://gdbserver-cflags-last.diff;patch=1;pnum=0"
19 20
20LDFLAGS_append = " -s" 21LDFLAGS_append = " -s"