* [PATCH 1/1] arch/powerpc: Remove redundant typedef for bool
@ 2025-03-23 16:36 Misbah Anjum N
2025-03-23 16:36 ` Misbah Anjum N
2025-04-17 6:09 ` Mukesh Kumar Chaurasiya
0 siblings, 2 replies; 3+ messages in thread
From: Misbah Anjum N @ 2025-03-23 16:36 UTC (permalink / raw)
To: linuxppc-dev; +Cc: maddy, mpe, npiggin, christophe.leroy, naveen, linux-kernel
Hi,
I noticed that a patch addressing the same issue has been proposed by
Michal Suchanek:
https://lore.kernel.org/linuxppc-dev/Z86liwlwP5WvrEkw@kitsune.suse.cz/T/#t
The existing patch addresses the compilation error by modifying the Makefile
to use `gnu11` with `BOOTTARGETFLAGS`. This is a practical approach to avoid
the error in the short term.
This patch builds on that work by providing a long-term solution that ensures
compatibility with C23 while maintaining backward compatibility. Specifically:
- It uses `__STDC_VERSION__` to conditionally define the `bool` typedef only
for pre-C23 standards.
- It ensures that the code is future-proof and ready for upcoming C23 standards,
where `bool`, `true`, and `false` are reserved keywords.
- It avoids reliance on compiler-specific flags, making the code more portable
and standards-compliant.
Changlog:
- Adding version check via __STDC_VERSION__
- If __STDC_VERSION__ < C23, 'typedef int bool' is defined as usual
- If __STDC_VERSION__ >= C23, the typedef redundancy is removed
The patch has been tested with:
- gcc (GCC) 15.0.1 20250228 (Red Hat 15.0.1-0)
- gcc (GCC) 14.2.1 20250110 (Red Hat 14.2.1-7)
Thanks,
Misbah Anjum N
Misbah Anjum N (1):
arch/powerpc: Remove redundant typedef for bool
arch/powerpc/boot/types.h | 2 ++
1 file changed, 2 insertions(+)
--
2.49.0
^ permalink raw reply [flat|nested] 3+ messages in thread* [PATCH 1/1] arch/powerpc: Remove redundant typedef for bool
2025-03-23 16:36 [PATCH 1/1] arch/powerpc: Remove redundant typedef for bool Misbah Anjum N
@ 2025-03-23 16:36 ` Misbah Anjum N
2025-04-17 6:09 ` Mukesh Kumar Chaurasiya
1 sibling, 0 replies; 3+ messages in thread
From: Misbah Anjum N @ 2025-03-23 16:36 UTC (permalink / raw)
To: linuxppc-dev; +Cc: maddy, mpe, npiggin, christophe.leroy, naveen, linux-kernel
The custom 'bool' typedef in arch/powerpc/boot/types.h is incompatible with
the C23 standard, where 'bool', 'true', and 'false' are now reserved keywords.
With newer GCC versions (such as GCC 15), redefining 'bool' leads to compilation
errors. For example:
error: 'bool' cannot be defined via 'typedef'
Since 'stdbool.h' is already included and provides a standard definition for
'bool', this typedef is redundant and can be removed to avoid conflicts.
Compilation Error:
$ make -j$(nproc)
....
In file included from arch/powerpc/boot/ops.h:13,
from arch/powerpc/boot/cuboot.c:12:
arch/powerpc/boot/types.h:43:13: error: ‘bool’ cannot be defined via ‘typedef’
43 | typedef int bool;
| ^~~~
arch/powerpc/boot/types.h:43:13: note: ‘bool’ is a keyword with ‘-std=c23’ onwards
arch/powerpc/boot/types.h:43:1: warning: useless type name in empty declaration
43 | typedef int bool;
| ^~~~~~~
....
make[2]: *** [arch/powerpc/boot/Makefile:235: arch/powerpc/boot/devtree.o] Error 1
make[2]: *** [arch/powerpc/boot/Makefile:235: arch/powerpc/boot/ofconsole.o] Error 1
make[2]: *** [arch/powerpc/boot/Makefile:235: arch/powerpc/boot/ns16550.o] Error 1
make[2]: *** [arch/powerpc/boot/Makefile:235: arch/powerpc/boot/main.o] Error 1
make[1]: *** [arch/powerpc/Makefile:236: zImage] Error 2
make: *** [Makefile:251: __sub-make] Error 2
Signed-off-by: Misbah Anjum N <misanjum@linux.ibm.com>
---
arch/powerpc/boot/types.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/arch/powerpc/boot/types.h b/arch/powerpc/boot/types.h
index 8a4c418b7..6f34b31b8 100644
--- a/arch/powerpc/boot/types.h
+++ b/arch/powerpc/boot/types.h
@@ -40,7 +40,9 @@ typedef s64 int64_t;
#define min_t(type, a, b) min(((type) a), ((type) b))
#define max_t(type, a, b) max(((type) a), ((type) b))
+#if !defined(__STDC_VERSION__) || __STDC_VERSION__ < 202300L
typedef int bool;
+#endif
#ifndef true
#define true 1
--
2.49.0
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [PATCH 1/1] arch/powerpc: Remove redundant typedef for bool
2025-03-23 16:36 [PATCH 1/1] arch/powerpc: Remove redundant typedef for bool Misbah Anjum N
2025-03-23 16:36 ` Misbah Anjum N
@ 2025-04-17 6:09 ` Mukesh Kumar Chaurasiya
1 sibling, 0 replies; 3+ messages in thread
From: Mukesh Kumar Chaurasiya @ 2025-04-17 6:09 UTC (permalink / raw)
To: Misbah Anjum N
Cc: linuxppc-dev, maddy, mpe, npiggin, christophe.leroy, naveen,
linux-kernel
On Sun, Mar 23, 2025 at 11:36:06AM -0500, Misbah Anjum N wrote:
> Hi,
>
> I noticed that a patch addressing the same issue has been proposed by
> Michal Suchanek:
> https://lore.kernel.org/linuxppc-dev/Z86liwlwP5WvrEkw@kitsune.suse.cz/T/#t
>
> The existing patch addresses the compilation error by modifying the Makefile
> to use `gnu11` with `BOOTTARGETFLAGS`. This is a practical approach to avoid
> the error in the short term.
>
> This patch builds on that work by providing a long-term solution that ensures
> compatibility with C23 while maintaining backward compatibility. Specifically:
> - It uses `__STDC_VERSION__` to conditionally define the `bool` typedef only
> for pre-C23 standards.
> - It ensures that the code is future-proof and ready for upcoming C23 standards,
> where `bool`, `true`, and `false` are reserved keywords.
> - It avoids reliance on compiler-specific flags, making the code more portable
> and standards-compliant.
>
> Changlog:
> - Adding version check via __STDC_VERSION__
> - If __STDC_VERSION__ < C23, 'typedef int bool' is defined as usual
> - If __STDC_VERSION__ >= C23, the typedef redundancy is removed
>
> The patch has been tested with:
> - gcc (GCC) 15.0.1 20250228 (Red Hat 15.0.1-0)
> - gcc (GCC) 14.2.1 20250110 (Red Hat 14.2.1-7)
>
> Thanks,
> Misbah Anjum N
>
>
> Misbah Anjum N (1):
> arch/powerpc: Remove redundant typedef for bool
>
> arch/powerpc/boot/types.h | 2 ++
> 1 file changed, 2 insertions(+)
>
Reviewed-by: Mukesh Kumar Chaurasiya <mchauras@linux.ibm.com>
> --
> 2.49.0
>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2025-04-17 6:09 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-03-23 16:36 [PATCH 1/1] arch/powerpc: Remove redundant typedef for bool Misbah Anjum N
2025-03-23 16:36 ` Misbah Anjum N
2025-04-17 6:09 ` Mukesh Kumar Chaurasiya
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®