svn commit: r246312 - in head/contrib: binutils/include/elf gdb/gdb
Andrew Turner
andrew at FreeBSD.org
Mon Feb 4 06:59:34 UTC 2013
Author: andrew
Date: Mon Feb 4 06:59:33 2013
New Revision: 246312
URL: http://svnweb.freebsd.org/changeset/base/246312
Log:
Extend GDB to check the value in the .note.tag section along with the
.note.ABI-tag section.
This helps on ARM EABI where the OS/ABI field is zero. It would be better
to use the NOTES program header however this would require a more invasive
change.
Modified:
head/contrib/binutils/include/elf/common.h
head/contrib/gdb/gdb/osabi.c
Modified: head/contrib/binutils/include/elf/common.h
==============================================================================
--- head/contrib/binutils/include/elf/common.h Mon Feb 4 00:34:35 2013 (r246311)
+++ head/contrib/binutils/include/elf/common.h Mon Feb 4 06:59:33 2013 (r246312)
@@ -435,6 +435,10 @@
#define NT_FREEBSD_ABI_TAG 1
+/* Values for FreeBSD .note.tag notes. Note name is "FreeBSD". */
+
+#define NT_FREEBSD_TAG 2
+
/* These three macros disassemble and assemble a symbol table st_info field,
which contains the symbol binding and symbol type. The STB_ and STT_
defines identify the binding and type. */
Modified: head/contrib/gdb/gdb/osabi.c
==============================================================================
--- head/contrib/gdb/gdb/osabi.c Mon Feb 4 00:34:35 2013 (r246311)
+++ head/contrib/gdb/gdb/osabi.c Mon Feb 4 06:59:33 2013 (r246312)
@@ -463,6 +463,20 @@ generic_elf_osabi_sniff_abi_tag_sections
return;
}
+
+ /* .note.tag notes, used by FreeBSD. */
+ if (strcmp (name, ".note.tag") == 0)
+ {
+ /* FreeBSD. */
+ if (check_note (abfd, sect, note, "FreeBSD", 4, NT_FREEBSD_TAG))
+ {
+ /* There is no need to check the version yet. */
+ *osabi = GDB_OSABI_FREEBSD_ELF;
+ return;
+ }
+
+ return;
+ }
/* .note.netbsd.ident notes, used by NetBSD. */
if (strcmp (name, ".note.netbsd.ident") == 0
More information about the svn-src-all
mailing list