]> code.ossystems Code Review - openembedded-core.git/commitdiff
gdb: remove arm mapping symbols
authorRichard Purdie <richard@openedhand.com>
Wed, 16 Nov 2005 16:17:28 +0000 (16:17 +0000)
committerRichard Purdie <richard@openedhand.com>
Wed, 16 Nov 2005 16:17:28 +0000 (16:17 +0000)
git-svn-id: https://svn.o-hand.com/repos/poky@181 311d38ba-8fff-0310-9ca6-ca027cbcb966

openembedded/packages/gdb/files/kill_arm_map_symbols.patch [new file with mode: 0644]
openembedded/packages/gdb/gdb_6.3.bb

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 (file)
index 0000000..1771421
--- /dev/null
@@ -0,0 +1,24 @@
+Index: gdb-6.3/gdb/arm-tdep.c
+===================================================================
+--- gdb-6.3.orig/gdb/arm-tdep.c        2004-08-03 02:02:20.000000000 +0000
++++ gdb-6.3/gdb/arm-tdep.c     2005-11-09 15:13:29.000000000 +0000
+@@ -2491,6 +2491,19 @@
+ static void
+ arm_elf_make_msymbol_special(asymbol *sym, struct minimal_symbol *msym)
+ {
++
++   /* FIXME: We want gdb to ignore the ARM ELF mapping symbols when
++      displaying disassembly so we use this horrible hack here to
++      artifically set their address to the highest possible value.
++      This is wrong of course, and it prevents the symbols from being
++      used for their intended purpose - to distinguish between ARM
++      and THUMB code.  So we ought to find a better way to do this.  */
++  if (bfd_asymbol_name (sym)
++       && bfd_asymbol_name (sym)[0] == '$'
++       && bfd_asymbol_name (sym)[1] != 0
++       && bfd_asymbol_name (sym)[2] == 0)
++     SYMBOL_VALUE_ADDRESS(msym) = (CORE_ADDR) 0x7ffffffc;
++
+   /* Thumb symbols are of type STT_LOPROC, (synonymous with
+      STT_ARM_TFUNC).  */
+   if (ELF_ST_TYPE (((elf_symbol_type *)sym)->internal_elf_sym.st_info)
index 98825500f6a1da076d76e1ad3c9cad6eb1d7082e..3e755cee67628c014f5ff6fbf79fd1021ae2b8fb 100644 (file)
@@ -15,6 +15,7 @@ inherit autotools gettext
 
 SRC_URI = "${GNU_MIRROR}/gdb/gdb-${PV}.tar.gz \
           file://uclibc.patch;patch=1 \
+          file://kill_arm_map_symbols.patch;patch=1 \
           file://gdbserver-cflags-last.diff;patch=1;pnum=0"
 
 LDFLAGS_append = " -s"