From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from barracuda.ebox.ca (barracuda.ebox.ca [96.127.255.19]) by sourceware.org (Postfix) with ESMTPS id 5DE6D3858C78 for ; Tue, 15 Mar 2022 19:43:16 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 5DE6D3858C78 X-ASG-Debug-ID: 1647373386-0c856e06ab7f2b30001-Lwtx7q Received: from smtp.ebox.ca (smtp.ebox.ca [96.127.255.82]) by barracuda.ebox.ca with ESMTP id 0a71YkC3hXNtG2WB (version=TLSv1 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 15 Mar 2022 15:43:06 -0400 (EDT) X-Barracuda-Envelope-From: simon.marchi@polymtl.ca X-Barracuda-RBL-Trusted-Forwarder: 96.127.255.82 Received: from simark.localdomain (192-222-157-6.qc.cable.ebox.net [192.222.157.6]) by smtp.ebox.ca (Postfix) with ESMTP id 2D58E441D66; Tue, 15 Mar 2022 15:43:06 -0400 (EDT) From: Simon Marchi X-Barracuda-RBL-IP: 192.222.157.6 X-Barracuda-Effective-Source-IP: 192-222-157-6.qc.cable.ebox.net[192.222.157.6] X-Barracuda-Apparent-Source-IP: 192.222.157.6 To: binutils@sourceware.org Cc: Simon Marchi Subject: [PATCH 7/7] binutils/readelf: handle AMDGPU relocation types Date: Tue, 15 Mar 2022 15:43:03 -0400 X-ASG-Orig-Subj: [PATCH 7/7] binutils/readelf: handle AMDGPU relocation types Message-Id: <20220315194303.3716792-8-simon.marchi@polymtl.ca> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220315194303.3716792-1-simon.marchi@polymtl.ca> References: <20220315194303.3716792-1-simon.marchi@polymtl.ca> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Barracuda-Connect: smtp.ebox.ca[96.127.255.82] X-Barracuda-Start-Time: 1647373386 X-Barracuda-Encrypted: DHE-RSA-AES256-SHA X-Barracuda-URL: https://96.127.255.19:443/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at ebox.ca X-Barracuda-Scan-Msg-Size: 3332 X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using global scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=8.0 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.96673 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Spam-Status: No, score=-3613.1 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_QUARANTINE, KAM_DMARC_STATUS, KAM_SHORT, RCVD_IN_DNSWL_LOW, SPF_HELO_NONE, SPF_SOFTFAIL, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Mar 2022 19:43:17 -0000 From: Simon Marchi Make readelf recognize AMDGPU relocation types, as documented here: https://llvm.org/docs/AMDGPUUsage.html#amdgpu-relocation-records The user-visible change looks like: -000000000004 000400000001 unrecognized: 1 0000000000000000 SCRATCH_RSRC_DWORD0 -00000000000c 000500000001 unrecognized: 1 0000000000000000 SCRATCH_RSRC_DWORD1 -000000000014 000600000007 unrecognized: 7 0000000000000000 global_var0 -00000000001c 000700000008 unrecognized: 8 0000000000000000 global_var1 -000000000024 000800000009 unrecognized: 9 0000000000000000 global_var2 -00000000002c 00090000000a unrecognized: a 0000000000000000 global_var3 -000000000034 000a0000000b unrecognized: b 0000000000000000 global_var4 +000000000004 000400000001 R_AMDGPU_ABS32_LO 0000000000000000 SCRATCH_RSRC_DWORD0 +00000000000c 000500000001 R_AMDGPU_ABS32_LO 0000000000000000 SCRATCH_RSRC_DWORD1 +000000000014 000600000007 R_AMDGPU_GOTPCREL 0000000000000000 global_var0 +00000000001c 000700000008 R_AMDGPU_GOTPCREL 0000000000000000 global_var1 +000000000024 000800000009 R_AMDGPU_GOTPCREL 0000000000000000 global_var2 +00000000002c 00090000000a R_AMDGPU_REL32_LO 0000000000000000 global_var3 +000000000034 000a0000000b R_AMDGPU_REL32_HI 0000000000000000 global_var4 binutils/ChangeLog: * readelf.c (dump_relocations): Handle EM_AMDGPU. include/ChangeLog: * elf/amdgpu.h: Add relocation values. Change-Id: I2ed4589f4cd37ea11ad2e0cb38d4b682271e1334 --- binutils/readelf.c | 3 +++ include/elf/amdgpu.h | 21 +++++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/binutils/readelf.c b/binutils/readelf.c index ff07112eb843..a2dbaa4722e3 100644 --- a/binutils/readelf.c +++ b/binutils/readelf.c @@ -1930,6 +1930,9 @@ dump_relocations (Filedata * filedata, rtype = elf_loongarch_reloc_type (type); break; + case EM_AMDGPU: + rtype = elf_amdgpu_reloc_type (type); + break; } if (rtype == NULL) diff --git a/include/elf/amdgpu.h b/include/elf/amdgpu.h index e3c90dc74e85..140e8996ad25 100644 --- a/include/elf/amdgpu.h +++ b/include/elf/amdgpu.h @@ -20,6 +20,8 @@ #ifndef _ELF_AMDGPU_H #define _ELF_AMDGPU_H +#include "elf/reloc-macros.h" + /* e_ident[EI_ABIVERSION] values, when e_ident[EI_OSABI] is ELFOSABI_AMDGPU_HSA. */ @@ -91,4 +93,23 @@ #define NT_AMDGPU_METADATA 32 +/* Relocations. */ + +START_RELOC_NUMBERS (elf_amdgpu_reloc_type) + RELOC_NUMBER (R_AMDGPU_NONE, 0) + RELOC_NUMBER (R_AMDGPU_ABS32_LO, 1) + RELOC_NUMBER (R_AMDGPU_ABS32_HI, 2) + RELOC_NUMBER (R_AMDGPU_ABS64, 3) + RELOC_NUMBER (R_AMDGPU_REL32, 4) + RELOC_NUMBER (R_AMDGPU_REL64, 5) + RELOC_NUMBER (R_AMDGPU_ABS32, 6) + RELOC_NUMBER (R_AMDGPU_GOTPCREL, 7) + RELOC_NUMBER (R_AMDGPU_GOTPCREL32_LO, 8) + RELOC_NUMBER (R_AMDGPU_GOTPCREL32_HI, 9) + RELOC_NUMBER (R_AMDGPU_REL32_LO, 10) + RELOC_NUMBER (R_AMDGPU_REL32_HI, 11) + RELOC_NUMBER (R_AMDGPU_RELATIVE64, 13) + RELOC_NUMBER (R_AMDGPU_REL16, 16) +END_RELOC_NUMBERS (R_AMDGPU_max) + #endif /* _ELF_AMDGPU_H */ -- 2.35.1