bfd,binutils: add support for gfx1103

Message ID 20260727135117.23444-1-shahab.vahedi@amd.com
State New
Headers
Series bfd,binutils: add support for gfx1103 |

Checks

Context Check Description
linaro-tcwg-bot/tcwg_binutils_build--master-arm success Build passed
linaro-tcwg-bot/tcwg_binutils_check--master-arm success Test passed
linaro-tcwg-bot/tcwg_binutils_build--master-aarch64 success Build passed
linaro-tcwg-bot/tcwg_binutils_check--master-aarch64 success Test passed

Commit Message

Vahedi, Shahab July 27, 2026, 1:51 p.m. UTC
  Add ELF header definition for gfx1103.
---
 bfd/archures.c       |  1 +
 bfd/bfd-in2.h        |  1 +
 bfd/cpu-amdgcn.c     | 27 ++++++++++++++-------------
 binutils/readelf.c   |  1 +
 include/elf/amdgpu.h |  1 +
 5 files changed, 18 insertions(+), 13 deletions(-)
  

Comments

Vahedi, Shahab Aug. 3, 2026, 7:48 a.m. UTC | #1
Ping!

-Shahab
  
Lancelot SIX Aug. 6, 2026, 10:51 a.m. UTC | #2
Hi,

FYI, this looks good to me, and is consistent with what we need in GDB 
to support this architecture.

However, I only have a GDB AMDGPU backend maintainer hat, and I do not 
think it extends to binutils.  Should we consider having a binutils 
maintainer for the AMDGPU support who could help review / approve such 
changes?

Best,
Lancelot.

On 27/07/2026 14:51, Shahab Vahedi wrote:
> Add ELF header definition for gfx1103.
> ---
>   bfd/archures.c       |  1 +
>   bfd/bfd-in2.h        |  1 +
>   bfd/cpu-amdgcn.c     | 27 ++++++++++++++-------------
>   binutils/readelf.c   |  1 +
>   include/elf/amdgpu.h |  1 +
>   5 files changed, 18 insertions(+), 13 deletions(-)
> 
> diff --git a/bfd/archures.c b/bfd/archures.c
> index 0e919246673..18472b820bc 100644
> --- a/bfd/archures.c
> +++ b/bfd/archures.c
> @@ -581,6 +581,7 @@ DESCRIPTION
>   .#define bfd_mach_amdgcn_gfx1100         0x041
>   .#define bfd_mach_amdgcn_gfx1101         0x046
>   .#define bfd_mach_amdgcn_gfx1102         0x047
> +.#define bfd_mach_amdgcn_gfx1103         0x044
>   .#define bfd_mach_amdgcn_gfx1150         0x043
>   .#define bfd_mach_amdgcn_gfx1151         0x04a
>   .#define bfd_mach_amdgcn_gfx1152         0x055
> diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
> index e49d67316f3..233c1cf70fd 100644
> --- a/bfd/bfd-in2.h
> +++ b/bfd/bfd-in2.h
> @@ -1838,6 +1838,7 @@ enum bfd_architecture
>   #define bfd_mach_amdgcn_gfx1100         0x041
>   #define bfd_mach_amdgcn_gfx1101         0x046
>   #define bfd_mach_amdgcn_gfx1102         0x047
> +#define bfd_mach_amdgcn_gfx1103         0x044
>   #define bfd_mach_amdgcn_gfx1150         0x043
>   #define bfd_mach_amdgcn_gfx1151         0x04a
>   #define bfd_mach_amdgcn_gfx1152         0x055
> diff --git a/bfd/cpu-amdgcn.c b/bfd/cpu-amdgcn.c
> index a1c691a51b1..811e8391115 100644
> --- a/bfd/cpu-amdgcn.c
> +++ b/bfd/cpu-amdgcn.c
> @@ -58,19 +58,20 @@ static const bfd_arch_info_type arch_info_struct[] =
>     N (bfd_mach_amdgcn_gfx1100, "amdgcn:gfx1100", false, NN (13)),
>     N (bfd_mach_amdgcn_gfx1101, "amdgcn:gfx1101", false, NN (14)),
>     N (bfd_mach_amdgcn_gfx1102, "amdgcn:gfx1102", false, NN (15)),
> -  N (bfd_mach_amdgcn_gfx1150, "amdgcn:gfx1150", false, NN (16)),
> -  N (bfd_mach_amdgcn_gfx1151, "amdgcn:gfx1151", false, NN (17)),
> -  N (bfd_mach_amdgcn_gfx1152, "amdgcn:gfx1152", false, NN (18)),
> -  N (bfd_mach_amdgcn_gfx1153, "amdgcn:gfx1153", false, NN (19)),
> -  N (bfd_mach_amdgcn_gfx1200, "amdgcn:gfx1200", false, NN (20)),
> -  N (bfd_mach_amdgcn_gfx1201, "amdgcn:gfx1201", false, NN (21)),
> -  N (bfd_mach_amdgcn_gfx1250, "amdgcn:gfx1250", false, NN (22)),
> -  N (bfd_mach_amdgcn_gfx9_generic, "amdgcn:gfx9-generic", false, NN (23)),
> -  N (bfd_mach_amdgcn_gfx9_4_generic, "amdgcn:gfx9-4-generic", false, NN (24)),
> -  N (bfd_mach_amdgcn_gfx10_1_generic, "amdgcn:gfx10-1-generic", false, NN (25)),
> -  N (bfd_mach_amdgcn_gfx10_3_generic, "amdgcn:gfx10-3-generic", false, NN (26)),
> -  N (bfd_mach_amdgcn_gfx11_generic, "amdgcn:gfx11-generic", false, NN (27)),
> -  N (bfd_mach_amdgcn_gfx12_generic, "amdgcn:gfx12-generic", false, NN (28)),
> +  N (bfd_mach_amdgcn_gfx1103, "amdgcn:gfx1103", false, NN (16)),
> +  N (bfd_mach_amdgcn_gfx1150, "amdgcn:gfx1150", false, NN (17)),
> +  N (bfd_mach_amdgcn_gfx1151, "amdgcn:gfx1151", false, NN (18)),
> +  N (bfd_mach_amdgcn_gfx1152, "amdgcn:gfx1152", false, NN (19)),
> +  N (bfd_mach_amdgcn_gfx1153, "amdgcn:gfx1153", false, NN (20)),
> +  N (bfd_mach_amdgcn_gfx1200, "amdgcn:gfx1200", false, NN (21)),
> +  N (bfd_mach_amdgcn_gfx1201, "amdgcn:gfx1201", false, NN (22)),
> +  N (bfd_mach_amdgcn_gfx1250, "amdgcn:gfx1250", false, NN (23)),
> +  N (bfd_mach_amdgcn_gfx9_generic, "amdgcn:gfx9-generic", false, NN (24)),
> +  N (bfd_mach_amdgcn_gfx9_4_generic, "amdgcn:gfx9-4-generic", false, NN (25)),
> +  N (bfd_mach_amdgcn_gfx10_1_generic, "amdgcn:gfx10-1-generic", false, NN (26)),
> +  N (bfd_mach_amdgcn_gfx10_3_generic, "amdgcn:gfx10-3-generic", false, NN (27)),
> +  N (bfd_mach_amdgcn_gfx11_generic, "amdgcn:gfx11-generic", false, NN (28)),
> +  N (bfd_mach_amdgcn_gfx12_generic, "amdgcn:gfx12-generic", false, NN (29)),
>     N (bfd_mach_amdgcn_gfx12_5_generic, "amdgcn:gfx12-5-generic", false, NULL),
>   };
>   
> diff --git a/binutils/readelf.c b/binutils/readelf.c
> index a52fe2b8d63..8f1bc677002 100644
> --- a/binutils/readelf.c
> +++ b/binutils/readelf.c
> @@ -5303,6 +5303,7 @@ decode_AMDGPU_machine_flags (char *out, unsigned int e_flags, Filedata *filedata
>       AMDGPU_CASE (EF_AMDGPU_MACH_AMDGCN_GFX1100, "gfx1100")
>       AMDGPU_CASE (EF_AMDGPU_MACH_AMDGCN_GFX1101, "gfx1101")
>       AMDGPU_CASE (EF_AMDGPU_MACH_AMDGCN_GFX1102, "gfx1102")
> +    AMDGPU_CASE (EF_AMDGPU_MACH_AMDGCN_GFX1103, "gfx1103")
>       AMDGPU_CASE (EF_AMDGPU_MACH_AMDGCN_GFX1150, "gfx1150")
>       AMDGPU_CASE (EF_AMDGPU_MACH_AMDGCN_GFX1151, "gfx1151")
>       AMDGPU_CASE (EF_AMDGPU_MACH_AMDGCN_GFX1152, "gfx1152")
> diff --git a/include/elf/amdgpu.h b/include/elf/amdgpu.h
> index 60f11697364..d43a61bf9d5 100644
> --- a/include/elf/amdgpu.h
> +++ b/include/elf/amdgpu.h
> @@ -77,6 +77,7 @@
>   #define EF_AMDGPU_MACH_AMDGCN_GFX1100 0x041
>   #define EF_AMDGPU_MACH_AMDGCN_GFX1013 0x042
>   #define EF_AMDGPU_MACH_AMDGCN_GFX1150 0x043
> +#define EF_AMDGPU_MACH_AMDGCN_GFX1103 0x044
>   #define EF_AMDGPU_MACH_AMDGCN_GFX1036 0x045
>   #define EF_AMDGPU_MACH_AMDGCN_GFX1101 0x046
>   #define EF_AMDGPU_MACH_AMDGCN_GFX1102 0x047
  

Patch

diff --git a/bfd/archures.c b/bfd/archures.c
index 0e919246673..18472b820bc 100644
--- a/bfd/archures.c
+++ b/bfd/archures.c
@@ -581,6 +581,7 @@  DESCRIPTION
 .#define bfd_mach_amdgcn_gfx1100         0x041
 .#define bfd_mach_amdgcn_gfx1101         0x046
 .#define bfd_mach_amdgcn_gfx1102         0x047
+.#define bfd_mach_amdgcn_gfx1103         0x044
 .#define bfd_mach_amdgcn_gfx1150         0x043
 .#define bfd_mach_amdgcn_gfx1151         0x04a
 .#define bfd_mach_amdgcn_gfx1152         0x055
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index e49d67316f3..233c1cf70fd 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -1838,6 +1838,7 @@  enum bfd_architecture
 #define bfd_mach_amdgcn_gfx1100         0x041
 #define bfd_mach_amdgcn_gfx1101         0x046
 #define bfd_mach_amdgcn_gfx1102         0x047
+#define bfd_mach_amdgcn_gfx1103         0x044
 #define bfd_mach_amdgcn_gfx1150         0x043
 #define bfd_mach_amdgcn_gfx1151         0x04a
 #define bfd_mach_amdgcn_gfx1152         0x055
diff --git a/bfd/cpu-amdgcn.c b/bfd/cpu-amdgcn.c
index a1c691a51b1..811e8391115 100644
--- a/bfd/cpu-amdgcn.c
+++ b/bfd/cpu-amdgcn.c
@@ -58,19 +58,20 @@  static const bfd_arch_info_type arch_info_struct[] =
   N (bfd_mach_amdgcn_gfx1100, "amdgcn:gfx1100", false, NN (13)),
   N (bfd_mach_amdgcn_gfx1101, "amdgcn:gfx1101", false, NN (14)),
   N (bfd_mach_amdgcn_gfx1102, "amdgcn:gfx1102", false, NN (15)),
-  N (bfd_mach_amdgcn_gfx1150, "amdgcn:gfx1150", false, NN (16)),
-  N (bfd_mach_amdgcn_gfx1151, "amdgcn:gfx1151", false, NN (17)),
-  N (bfd_mach_amdgcn_gfx1152, "amdgcn:gfx1152", false, NN (18)),
-  N (bfd_mach_amdgcn_gfx1153, "amdgcn:gfx1153", false, NN (19)),
-  N (bfd_mach_amdgcn_gfx1200, "amdgcn:gfx1200", false, NN (20)),
-  N (bfd_mach_amdgcn_gfx1201, "amdgcn:gfx1201", false, NN (21)),
-  N (bfd_mach_amdgcn_gfx1250, "amdgcn:gfx1250", false, NN (22)),
-  N (bfd_mach_amdgcn_gfx9_generic, "amdgcn:gfx9-generic", false, NN (23)),
-  N (bfd_mach_amdgcn_gfx9_4_generic, "amdgcn:gfx9-4-generic", false, NN (24)),
-  N (bfd_mach_amdgcn_gfx10_1_generic, "amdgcn:gfx10-1-generic", false, NN (25)),
-  N (bfd_mach_amdgcn_gfx10_3_generic, "amdgcn:gfx10-3-generic", false, NN (26)),
-  N (bfd_mach_amdgcn_gfx11_generic, "amdgcn:gfx11-generic", false, NN (27)),
-  N (bfd_mach_amdgcn_gfx12_generic, "amdgcn:gfx12-generic", false, NN (28)),
+  N (bfd_mach_amdgcn_gfx1103, "amdgcn:gfx1103", false, NN (16)),
+  N (bfd_mach_amdgcn_gfx1150, "amdgcn:gfx1150", false, NN (17)),
+  N (bfd_mach_amdgcn_gfx1151, "amdgcn:gfx1151", false, NN (18)),
+  N (bfd_mach_amdgcn_gfx1152, "amdgcn:gfx1152", false, NN (19)),
+  N (bfd_mach_amdgcn_gfx1153, "amdgcn:gfx1153", false, NN (20)),
+  N (bfd_mach_amdgcn_gfx1200, "amdgcn:gfx1200", false, NN (21)),
+  N (bfd_mach_amdgcn_gfx1201, "amdgcn:gfx1201", false, NN (22)),
+  N (bfd_mach_amdgcn_gfx1250, "amdgcn:gfx1250", false, NN (23)),
+  N (bfd_mach_amdgcn_gfx9_generic, "amdgcn:gfx9-generic", false, NN (24)),
+  N (bfd_mach_amdgcn_gfx9_4_generic, "amdgcn:gfx9-4-generic", false, NN (25)),
+  N (bfd_mach_amdgcn_gfx10_1_generic, "amdgcn:gfx10-1-generic", false, NN (26)),
+  N (bfd_mach_amdgcn_gfx10_3_generic, "amdgcn:gfx10-3-generic", false, NN (27)),
+  N (bfd_mach_amdgcn_gfx11_generic, "amdgcn:gfx11-generic", false, NN (28)),
+  N (bfd_mach_amdgcn_gfx12_generic, "amdgcn:gfx12-generic", false, NN (29)),
   N (bfd_mach_amdgcn_gfx12_5_generic, "amdgcn:gfx12-5-generic", false, NULL),
 };
 
diff --git a/binutils/readelf.c b/binutils/readelf.c
index a52fe2b8d63..8f1bc677002 100644
--- a/binutils/readelf.c
+++ b/binutils/readelf.c
@@ -5303,6 +5303,7 @@  decode_AMDGPU_machine_flags (char *out, unsigned int e_flags, Filedata *filedata
     AMDGPU_CASE (EF_AMDGPU_MACH_AMDGCN_GFX1100, "gfx1100")
     AMDGPU_CASE (EF_AMDGPU_MACH_AMDGCN_GFX1101, "gfx1101")
     AMDGPU_CASE (EF_AMDGPU_MACH_AMDGCN_GFX1102, "gfx1102")
+    AMDGPU_CASE (EF_AMDGPU_MACH_AMDGCN_GFX1103, "gfx1103")
     AMDGPU_CASE (EF_AMDGPU_MACH_AMDGCN_GFX1150, "gfx1150")
     AMDGPU_CASE (EF_AMDGPU_MACH_AMDGCN_GFX1151, "gfx1151")
     AMDGPU_CASE (EF_AMDGPU_MACH_AMDGCN_GFX1152, "gfx1152")
diff --git a/include/elf/amdgpu.h b/include/elf/amdgpu.h
index 60f11697364..d43a61bf9d5 100644
--- a/include/elf/amdgpu.h
+++ b/include/elf/amdgpu.h
@@ -77,6 +77,7 @@ 
 #define EF_AMDGPU_MACH_AMDGCN_GFX1100 0x041
 #define EF_AMDGPU_MACH_AMDGCN_GFX1013 0x042
 #define EF_AMDGPU_MACH_AMDGCN_GFX1150 0x043
+#define EF_AMDGPU_MACH_AMDGCN_GFX1103 0x044
 #define EF_AMDGPU_MACH_AMDGCN_GFX1036 0x045
 #define EF_AMDGPU_MACH_AMDGCN_GFX1101 0x046
 #define EF_AMDGPU_MACH_AMDGCN_GFX1102 0x047