diff options
author | Simon Marchi <simon.marchi@efficios.com> | 2022-03-16 09:01:26 -0400 |
---|---|---|
committer | Simon Marchi <simon.marchi@polymtl.ca> | 2022-03-16 09:01:26 -0400 |
commit | 28cdbb183bf80157a71d222b66abc38f32019f2d (patch) | |
tree | b96e267b0875f82cf64b3dc05f65861dd9e2bc37 /binutils/readelf.c | |
parent | c077c5802c396e4548516f15c8f03d7684b236ef (diff) | |
download | binutils-28cdbb183bf80157a71d222b66abc38f32019f2d.zip binutils-28cdbb183bf80157a71d222b66abc38f32019f2d.tar.gz binutils-28cdbb183bf80157a71d222b66abc38f32019f2d.tar.bz2 |
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
Diffstat (limited to 'binutils/readelf.c')
-rw-r--r-- | binutils/readelf.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/binutils/readelf.c b/binutils/readelf.c index 00b5e54..91515bd 100644 --- a/binutils/readelf.c +++ b/binutils/readelf.c @@ -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); |