From fa5544625d585a29463acce1f32a7f6fa13e3431 Mon Sep 17 00:00:00 2001 From: Tobias Burnus Date: Fri, 7 Feb 2025 10:44:18 +0100 Subject: [PATCH] [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. --- gcc/config/gcn/gcn-devices.def | 2 +- gcc/config/gcn/gcn.cc | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/gcc/config/gcn/gcn-devices.def b/gcc/config/gcn/gcn-devices.def index 7d47a7b495d..a8b21a358b4 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 4200cfaf006..82fc6ff1e41 100644 --- a/gcc/config/gcn/gcn.cc +++ b/gcc/config/gcn/gcn.cc @@ -101,7 +101,8 @@ static hash_map 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"