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.
This commit is contained in:
andrew 2013-02-04 06:59:33 +00:00
parent a41f9579b9
commit a191badca4
2 changed files with 18 additions and 0 deletions

View File

@ -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. */

View File

@ -463,6 +463,20 @@ generic_elf_osabi_sniff_abi_tag_sections: unknown OS number %d",
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