[lld] [lld][ELF] improve AMD error message (PR #135082)

Maksim Levental via llvm-commits llvm-commits at lists.llvm.org
Wed Apr 9 23:33:01 PDT 2025


https://github.com/makslevental updated https://github.com/llvm/llvm-project/pull/135082

>From 986fd9e46624d273908d7087558746dcdfbb64c2 Mon Sep 17 00:00:00 2001
From: Maksim Levental <maksim.levental at gmail.com>
Date: Wed, 9 Apr 2025 17:08:29 -0400
Subject: [PATCH 1/3] [lld][ELF] improve AMD error message

---
 lld/ELF/Arch/AMDGPU.cpp | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/lld/ELF/Arch/AMDGPU.cpp b/lld/ELF/Arch/AMDGPU.cpp
index 52fc779855a36..7dfd7476ffd84 100644
--- a/lld/ELF/Arch/AMDGPU.cpp
+++ b/lld/ELF/Arch/AMDGPU.cpp
@@ -79,8 +79,8 @@ uint32_t AMDGPU::calcEFlagsV4() const {
 
     if (retXnack == EF_AMDGPU_FEATURE_XNACK_UNSUPPORTED_V4 ||
         (retXnack != EF_AMDGPU_FEATURE_XNACK_ANY_V4 &&
-            (getEFlags(f) & EF_AMDGPU_FEATURE_XNACK_V4)
-                != EF_AMDGPU_FEATURE_XNACK_ANY_V4)) {
+         (getEFlags(f) & EF_AMDGPU_FEATURE_XNACK_V4) !=
+             EF_AMDGPU_FEATURE_XNACK_ANY_V4)) {
       if (retXnack != (getEFlags(f) & EF_AMDGPU_FEATURE_XNACK_V4)) {
         Err(ctx) << "incompatible xnack: " << f;
         return 0;
@@ -92,8 +92,8 @@ uint32_t AMDGPU::calcEFlagsV4() const {
 
     if (retSramEcc == EF_AMDGPU_FEATURE_SRAMECC_UNSUPPORTED_V4 ||
         (retSramEcc != EF_AMDGPU_FEATURE_SRAMECC_ANY_V4 &&
-            (getEFlags(f) & EF_AMDGPU_FEATURE_SRAMECC_V4) !=
-                EF_AMDGPU_FEATURE_SRAMECC_ANY_V4)) {
+         (getEFlags(f) & EF_AMDGPU_FEATURE_SRAMECC_V4) !=
+             EF_AMDGPU_FEATURE_SRAMECC_ANY_V4)) {
       if (retSramEcc != (getEFlags(f) & EF_AMDGPU_FEATURE_SRAMECC_V4)) {
         Err(ctx) << "incompatible sramecc: " << f;
         return 0;
@@ -143,7 +143,7 @@ uint32_t AMDGPU::calcEFlags() const {
   case ELFABIVERSION_AMDGPU_HSA_V6:
     return calcEFlagsV6();
   default:
-    Err(ctx) << "unknown abi version: " << abiVersion;
+    Err(ctx) << "unknown amd-hsa abi version: " << static_cast<int>(abiVersion);
     return 0;
   }
 }

>From a67fad0817c2c8ca3baf46e8f6ee35e473672c99 Mon Sep 17 00:00:00 2001
From: Maksim Levental <maksim.levental at gmail.com>
Date: Thu, 10 Apr 2025 01:37:08 -0400
Subject: [PATCH 2/3] comments

---
 lld/ELF/Arch/AMDGPU.cpp | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/lld/ELF/Arch/AMDGPU.cpp b/lld/ELF/Arch/AMDGPU.cpp
index 7dfd7476ffd84..1fffd0157dad9 100644
--- a/lld/ELF/Arch/AMDGPU.cpp
+++ b/lld/ELF/Arch/AMDGPU.cpp
@@ -79,8 +79,8 @@ uint32_t AMDGPU::calcEFlagsV4() const {
 
     if (retXnack == EF_AMDGPU_FEATURE_XNACK_UNSUPPORTED_V4 ||
         (retXnack != EF_AMDGPU_FEATURE_XNACK_ANY_V4 &&
-         (getEFlags(f) & EF_AMDGPU_FEATURE_XNACK_V4) !=
-             EF_AMDGPU_FEATURE_XNACK_ANY_V4)) {
+            (getEFlags(f) & EF_AMDGPU_FEATURE_XNACK_V4)
+                != EF_AMDGPU_FEATURE_XNACK_ANY_V4)) {
       if (retXnack != (getEFlags(f) & EF_AMDGPU_FEATURE_XNACK_V4)) {
         Err(ctx) << "incompatible xnack: " << f;
         return 0;
@@ -92,8 +92,8 @@ uint32_t AMDGPU::calcEFlagsV4() const {
 
     if (retSramEcc == EF_AMDGPU_FEATURE_SRAMECC_UNSUPPORTED_V4 ||
         (retSramEcc != EF_AMDGPU_FEATURE_SRAMECC_ANY_V4 &&
-         (getEFlags(f) & EF_AMDGPU_FEATURE_SRAMECC_V4) !=
-             EF_AMDGPU_FEATURE_SRAMECC_ANY_V4)) {
+            (getEFlags(f) & EF_AMDGPU_FEATURE_SRAMECC_V4) !=
+                EF_AMDGPU_FEATURE_SRAMECC_ANY_V4)) {
       if (retSramEcc != (getEFlags(f) & EF_AMDGPU_FEATURE_SRAMECC_V4)) {
         Err(ctx) << "incompatible sramecc: " << f;
         return 0;
@@ -143,7 +143,7 @@ uint32_t AMDGPU::calcEFlags() const {
   case ELFABIVERSION_AMDGPU_HSA_V6:
     return calcEFlagsV6();
   default:
-    Err(ctx) << "unknown amd-hsa abi version: " << static_cast<int>(abiVersion);
+    Err(ctx) << "unknown AMDHSA ABI version: " << static_cast<int>(abiVersion);
     return 0;
   }
 }

>From fd4324d0cf652919ec4d4fad79320711236bd64c Mon Sep 17 00:00:00 2001
From: Maksim Levental <maksim.levental at gmail.com>
Date: Thu, 10 Apr 2025 02:27:38 -0400
Subject: [PATCH 3/3] add test

---
 lld/test/ELF/amdgpu-abi-version-err-2.s | 15 +++++++++++++++
 1 file changed, 15 insertions(+)
 create mode 100644 lld/test/ELF/amdgpu-abi-version-err-2.s

diff --git a/lld/test/ELF/amdgpu-abi-version-err-2.s b/lld/test/ELF/amdgpu-abi-version-err-2.s
new file mode 100644
index 0000000000000..a28b1d2555c0b
--- /dev/null
+++ b/lld/test/ELF/amdgpu-abi-version-err-2.s
@@ -0,0 +1,15 @@
+# RUN: yaml2obj %s -o %t.o
+# RUN: ld.lld %t.o -o /dev/null | FileCheck %s
+
+# CHECK: ld.lld: error: unknown AMDHSA ABI version: 42
+
+--- !ELF
+FileHeader:
+  Class:           ELFCLASS64
+  Data:            ELFDATA2LSB
+  OSABI:           ELFOSABI_AMDGPU_HSA
+  ABIVersion:      0x2A # ABI=42
+  Type:            ET_REL
+  Machine:         EM_AMDGPU
+  Flags:           [ EF_AMDGPU_MACH_AMDGCN_GFX900 ]
+...



More information about the llvm-commits mailing list