aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobias Burnus <tburnus@baylibre.com>2025-02-07 10:44:18 +0100
committerTobias Burnus <tburnus@baylibre.com>2025-02-07 10:44:18 +0100
commitfa5544625d585a29463acce1f32a7f6fa13e3431 (patch)
tree7c5e6780f5677801102bbf66a5c5fe03f4f8c1c2
parent7722b65f877f5c6dccea56a711d75e2baedba5cb (diff)
downloadgcc-fa5544625d585a29463acce1f32a7f6fa13e3431.zip
gcc-fa5544625d585a29463acce1f32a7f6fa13e3431.tar.gz
gcc-fa5544625d585a29463acce1f32a7f6fa13e3431.tar.bz2
[gcn] Fix gfx906's sramecc setting
When compiling with -g, mkoffload.cc creates a device object file itself; however, in order that the linker dos not complain, the ELF flags must match what the compiler / linker does. For gfx906, the assembler defaults to sramecc = any, but gcn-devices.def contained unsupported, which is not the same - causing link errors. That's a regression caused by commit r15-4540-ga6b26e5ea09779 - which can be best seen by looking at the changes to mkoffload.cc. Additionally, this commit adds '...' to the GCN_DEVICE #define in gcn.cc to make it agnostic to the addition of fields. gcc/ChangeLog: * config/gcn/gcn-devices.def (GCN_DEVICE): Change sramecc for gfx906 to 'any'. * config/gcn/gcn.cc (GCN_DEVICE): Add tailing ... to #define.
-rw-r--r--gcc/config/gcn/gcn-devices.def2
-rw-r--r--gcc/config/gcn/gcn.cc3
2 files changed, 3 insertions, 2 deletions
diff --git a/gcc/config/gcn/gcn-devices.def b/gcc/config/gcn/gcn-devices.def
index 7d47a7b..a8b21a3 100644
--- a/gcc/config/gcn/gcn-devices.def
+++ b/gcc/config/gcn/gcn-devices.def
@@ -91,7 +91,7 @@ GCN_DEVICE(gfx900, GFX900, 0x2c, ISA_GCN5,
GCN_DEVICE(gfx906, GFX906, 0x2f, ISA_GCN5,
/* XNACK default */ HSACO_ATTR_OFF,
- /* SRAM_ECC default */ HSACO_ATTR_UNSUPPORTED,
+ /* SRAM_ECC default */ HSACO_ATTR_ANY,
/* WAVE64 mode */ HSACO_ATTR_UNSUPPORTED,
/* CU mode */ HSACO_ATTR_UNSUPPORTED,
/* Max ISA VGPRs */ 256,
diff --git a/gcc/config/gcn/gcn.cc b/gcc/config/gcn/gcn.cc
index 4200cfa..82fc6ff 100644
--- a/gcc/config/gcn/gcn.cc
+++ b/gcc/config/gcn/gcn.cc
@@ -101,7 +101,8 @@ static hash_map<tree, int> lds_allocs;
/* Import all the data from gcn-devices.def.
The PROCESSOR_GFXnnn should be indices for this table. */
const struct gcn_device_def gcn_devices[] = {
-#define GCN_DEVICE(name, NAME, ELF, ISA, XNACK, SRAMECC, WAVE64, CU, VGPRS, GEN_VER,ARCH_FAM) \
+#define GCN_DEVICE(name, NAME, ELF, ISA, XNACK, SRAMECC, WAVE64, CU, VGPRS, \
+ GEN_VER, ARCH_FAM, ...) \
{PROCESSOR_ ## NAME, #name, #NAME, ISA, XNACK, SRAMECC, WAVE64, CU, VGPRS, \
GEN_VER, #ARCH_FAM},
#include "gcn-devices.def"