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
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;