Hi Ncurses maintainer(s),

I'm the current maintainer of crosstool-ng and we're just starting to
incorporate GCC15. We've hit an error that seems to exhibit itself on
a powerpc64-unknown-linux-musl config when building gdb (not sure why
this specific config is affected, some others are working fine).

The problem boils down to

[ERROR]    
/home/runner/work/crosstool-ng/crosstool-ng/.build/powerpc64-unknown-linux-musl/src/gdb/gdb/top.c:133:6:
error: conflicting declaration 'NCURSES_BOOL confirm'
[ALL  ]      133 | bool confirm = true;
[ALL  ]          |      ^~~~~~~
[ALL  ]    In file included from
/home/runner/work/crosstool-ng/crosstool-ng/.build/powerpc64-unknown-linux-musl/src/gdb/gdb/top.c:40:
[ALL  ]    
/home/runner/work/crosstool-ng/crosstool-ng/.build/powerpc64-unknown-linux-musl/src/gdb/gdb/top.h:28:13:
note: previous declaration as 'bool confirm'
[ALL  ]       28 | extern bool confirm;

more error output is available at [1].

I think the problem is that ncurses tries to determine if stdbool.h is
needed or not. As of C23 it's not as bool is recognised as an
intrinsic type. But this triggers curses.h to #define bool
NCURSES_BOOL because NCURSES_ENABLE_STDBOOL_H is 0.

I think there can probably be a fix similar to the C++ logic that uses
bool if -std=c23 is used. I'll see if I can whip up a patch for that.

--

[1] - 
https://gist.githubusercontent.com/cpackham/f53505a86819dad24262820537bb482a/raw/0ce13bcf65e58307f2d6c84658ae3c75b9b38ada/gistfile1.txt

Reply via email to