[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