Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 30 Oct 2015 12:21:37 +0000 (UTC)
From:      Zbigniew Bodek <zbb@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r290192 - head/contrib/gdb/gdb
Message-ID:  <201510301221.t9UCLbfS010592@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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 <wma@semihalf.com>
  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;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201510301221.t9UCLbfS010592>