binutils/readelf: handle NT_AMDGPU_METADATA note name

Handle the NT_AMDGPU_METADATA note, which is described here:

  https://llvm.org/docs/AMDGPUUsage.html#code-object-v3-note-records

As of this patch, just print out the name, not the contents, which is in
the msgpack format.

binutils/ChangeLog:

	* readelf.c (get_amdgpu_elf_note_type): New.
	(process_note): Handle "AMDGPU" notes.

include/ChangeLog:

	* elf/amdgcn.h (NT_AMDGPU_METADATA): New.

Change-Id: Id2dba2e2aeaa55ef7464fb35aee9c7d5f96ddb23
This commit is contained in:
Simon Marchi 2022-03-16 09:01:26 -04:00 committed by Simon Marchi
parent c077c5802c
commit 28cdbb183b
4 changed files with 33 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2022-03-16 Simon Marchi <simon.marchi@efficios.com>
* readelf.c (get_amdgpu_elf_note_type): New.
(process_note): Handle "AMDGPU" notes.
2022-03-16 Simon Marchi <simon.marchi@efficios.com>
* readelf.c: Include elf/amdgcn.h.

View File

@ -19724,6 +19724,22 @@ decode_x86_compat_2_isa (unsigned int bitmask)
}
}
static const char *
get_amdgpu_elf_note_type (unsigned int e_type)
{
switch (e_type)
{
case NT_AMDGPU_METADATA:
return _("NT_AMDGPU_METADATA (code object metadata)");
default:
{
static char buf[64];
snprintf (buf, sizeof (buf), _("Unknown note type: (0x%08x)"), e_type);
return buf;
}
}
}
static void
decode_x86_isa (unsigned int bitmask)
{
@ -21313,6 +21329,10 @@ process_note (Elf_Internal_Note * pnote,
/* GNU-specific object file notes. */
nt = get_gnu_elf_note_type (pnote->type);
else if (startswith (pnote->namedata, "AMDGPU"))
/* AMDGPU-specific object file notes. */
nt = get_amdgpu_elf_note_type (pnote->type);
else if (startswith (pnote->namedata, "FreeBSD"))
/* FreeBSD-specific core file notes. */
nt = get_freebsd_elfcore_note_type (filedata, pnote->type);

View File

@ -1,3 +1,7 @@
2022-03-16 Simon Marchi <simon.marchi@efficios.com>
* elf/amdgcn.h (NT_AMDGPU_METADATA): New.
2022-03-16 Simon Marchi <simon.marchi@efficios.com>
* elf/amdgcn.h: Add EF_AMDGPU_MACH_AMDGCN_* and

View File

@ -87,4 +87,8 @@
#define EF_AMDGPU_FEATURE_SRAMECC_OFF_V4 0x800
#define EF_AMDGPU_FEATURE_SRAMECC_ON_V4 0xc00
/* Notes. */
#define NT_AMDGPU_METADATA 32
#endif /* _ELF_AMDGPU_H */