Author: zbb
Date: Fri Oct 30 12:21:37 2015
New Revision: 290192
URL: https://svnweb.freebsd.org/changeset/base/290192

Log:
  Workaround KGDB issues on ARM by ignoring ARM EABI version higher than 5
  
  To make KGDB working, it needs to understand kernel ELF image.
  By default it is compiled using EABI_5, which is not supported
  on the gdb-6. As a workaround, treat these images as EABI_2 because
  they share a lot of things in common.
  
  This workaround does not guarantee ALL funtionalities
  to work.
  
  Submitted by:  Wojciech Macek <[email protected]>
  Reviewed by:   jhb
  Obtained from: Semihalf
  Sponsored by:  Juniper Networks Inc.
  Differential Revision: https://reviews.freebsd.org/D4012

Modified:
  head/contrib/gdb/gdb/arm-tdep.c

Modified: head/contrib/gdb/gdb/arm-tdep.c
==============================================================================
--- head/contrib/gdb/gdb/arm-tdep.c     Fri Oct 30 12:00:34 2015        
(r290191)
+++ head/contrib/gdb/gdb/arm-tdep.c     Fri Oct 30 12:21:37 2015        
(r290192)
@@ -2580,6 +2580,21 @@ arm_elf_osabi_sniffer (bfd *abfd)
              osabi = GDB_OSABI_ARM_EABI_V2;
              break;
 
+           case EF_ARM_EABI_VER3:
+           case EF_ARM_EABI_VER4:
+           case EF_ARM_EABI_VER5:
+             /*
+              * GDB does not support these EABI versions. Fallback
+              * to the highest known to make the KGDB working with
+              * kernel ELF image.
+              */
+             osabi = GDB_OSABI_ARM_EABI_V2;
+             printf ("\n%s:%d "
+                     "arm_elf_osabi_sniffer: Unsupported ARM EABI "
+                     "version 0x%x, falling back to 0x%x\n",
+                     __FILE__, __LINE__, eflags, EF_ARM_EABI_VER2);
+             break;
+
            case EF_ARM_EABI_UNKNOWN:
              /* Assume GNU tools.  */
              osabi = GDB_OSABI_ARM_APCS;
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to