From: Petr Písař Date: Fri, 7 Feb 2025 14:21:16 +0000 (+0100) Subject: Fix building in ISO C23 X-Git-Tag: 0.7.32~15^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5d36ad3e928c8abd919595ada2e152a879c7db47;p=thirdparty%2Flibsolv.git Fix building in ISO C23 ISO C23 added bool type as a keyword. It is the standard GCC 15 uses by default and compilation of bindings/perl/solv_perl.c fails then: bindings/perl/solv_perl.c:1641:13: error: ‘bool’ cannot be defined via ‘typedef’ 1641 | typedef int bool; | ^~~~ /home/test/fedora/libsolv/libsolv-0.7.31-build/libsolv-0.7.31/redhat-linux-build/bindings/perl/solv_perl.c:1641:13: note: ‘bool’ is a keyword with ‘-std=c23’ onwards /home/test/fedora/libsolv/libsolv-0.7.31-build/libsolv-0.7.31/redhat-linux-build/bindings/perl/solv_perl.c:1641:1: warning: useless type name in empty declaration 1641 | typedef int bool; | ^~~~~~~ The typedef comes from bindings/solv.i which attemps to supply it in case Swig undefines it. This patch fixes it by not defining it in case ISO C23 or newer is in use. Keywords cannot be checked by a preprocessor, neither undefined (by Swig). Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2340762 --- diff --git a/bindings/solv.i b/bindings/solv.i index 3b61ab04..8d46a2d3 100644 --- a/bindings/solv.i +++ b/bindings/solv.i @@ -976,8 +976,10 @@ SWIG_AsValDepId(void *obj, int *val) { /* argh, swig undefs bool for perl */ #ifndef bool +#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 202311L typedef int bool; #endif +#endif #include "pool.h" #include "poolarch.h"