https://gcc.gnu.org/g:307b11179aeeab3a837ea287a5557763e99f6f89
commit r15-5357-g307b11179aeeab3a837ea287a5557763e99f6f89 Author: Georg-Johann Lay <a...@gjlay.de> Date: Sat Nov 16 22:12:05 2024 +0100 AVR: Fix building LibF7 after switching to C23. Since r15-5327, GNU-C23 is being used as C language default. libf7.h doesn't assume headers like stdbool.h are present and defines bool, true and false on its own. libgcc/config/avr/libf7/ * libf7.h (bool, true, false): Don't define in C23 or higher. Diff: --- libgcc/config/avr/libf7/libf7.h | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/libgcc/config/avr/libf7/libf7.h b/libgcc/config/avr/libf7/libf7.h index 38ee27054da3..7226c0e38da9 100644 --- a/libgcc/config/avr/libf7/libf7.h +++ b/libgcc/config/avr/libf7/libf7.h @@ -95,12 +95,16 @@ typedef __INT64_TYPE__ int64_t; typedef __INT32_TYPE__ int32_t; typedef __INT16_TYPE__ int16_t; typedef __INT8_TYPE__ int8_t; -typedef _Bool bool; -#define false 0 -#define true 1 #define INT8_MIN (-1 - __INT8_MAX__) #define INT16_MAX __INT16_MAX__ #define NULL ((void*) 0) +#if defined __STDC_VERSION__ && __STDC_VERSION__ > 201710L +/* bool, true and false are keywords. */ +#else +#define bool _Bool +#define true 1 +#define false 0 +#endif /* C23 ? */ #endif /* IN_LIBGCC2 */ #include "asm-defs.h"