From 1118d2524ea7960e230fc137d56b63e5600d1948 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Mon, 9 Jul 2007 21:19:51 +0000 Subject: 2007-07-09 Roland McGrath * readelf.c (get_gnu_elf_note_type): New function. (process_note): Use it for "GNU" name. --- binutils/readelf.c | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) (limited to 'binutils') diff --git a/binutils/readelf.c b/binutils/readelf.c index 9305d04..7910836 100644 --- a/binutils/readelf.c +++ b/binutils/readelf.c @@ -2792,7 +2792,7 @@ usage (FILE *stream) @ Read options from \n\ -H --help Display this information\n\ -v --version Display the version number of readelf\n")); - + if (REPORT_BUGS_TO[0] && stream == stdout) fprintf (stdout, _("Report bugs to %s\n"), REPORT_BUGS_TO); @@ -7710,7 +7710,7 @@ dump_section (Elf_Internal_Shdr *section, FILE *file) printf (_(" NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n")); break; } - + data = start; while (bytes) @@ -9128,6 +9128,27 @@ get_note_type (unsigned e_type) } static const char * +get_gnu_elf_note_type (unsigned e_type) +{ + static char buff[64]; + + switch (e_type) + { + case NT_GNU_ABI_TAG: + return _("NT_GNU_ABI_TAG (ABI version tag)"); + case NT_GNU_HWCAP: + return _("NT_GNU_HWCAP (DSO-supplied software HWCAP info)"); + case NT_GNU_BUILD_ID: + return _("NT_GNU_BUILD_ID (unique build ID bitstring)"); + default: + break; + } + + snprintf (buff, sizeof (buff), _("Unknown note type: (0x%08x)"), e_type); + return buff; +} + +static const char * get_netbsd_elfcore_note_type (unsigned e_type) { static char buff[64]; @@ -9204,6 +9225,10 @@ process_note (Elf_Internal_Note *pnote) note type strings. */ nt = get_note_type (pnote->type); + else if (const_strneq (pnote->namedata, "GNU")) + /* GNU-specific object file notes. */ + nt = get_gnu_elf_note_type (pnote->type); + else if (const_strneq (pnote->namedata, "NetBSD-CORE")) /* NetBSD-specific core file notes. */ nt = get_netbsd_elfcore_note_type (pnote->type); -- cgit v1.1