From 630a7926307fcf6760d3c4c9fadc6ac2c8b52f67 Mon Sep 17 00:00:00 2001 From: andrew Date: Thu, 18 Apr 2013 02:20:58 +0000 Subject: Fix the value of NT_FREEBSD_TAG to be the same as ABI_NOTRTYPE in lib/csu. Add NT_FREEBSD_NOINIT_TAG for the value of CRT_NOINIT_NOTETYPE. Check for both of these when detecting a FreeBSD binary in gdb. --- contrib/binutils/include/elf/common.h | 3 ++- contrib/gdb/gdb/osabi.c | 6 ++++++ 2 files changed, 8 insertions(+), 1 deletion(-) (limited to 'contrib') diff --git a/contrib/binutils/include/elf/common.h b/contrib/binutils/include/elf/common.h index f2e5022..eb38192 100644 --- a/contrib/binutils/include/elf/common.h +++ b/contrib/binutils/include/elf/common.h @@ -437,7 +437,8 @@ /* Values for FreeBSD .note.tag notes. Note name is "FreeBSD". */ -#define NT_FREEBSD_TAG 2 +#define NT_FREEBSD_TAG 1 +#define NT_FREEBSD_NOINIT_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_ diff --git a/contrib/gdb/gdb/osabi.c b/contrib/gdb/gdb/osabi.c index 4e43df5..2b31a6e 100644 --- a/contrib/gdb/gdb/osabi.c +++ b/contrib/gdb/gdb/osabi.c @@ -474,6 +474,12 @@ generic_elf_osabi_sniff_abi_tag_sections: unknown OS number %d", *osabi = GDB_OSABI_FREEBSD_ELF; return; } + if (check_note (abfd, sect, note, "FreeBSD", 4, NT_FREEBSD_NOINIT_TAG)) + { + /* There is no need to check the version yet. */ + *osabi = GDB_OSABI_FREEBSD_ELF; + return; + } return; } -- cgit v1.1