I am attempting to build jsvc under Ubuntu 25.10 using the default system 
compiler, GCC 15.2.0. The build fails with the following error:

In file included from jsvc-unix.c:17:

jsvc.h:32:5: error: cannot use keyword ‘false’ as enumeration constant

   32 |     false,

      |     ^~~~~

jsvc.h:32:5: note: ‘false’ is a keyword with ‘-std=c23’ onwards

jsvc.h:34:3: error: expected ‘;’, identifier or ‘(’ before ‘bool’

   34 | } bool;

      |   ^~~~

jsvc.h:34:3: warning: useless type name in empty declaration


This stems from these lines near to top of jsvc.h:

#ifdef OS_DARWIN

#include <stdbool.h>

#else

typedef enum {

    false,

    true

} bool;

#endif


I believe that the line "#ifdef OS_DARWIN" should be replaced by something like 
this:

#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */


so that stdbool.h is included for all C99-conforming compilers, not just 
Apple's clang.


Thanks,



Ian

Reply via email to