* [Buildroot] [PATCH 1/1] boot/at91bootstrap3: fix build with host GCC 15
@ 2025-07-02 10:15 Edgar Bonet via buildroot
2025-07-06 16:02 ` Romain Naour via buildroot
2025-07-11 10:44 ` Thomas Perale via buildroot
0 siblings, 2 replies; 6+ messages in thread
From: Edgar Bonet via buildroot @ 2025-07-02 10:15 UTC (permalink / raw)
To: Buildroot development; +Cc: Simon Dawson
Building at91bootstrap3 with GCC15 fails with:
include/types.h:23:23: error: ‘bool’ cannot be defined via ‘typedef’
23 | typedef unsigned char bool;
| ^~~~
include/types.h:23:23: note: ‘bool’ is a keyword with ‘-std=c23’ onwards
This is due to GCC 15 defaulting to the C23 language dialect.
Signed-off-by: Edgar Bonet <bonet@grenoble.cnrs.fr>
---
Tested on an Acmesystems Acqua board.
Also build-tested with a 2×2×2 test matrix:
- GCC version: 14, 15
- patch included: no, yes
- bootloader version: v3.10.3, v4.0.0
as expected, all tests passed save for those with GCC 15 without the patch.
...conditionally-define-bool-false-and-.patch | 47 +++++++++++++++++++
...conditionally-define-bool-false-and-.patch | 46 ++++++++++++++++++
2 files changed, 93 insertions(+)
create mode 100644 boot/at91bootstrap3/v3.10.3/0001-include-types.h-conditionally-define-bool-false-and-.patch
create mode 100644 boot/at91bootstrap3/v4.0.0/0001-include-types.h-conditionally-define-bool-false-and-.patch
diff --git a/boot/at91bootstrap3/v3.10.3/0001-include-types.h-conditionally-define-bool-false-and-.patch b/boot/at91bootstrap3/v3.10.3/0001-include-types.h-conditionally-define-bool-false-and-.patch
new file mode 100644
index 0000000000..d4e37a86f6
--- /dev/null
+++ b/boot/at91bootstrap3/v3.10.3/0001-include-types.h-conditionally-define-bool-false-and-.patch
@@ -0,0 +1,47 @@
+From 908c65678867565a934ea5a967bfe7e204d1ccaf Mon Sep 17 00:00:00 2001
+From: Edgar Bonet <bonet@grenoble.cnrs.fr>
+Date: Wed, 25 Jun 2025 11:13:43 +0200
+Subject: [PATCH] include/types.h: conditionally define bool, false and true
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+include/types.h typedefs ‘bool’ and macro-defines ‘false’ and ‘true’.
+However, since C23, these are predefine keywords. As C23 is the default
+C dialect for GCC 15, building with this compiler fails with:
+
+ include/types.h:23:23: error: ‘bool’ cannot be defined via ‘typedef’
+ 23 | typedef unsigned char bool;
+ | ^~~~
+ include/types.h:23:23: note: ‘bool’ is a keyword with ‘-std=c23’ onwards
+
+Fix this build failure by only defining ‘bool’, ‘false’ and ‘true’ on C
+dialects older than C23.
+
+Upstream: https://github.com/linux4sam/at91bootstrap/pull/188
+
+Signed-off-by: Edgar Bonet <bonet@grenoble.cnrs.fr>
+(cherry picked from commit 4aab60e634d588dffbd3154fd0cfce78272b750a)
+---
+ include/types.h | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/include/types.h b/include/types.h
+index 1246a4df..2c1a41cf 100644
+--- a/include/types.h
++++ b/include/types.h
+@@ -42,8 +42,11 @@ typedef signed long long s64;
+ typedef unsigned long size_t;
+ typedef signed long ssize_t;
+
++/* bool, false and true are predefined since C23. */
++#if __STDC_VERSION__ < 202311L
+ typedef unsigned char bool;
+ #define false 0U
+ #define true 1U
++#endif
+
+ #endif /* TYPES_H_ */
+--
+2.43.0
+
diff --git a/boot/at91bootstrap3/v4.0.0/0001-include-types.h-conditionally-define-bool-false-and-.patch b/boot/at91bootstrap3/v4.0.0/0001-include-types.h-conditionally-define-bool-false-and-.patch
new file mode 100644
index 0000000000..772a808690
--- /dev/null
+++ b/boot/at91bootstrap3/v4.0.0/0001-include-types.h-conditionally-define-bool-false-and-.patch
@@ -0,0 +1,46 @@
+From 4aab60e634d588dffbd3154fd0cfce78272b750a Mon Sep 17 00:00:00 2001
+From: Edgar Bonet <bonet@grenoble.cnrs.fr>
+Date: Wed, 25 Jun 2025 11:13:43 +0200
+Subject: [PATCH] include/types.h: conditionally define bool, false and true
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+include/types.h typedefs ‘bool’ and macro-defines ‘false’ and ‘true’.
+However, since C23, these are predefine keywords. As C23 is the default
+C dialect for GCC 15, building with this compiler fails with:
+
+ include/types.h:23:23: error: ‘bool’ cannot be defined via ‘typedef’
+ 23 | typedef unsigned char bool;
+ | ^~~~
+ include/types.h:23:23: note: ‘bool’ is a keyword with ‘-std=c23’ onwards
+
+Fix this build failure by only defining ‘bool’, ‘false’ and ‘true’ on C
+dialects older than C23.
+
+Upstream: https://github.com/linux4sam/at91bootstrap/pull/188
+
+Signed-off-by: Edgar Bonet <bonet@grenoble.cnrs.fr>
+---
+ include/types.h | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/include/types.h b/include/types.h
+index 950b1a46..0ad9ae61 100644
+--- a/include/types.h
++++ b/include/types.h
+@@ -20,8 +20,11 @@ typedef signed long long s64;
+ typedef unsigned long size_t;
+ typedef signed long ssize_t;
+
++/* bool, false and true are predefined since C23. */
++#if __STDC_VERSION__ < 202311L
+ typedef unsigned char bool;
+ #define false 0U
+ #define true 1U
++#endif
+
+ #endif /* TYPES_H_ */
+--
+2.43.0
+
--
2.34.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 6+ messages in thread* Re: [Buildroot] [PATCH 1/1] boot/at91bootstrap3: fix build with host GCC 15
2025-07-02 10:15 [Buildroot] [PATCH 1/1] boot/at91bootstrap3: fix build with host GCC 15 Edgar Bonet via buildroot
@ 2025-07-06 16:02 ` Romain Naour via buildroot
2025-07-06 16:43 ` Edgar Bonet via buildroot
2025-07-11 10:44 ` Thomas Perale via buildroot
1 sibling, 1 reply; 6+ messages in thread
From: Romain Naour via buildroot @ 2025-07-06 16:02 UTC (permalink / raw)
To: Edgar Bonet, Buildroot development; +Cc: Simon Dawson
Hello Edgar,
Le 02/07/2025 à 12:15, Edgar Bonet via buildroot a écrit :
> Building at91bootstrap3 with GCC15 fails with:
>
> include/types.h:23:23: error: ‘bool’ cannot be defined via ‘typedef’
> 23 | typedef unsigned char bool;
> | ^~~~
> include/types.h:23:23: note: ‘bool’ is a keyword with ‘-std=c23’ onwards
>
> This is due to GCC 15 defaulting to the C23 language dialect.
>
> Signed-off-by: Edgar Bonet <bonet@grenoble.cnrs.fr>
> ---
>
> Tested on an Acmesystems Acqua board.
>
> Also build-tested with a 2×2×2 test matrix:
> - GCC version: 14, 15
> - patch included: no, yes
> - bootloader version: v3.10.3, v4.0.0
> as expected, all tests passed save for those with GCC 15 without the patch.
>
> ...conditionally-define-bool-false-and-.patch | 47 +++++++++++++++++++
> ...conditionally-define-bool-false-and-.patch | 46 ++++++++++++++++++
> 2 files changed, 93 insertions(+)
> create mode 100644 boot/at91bootstrap3/v3.10.3/0001-include-types.h-conditionally-define-bool-false-and-.patch
> create mode 100644 boot/at91bootstrap3/v4.0.0/0001-include-types.h-conditionally-define-bool-false-and-.patch
>
> diff --git a/boot/at91bootstrap3/v3.10.3/0001-include-types.h-conditionally-define-bool-false-and-.patch b/boot/at91bootstrap3/v3.10.3/0001-include-types.h-conditionally-define-bool-false-and-.patch
> new file mode 100644
> index 0000000000..d4e37a86f6
> --- /dev/null
> +++ b/boot/at91bootstrap3/v3.10.3/0001-include-types.h-conditionally-define-bool-false-and-.patch
> @@ -0,0 +1,47 @@
> +From 908c65678867565a934ea5a967bfe7e204d1ccaf Mon Sep 17 00:00:00 2001
> +From: Edgar Bonet <bonet@grenoble.cnrs.fr>
> +Date: Wed, 25 Jun 2025 11:13:43 +0200
> +Subject: [PATCH] include/types.h: conditionally define bool, false and true
> +MIME-Version: 1.0
> +Content-Type: text/plain; charset=UTF-8
> +Content-Transfer-Encoding: 8bit
> +
> +include/types.h typedefs ‘bool’ and macro-defines ‘false’ and ‘true’.
> +However, since C23, these are predefine keywords. As C23 is the default
> +C dialect for GCC 15, building with this compiler fails with:
> +
> + include/types.h:23:23: error: ‘bool’ cannot be defined via ‘typedef’
> + 23 | typedef unsigned char bool;
> + | ^~~~
> + include/types.h:23:23: note: ‘bool’ is a keyword with ‘-std=c23’ onwards
> +
> +Fix this build failure by only defining ‘bool’, ‘false’ and ‘true’ on C
> +dialects older than C23.
> +
> +Upstream: https://github.com/linux4sam/at91bootstrap/pull/188
> +
> +Signed-off-by: Edgar Bonet <bonet@grenoble.cnrs.fr>
> +(cherry picked from commit 4aab60e634d588dffbd3154fd0cfce78272b750a)
This commit is not part of the at91bootstrap3 git tree. Did you backported your
patch from the PR (v4.0.0) to v3.10.3?
Maybe just add a comment [Edgar: backport to v3.10.3] since this has is not
stable yet until it merged.
Best regards,
Romain
> +---
> + include/types.h | 3 +++
> + 1 file changed, 3 insertions(+)
> +
> +diff --git a/include/types.h b/include/types.h
> +index 1246a4df..2c1a41cf 100644
> +--- a/include/types.h
> ++++ b/include/types.h
> +@@ -42,8 +42,11 @@ typedef signed long long s64;
> + typedef unsigned long size_t;
> + typedef signed long ssize_t;
> +
> ++/* bool, false and true are predefined since C23. */
> ++#if __STDC_VERSION__ < 202311L
> + typedef unsigned char bool;
> + #define false 0U
> + #define true 1U
> ++#endif
> +
> + #endif /* TYPES_H_ */
> +--
> +2.43.0
> +
> diff --git a/boot/at91bootstrap3/v4.0.0/0001-include-types.h-conditionally-define-bool-false-and-.patch b/boot/at91bootstrap3/v4.0.0/0001-include-types.h-conditionally-define-bool-false-and-.patch
> new file mode 100644
> index 0000000000..772a808690
> --- /dev/null
> +++ b/boot/at91bootstrap3/v4.0.0/0001-include-types.h-conditionally-define-bool-false-and-.patch
> @@ -0,0 +1,46 @@
> +From 4aab60e634d588dffbd3154fd0cfce78272b750a Mon Sep 17 00:00:00 2001
> +From: Edgar Bonet <bonet@grenoble.cnrs.fr>
> +Date: Wed, 25 Jun 2025 11:13:43 +0200
> +Subject: [PATCH] include/types.h: conditionally define bool, false and true
> +MIME-Version: 1.0
> +Content-Type: text/plain; charset=UTF-8
> +Content-Transfer-Encoding: 8bit
> +
> +include/types.h typedefs ‘bool’ and macro-defines ‘false’ and ‘true’.
> +However, since C23, these are predefine keywords. As C23 is the default
> +C dialect for GCC 15, building with this compiler fails with:
> +
> + include/types.h:23:23: error: ‘bool’ cannot be defined via ‘typedef’
> + 23 | typedef unsigned char bool;
> + | ^~~~
> + include/types.h:23:23: note: ‘bool’ is a keyword with ‘-std=c23’ onwards
> +
> +Fix this build failure by only defining ‘bool’, ‘false’ and ‘true’ on C
> +dialects older than C23.
> +
> +Upstream: https://github.com/linux4sam/at91bootstrap/pull/188
> +
> +Signed-off-by: Edgar Bonet <bonet@grenoble.cnrs.fr>
> +---
> + include/types.h | 3 +++
> + 1 file changed, 3 insertions(+)
> +
> +diff --git a/include/types.h b/include/types.h
> +index 950b1a46..0ad9ae61 100644
> +--- a/include/types.h
> ++++ b/include/types.h
> +@@ -20,8 +20,11 @@ typedef signed long long s64;
> + typedef unsigned long size_t;
> + typedef signed long ssize_t;
> +
> ++/* bool, false and true are predefined since C23. */
> ++#if __STDC_VERSION__ < 202311L
> + typedef unsigned char bool;
> + #define false 0U
> + #define true 1U
> ++#endif
> +
> + #endif /* TYPES_H_ */
> +--
> +2.43.0
> +
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Buildroot] [PATCH 1/1] boot/at91bootstrap3: fix build with host GCC 15
2025-07-06 16:02 ` Romain Naour via buildroot
@ 2025-07-06 16:43 ` Edgar Bonet via buildroot
0 siblings, 0 replies; 6+ messages in thread
From: Edgar Bonet via buildroot @ 2025-07-06 16:43 UTC (permalink / raw)
To: Romain Naour, Buildroot development; +Cc: Simon Dawson
Hello Romain! Hello all!
Today, Romain Naour wrote:
> Hello Edgar,
>
> Le 02/07/2025 à 12:15, Edgar Bonet via buildroot a écrit :
>> Building at91bootstrap3 with GCC15 fails with:
>>
>> include/types.h:23:23: error: ‘bool’ cannot be defined via ‘typedef’
>> 23 | typedef unsigned char bool;
>> | ^~~~
>> include/types.h:23:23: note: ‘bool’ is a keyword with ‘-std=c23’ onwards
>>
>> This is due to GCC 15 defaulting to the C23 language dialect.
>>
>> Signed-off-by: Edgar Bonet <bonet@grenoble.cnrs.fr>
>> ---
>>
>> Tested on an Acmesystems Acqua board.
>>
>> Also build-tested with a 2×2×2 test matrix:
>> - GCC version: 14, 15
>> - patch included: no, yes
>> - bootloader version: v3.10.3, v4.0.0
>> as expected, all tests passed save for those with GCC 15 without the patch.
>>
>> ...conditionally-define-bool-false-and-.patch | 47 +++++++++++++++++++
>> ...conditionally-define-bool-false-and-.patch | 46 ++++++++++++++++++
>> 2 files changed, 93 insertions(+)
>> create mode 100644 boot/at91bootstrap3/v3.10.3/0001-include-types.h-conditionally-define-bool-false-and-.patch
>> create mode 100644 boot/at91bootstrap3/v4.0.0/0001-include-types.h-conditionally-define-bool-false-and-.patch
>>
>> diff --git a/boot/at91bootstrap3/v3.10.3/0001-include-types.h-conditionally-define-bool-false-and-.patch b/boot/at91bootstrap3/v3.10.3/0001-include-types.h-conditionally-define-bool-false-and-.patch
>> new file mode 100644
>> index 0000000000..d4e37a86f6
>> --- /dev/null
>> +++ b/boot/at91bootstrap3/v3.10.3/0001-include-types.h-conditionally-define-bool-false-and-.patch
>> @@ -0,0 +1,47 @@
>> +From 908c65678867565a934ea5a967bfe7e204d1ccaf Mon Sep 17 00:00:00 2001
>> +From: Edgar Bonet <bonet@grenoble.cnrs.fr>
>> +Date: Wed, 25 Jun 2025 11:13:43 +0200
>> +Subject: [PATCH] include/types.h: conditionally define bool, false and true
>> +MIME-Version: 1.0
>> +Content-Type: text/plain; charset=UTF-8
>> +Content-Transfer-Encoding: 8bit
>> +
>> +include/types.h typedefs ‘bool’ and macro-defines ‘false’ and ‘true’.
>> +However, since C23, these are predefine keywords. As C23 is the default
>> +C dialect for GCC 15, building with this compiler fails with:
>> +
>> + include/types.h:23:23: error: ‘bool’ cannot be defined via ‘typedef’
>> + 23 | typedef unsigned char bool;
>> + | ^~~~
>> + include/types.h:23:23: note: ‘bool’ is a keyword with ‘-std=c23’ onwards
>> +
>> +Fix this build failure by only defining ‘bool’, ‘false’ and ‘true’ on C
>> +dialects older than C23.
>> +
>> +Upstream: https://github.com/linux4sam/at91bootstrap/pull/188
>> +
>> +Signed-off-by: Edgar Bonet <bonet@grenoble.cnrs.fr>
>> +(cherry picked from commit 4aab60e634d588dffbd3154fd0cfce78272b750a)
>
> This commit is not part of the at91bootstrap3 git tree. Did you backported your
> patch from the PR (v4.0.0) to v3.10.3?
Indeed. I submitted a pull request against their master branch (which is
also the at91bootstrap-4.x branch). My plan is to wait until I have some
feedback before submitting a second pull request with the backport to
at91bootstrap-3.x.
However, since I got no response, and I am using v3.10.3 with buildroot,
I decided to send here this patch that addresses both of the versions
supported by buildroot.
> Maybe just add a comment [Edgar: backport to v3.10.3] since this has is not
> stable yet until it merged.
OK, I'll respin right now.
Thank-you for looking at this, and best regards,
Edgar.
> Best regards,
> Romain
>
>
>> +---
>> + include/types.h | 3 +++
>> + 1 file changed, 3 insertions(+)
>> +
>> +diff --git a/include/types.h b/include/types.h
>> +index 1246a4df..2c1a41cf 100644
>> +--- a/include/types.h
>> ++++ b/include/types.h
>> +@@ -42,8 +42,11 @@ typedef signed long long s64;
>> + typedef unsigned long size_t;
>> + typedef signed long ssize_t;
>> +
>> ++/* bool, false and true are predefined since C23. */
>> ++#if __STDC_VERSION__ < 202311L
>> + typedef unsigned char bool;
>> + #define false 0U
>> + #define true 1U
>> ++#endif
>> +
>> + #endif /* TYPES_H_ */
>> +--
>> +2.43.0
>> +
>> diff --git a/boot/at91bootstrap3/v4.0.0/0001-include-types.h-conditionally-define-bool-false-and-.patch b/boot/at91bootstrap3/v4.0.0/0001-include-types.h-conditionally-define-bool-false-and-.patch
>> new file mode 100644
>> index 0000000000..772a808690
>> --- /dev/null
>> +++ b/boot/at91bootstrap3/v4.0.0/0001-include-types.h-conditionally-define-bool-false-and-.patch
>> @@ -0,0 +1,46 @@
>> +From 4aab60e634d588dffbd3154fd0cfce78272b750a Mon Sep 17 00:00:00 2001
>> +From: Edgar Bonet <bonet@grenoble.cnrs.fr>
>> +Date: Wed, 25 Jun 2025 11:13:43 +0200
>> +Subject: [PATCH] include/types.h: conditionally define bool, false and true
>> +MIME-Version: 1.0
>> +Content-Type: text/plain; charset=UTF-8
>> +Content-Transfer-Encoding: 8bit
>> +
>> +include/types.h typedefs ‘bool’ and macro-defines ‘false’ and ‘true’.
>> +However, since C23, these are predefine keywords. As C23 is the default
>> +C dialect for GCC 15, building with this compiler fails with:
>> +
>> + include/types.h:23:23: error: ‘bool’ cannot be defined via ‘typedef’
>> + 23 | typedef unsigned char bool;
>> + | ^~~~
>> + include/types.h:23:23: note: ‘bool’ is a keyword with ‘-std=c23’ onwards
>> +
>> +Fix this build failure by only defining ‘bool’, ‘false’ and ‘true’ on C
>> +dialects older than C23.
>> +
>> +Upstream: https://github.com/linux4sam/at91bootstrap/pull/188
>> +
>> +Signed-off-by: Edgar Bonet <bonet@grenoble.cnrs.fr>
>> +---
>> + include/types.h | 3 +++
>> + 1 file changed, 3 insertions(+)
>> +
>> +diff --git a/include/types.h b/include/types.h
>> +index 950b1a46..0ad9ae61 100644
>> +--- a/include/types.h
>> ++++ b/include/types.h
>> +@@ -20,8 +20,11 @@ typedef signed long long s64;
>> + typedef unsigned long size_t;
>> + typedef signed long ssize_t;
>> +
>> ++/* bool, false and true are predefined since C23. */
>> ++#if __STDC_VERSION__ < 202311L
>> + typedef unsigned char bool;
>> + #define false 0U
>> + #define true 1U
>> ++#endif
>> +
>> + #endif /* TYPES_H_ */
>> +--
>> +2.43.0
>> +
>
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Buildroot] [PATCH 1/1] boot/at91bootstrap3: fix build with host GCC 15
2025-07-02 10:15 [Buildroot] [PATCH 1/1] boot/at91bootstrap3: fix build with host GCC 15 Edgar Bonet via buildroot
2025-07-06 16:02 ` Romain Naour via buildroot
@ 2025-07-11 10:44 ` Thomas Perale via buildroot
2025-07-11 11:07 ` Baruch Siach via buildroot
1 sibling, 1 reply; 6+ messages in thread
From: Thomas Perale via buildroot @ 2025-07-11 10:44 UTC (permalink / raw)
To: Edgar Bonet; +Cc: Thomas Perale, Buildroot development
In reply of:
> Building at91bootstrap3 with GCC15 fails with:
>
> include/types.h:23:23: error: ‘bool’ cannot be defined via ‘typedef’
> 23 | typedef unsigned char bool;
> | ^~~~
> include/types.h:23:23: note: ‘bool’ is a keyword with ‘-std=c23’ onwards
>
> This is due to GCC 15 defaulting to the C23 language dialect.
>
> Signed-off-by: Edgar Bonet <bonet@grenoble.cnrs.fr>
Applied to 2025.02.x & 2025.05.x. Thanks
> ---
>
> Tested on an Acmesystems Acqua board.
>
> Also build-tested with a 2×2×2 test matrix:
> - GCC version: 14, 15
> - patch included: no, yes
> - bootloader version: v3.10.3, v4.0.0
> as expected, all tests passed save for those with GCC 15 without the patch.
>
> ...conditionally-define-bool-false-and-.patch | 47 +++++++++++++++++++
> ...conditionally-define-bool-false-and-.patch | 46 ++++++++++++++++++
> 2 files changed, 93 insertions(+)
> create mode 100644 boot/at91bootstrap3/v3.10.3/0001-include-types.h-conditionally-define-bool-false-and-.patch
> create mode 100644 boot/at91bootstrap3/v4.0.0/0001-include-types.h-conditionally-define-bool-false-and-.patch
>
> diff --git a/boot/at91bootstrap3/v3.10.3/0001-include-types.h-conditionally-define-bool-false-and-.patch b/boot/at91bootstrap3/v3.10.3/0001-include-types.h-conditionally-define-bool-false-and-.patch
> new file mode 100644
> index 0000000000..d4e37a86f6
> --- /dev/null
> +++ b/boot/at91bootstrap3/v3.10.3/0001-include-types.h-conditionally-define-bool-false-and-.patch
> @@ -0,0 +1,47 @@
> +From 908c65678867565a934ea5a967bfe7e204d1ccaf Mon Sep 17 00:00:00 2001
> +From: Edgar Bonet <bonet@grenoble.cnrs.fr>
> +Date: Wed, 25 Jun 2025 11:13:43 +0200
> +Subject: [PATCH] include/types.h: conditionally define bool, false and true
> +MIME-Version: 1.0
> +Content-Type: text/plain; charset=UTF-8
> +Content-Transfer-Encoding: 8bit
> +
> +include/types.h typedefs ‘bool’ and macro-defines ‘false’ and ‘true’.
> +However, since C23, these are predefine keywords. As C23 is the default
> +C dialect for GCC 15, building with this compiler fails with:
> +
> + include/types.h:23:23: error: ‘bool’ cannot be defined via ‘typedef’
> + 23 | typedef unsigned char bool;
> + | ^~~~
> + include/types.h:23:23: note: ‘bool’ is a keyword with ‘-std=c23’ onwards
> +
> +Fix this build failure by only defining ‘bool’, ‘false’ and ‘true’ on C
> +dialects older than C23.
> +
> +Upstream: https://github.com/linux4sam/at91bootstrap/pull/188
> +
> +Signed-off-by: Edgar Bonet <bonet@grenoble.cnrs.fr>
> +(cherry picked from commit 4aab60e634d588dffbd3154fd0cfce78272b750a)
> +---
> + include/types.h | 3 +++
> + 1 file changed, 3 insertions(+)
> +
> +diff --git a/include/types.h b/include/types.h
> +index 1246a4df..2c1a41cf 100644
> +--- a/include/types.h
> ++++ b/include/types.h
> +@@ -42,8 +42,11 @@ typedef signed long long s64;
> + typedef unsigned long size_t;
> + typedef signed long ssize_t;
> +
> ++/* bool, false and true are predefined since C23. */
> ++#if __STDC_VERSION__ < 202311L
> + typedef unsigned char bool;
> + #define false 0U
> + #define true 1U
> ++#endif
> +
> + #endif /* TYPES_H_ */
> +--
> +2.43.0
> +
> diff --git a/boot/at91bootstrap3/v4.0.0/0001-include-types.h-conditionally-define-bool-false-and-.patch b/boot/at91bootstrap3/v4.0.0/0001-include-types.h-conditionally-define-bool-false-and-.patch
> new file mode 100644
> index 0000000000..772a808690
> --- /dev/null
> +++ b/boot/at91bootstrap3/v4.0.0/0001-include-types.h-conditionally-define-bool-false-and-.patch
> @@ -0,0 +1,46 @@
> +From 4aab60e634d588dffbd3154fd0cfce78272b750a Mon Sep 17 00:00:00 2001
> +From: Edgar Bonet <bonet@grenoble.cnrs.fr>
> +Date: Wed, 25 Jun 2025 11:13:43 +0200
> +Subject: [PATCH] include/types.h: conditionally define bool, false and true
> +MIME-Version: 1.0
> +Content-Type: text/plain; charset=UTF-8
> +Content-Transfer-Encoding: 8bit
> +
> +include/types.h typedefs ‘bool’ and macro-defines ‘false’ and ‘true’.
> +However, since C23, these are predefine keywords. As C23 is the default
> +C dialect for GCC 15, building with this compiler fails with:
> +
> + include/types.h:23:23: error: ‘bool’ cannot be defined via ‘typedef’
> + 23 | typedef unsigned char bool;
> + | ^~~~
> + include/types.h:23:23: note: ‘bool’ is a keyword with ‘-std=c23’ onwards
> +
> +Fix this build failure by only defining ‘bool’, ‘false’ and ‘true’ on C
> +dialects older than C23.
> +
> +Upstream: https://github.com/linux4sam/at91bootstrap/pull/188
> +
> +Signed-off-by: Edgar Bonet <bonet@grenoble.cnrs.fr>
> +---
> + include/types.h | 3 +++
> + 1 file changed, 3 insertions(+)
> +
> +diff --git a/include/types.h b/include/types.h
> +index 950b1a46..0ad9ae61 100644
> +--- a/include/types.h
> ++++ b/include/types.h
> +@@ -20,8 +20,11 @@ typedef signed long long s64;
> + typedef unsigned long size_t;
> + typedef signed long ssize_t;
> +
> ++/* bool, false and true are predefined since C23. */
> ++#if __STDC_VERSION__ < 202311L
> + typedef unsigned char bool;
> + #define false 0U
> + #define true 1U
> ++#endif
> +
> + #endif /* TYPES_H_ */
> +--
> +2.43.0
> +
> --
> 2.34.1
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Buildroot] [PATCH 1/1] boot/at91bootstrap3: fix build with host GCC 15
2025-07-11 10:44 ` Thomas Perale via buildroot
@ 2025-07-11 11:07 ` Baruch Siach via buildroot
2025-07-11 12:02 ` Edgar Bonet via buildroot
0 siblings, 1 reply; 6+ messages in thread
From: Baruch Siach via buildroot @ 2025-07-11 11:07 UTC (permalink / raw)
To: Thomas Perale via buildroot; +Cc: Edgar Bonet, Thomas Perale
Hi Tomas,
On Fri, Jul 11 2025, Thomas Perale via buildroot wrote:
> In reply of:
>> Building at91bootstrap3 with GCC15 fails with:
>>
>> include/types.h:23:23: error: ‘bool’ cannot be defined via ‘typedef’
>> 23 | typedef unsigned char bool;
>> | ^~~~
>> include/types.h:23:23: note: ‘bool’ is a keyword with ‘-std=c23’ onwards
>>
>> This is due to GCC 15 defaulting to the C23 language dialect.
>>
>> Signed-off-by: Edgar Bonet <bonet@grenoble.cnrs.fr>
>
> Applied to 2025.02.x & 2025.05.x. Thanks
Not in 2025.02.x as of commit 946b7ff2280aa
("support/dependencies/check-host-cmake.mk: set host-cmake max
version").
baruch
--
~. .~ Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
- baruch@tkos.co.il - tel: +972.52.368.4656, http://www.tkos.co.il -
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: [Buildroot] [PATCH 1/1] boot/at91bootstrap3: fix build with host GCC 15
2025-07-11 11:07 ` Baruch Siach via buildroot
@ 2025-07-11 12:02 ` Edgar Bonet via buildroot
0 siblings, 0 replies; 6+ messages in thread
From: Edgar Bonet via buildroot @ 2025-07-11 12:02 UTC (permalink / raw)
To: buildroot
Hello everybody!
On 11/07/2025 13:07, Baruch Siach via buildroot wrote:
> Hi Tomas,
>
> On Fri, Jul 11 2025, Thomas Perale via buildroot wrote:
>> In reply of:
>>> Building at91bootstrap3 with GCC15 fails with:
>>>
>>> include/types.h:23:23: error: ‘bool’ cannot be defined via ‘typedef’
>>> 23 | typedef unsigned char bool;
>>> | ^~~~
>>> include/types.h:23:23: note: ‘bool’ is a keyword with ‘-std=c23’ onwards
>>>
>>> This is due to GCC 15 defaulting to the C23 language dialect.
>>>
>>> Signed-off-by: Edgar Bonet <bonet@grenoble.cnrs.fr>
>>
>> Applied to 2025.02.x & 2025.05.x. Thanks
>
> Not in 2025.02.x as of commit 946b7ff2280aa
> ("support/dependencies/check-host-cmake.mk: set host-cmake max
> version").
Indeed, but 2025.02.x does not support GCC 15 anyway.
Regards,
Edgar.
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2025-07-11 12:03 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-02 10:15 [Buildroot] [PATCH 1/1] boot/at91bootstrap3: fix build with host GCC 15 Edgar Bonet via buildroot
2025-07-06 16:02 ` Romain Naour via buildroot
2025-07-06 16:43 ` Edgar Bonet via buildroot
2025-07-11 10:44 ` Thomas Perale via buildroot
2025-07-11 11:07 ` Baruch Siach via buildroot
2025-07-11 12:02 ` Edgar Bonet via buildroot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.