Since static_assert is declared in C23, we have to declare our own static_assert by renaming to static_assert_N. This patch was made primarily to support the toolchain for CLFS-MIPS diff -ru binutils-2.24.orig/opcodes/mips-formats.h binutils-2.24/opcodes/mips-formats.h --- binutils-2.24.orig/opcodes/mips-formats.h 2013-11-04 10:33:40.000000000 -0500 +++ binutils-2.24/opcodes/mips-formats.h 2026-09-10 17:48:41.786951908 -0400 @@ -46,7 +46,7 @@ #define MAPPED_INT(SIZE, LSB, MAP, PRINT_HEX) \ { \ typedef char ATTRIBUTE_UNUSED \ - static_assert[(1 << (SIZE)) == ARRAY_SIZE (MAP)]; \ + static_assert_1[(1 << (SIZE)) == ARRAY_SIZE (MAP)]; \ static const struct mips_mapped_int_operand op = { \ { OP_MAPPED_INT, SIZE, LSB }, MAP, PRINT_HEX \ }; \ @@ -80,7 +80,7 @@ #define MAPPED_REG(SIZE, LSB, BANK, MAP) \ { \ typedef char ATTRIBUTE_UNUSED \ - static_assert[(1 << (SIZE)) == ARRAY_SIZE (MAP)]; \ + static_assert_4[(1 << (SIZE)) == ARRAY_SIZE (MAP)]; \ static const struct mips_reg_operand op = { \ { OP_REG, SIZE, LSB }, OP_REG_##BANK, MAP \ }; \ @@ -90,7 +90,7 @@ #define OPTIONAL_MAPPED_REG(SIZE, LSB, BANK, MAP) \ { \ typedef char ATTRIBUTE_UNUSED \ - static_assert[(1 << (SIZE)) == ARRAY_SIZE (MAP)]; \ + static_assert_5[(1 << (SIZE)) == ARRAY_SIZE (MAP)]; \ static const struct mips_reg_operand op = { \ { OP_OPTIONAL_REG, SIZE, LSB }, OP_REG_##BANK, MAP \ }; \