]> git.ipfire.org Git - thirdparty/libsolv.git/commit
Fix building in ISO C23 580/head
authorPetr Písař <ppisar@redhat.com>
Fri, 7 Feb 2025 14:21:16 +0000 (15:21 +0100)
committerPetr Písař <ppisar@redhat.com>
Fri, 7 Feb 2025 14:39:51 +0000 (15:39 +0100)
commit5d36ad3e928c8abd919595ada2e152a879c7db47
tree783bd23c5a4971e97b51a1e18c822190d10f86e3
parent5e4ff5461e4dbafc401101c5944eba91e9af8978
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
bindings/solv.i