* readelf.c (print_gnu_note): New function.
(process_note): Use it.
This commit is contained in:
parent
918c9108e8
commit
664f90a331
@ -1,3 +1,8 @@
|
||||
2011-04-21 Tom Tromey <tromey@redhat.com>
|
||||
|
||||
* readelf.c (print_gnu_note): New function.
|
||||
(process_note): Use it.
|
||||
|
||||
2011-04-21 Jie Zhang <jzhang918@gmail.com>
|
||||
|
||||
* MAINTAINERS: Update my email address.
|
||||
|
@ -12231,6 +12231,63 @@ get_gnu_elf_note_type (unsigned e_type)
|
||||
return buff;
|
||||
}
|
||||
|
||||
static int
|
||||
print_gnu_note (Elf_Internal_Note *pnote)
|
||||
{
|
||||
switch (pnote->type)
|
||||
{
|
||||
case NT_GNU_BUILD_ID:
|
||||
{
|
||||
unsigned long i;
|
||||
|
||||
printf (_(" Build ID: "));
|
||||
for (i = 0; i < pnote->descsz; ++i)
|
||||
printf ("%02x", pnote->descdata[i] & 0xff);
|
||||
printf (_("\n"));
|
||||
}
|
||||
break;
|
||||
|
||||
case NT_GNU_ABI_TAG:
|
||||
{
|
||||
unsigned long os, major, minor, subminor;
|
||||
const char *osname;
|
||||
|
||||
os = byte_get ((unsigned char *) pnote->descdata, 4);
|
||||
major = byte_get ((unsigned char *) pnote->descdata + 4, 4);
|
||||
minor = byte_get ((unsigned char *) pnote->descdata + 8, 4);
|
||||
subminor = byte_get ((unsigned char *) pnote->descdata + 12, 4);
|
||||
|
||||
switch (os)
|
||||
{
|
||||
case GNU_ABI_TAG_LINUX:
|
||||
osname = "Linux";
|
||||
break;
|
||||
case GNU_ABI_TAG_HURD:
|
||||
osname = "Hurd";
|
||||
break;
|
||||
case GNU_ABI_TAG_SOLARIS:
|
||||
osname = "Solaris";
|
||||
break;
|
||||
case GNU_ABI_TAG_FREEBSD:
|
||||
osname = "FreeBSD";
|
||||
break;
|
||||
case GNU_ABI_TAG_NETBSD:
|
||||
osname = "NetBSD";
|
||||
break;
|
||||
default:
|
||||
osname = "Unknown";
|
||||
break;
|
||||
}
|
||||
|
||||
printf (_(" OS: %s, ABI: %ld.%ld.%ld\n"), osname,
|
||||
major, minor, subminor);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
static const char *
|
||||
get_netbsd_elfcore_note_type (unsigned e_type)
|
||||
{
|
||||
@ -12448,6 +12505,8 @@ process_note (Elf_Internal_Note * pnote)
|
||||
|
||||
if (const_strneq (pnote->namedata, "IPF/VMS"))
|
||||
return print_ia64_vms_note (pnote);
|
||||
else if (const_strneq (pnote->namedata, "GNU"))
|
||||
return print_gnu_note (pnote);
|
||||
else
|
||||
return 1;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user