On 15 March 2025 at 09:49, Ivan Krylov wrote:
| On Fri, 14 Mar 2025 22:25:54 -0500
| Dirk Eddelbuettel <e...@debian.org> wrote:
| 
| > An older package I looked at apparently currently fails to build under
| > r-devel (and with that my thanks to R-universe for giving us a
| > 'broad' range of builds for free -- off our development sources) over
| > 'bool' related changes and enum definitions.
| > 
| > I can get it to behave and build by declaring
| > 
| >   PKG_CFLAGS = -std=gnu23
| 
| Could you please share the compilation failure messages? The -std=gnu23
| flag causes R_ext/Boolean.h to _not_ #include <stdbool.h> before
| defining enum Rboolean, so the problem is likely related to that.

Sure thing. It is as so often a C++ package but has one C file src/init.c
which begins with

  #include <R.h>
  #include <Rinternals.h>
  #include <stdlib.h> // for NULL
  #include <R_ext/Rdynload.h>

and compilation then fails with

  In file included from /usr/local/lib/R-devel/lib/R/include/R.h:70,
                   from init.c:1:
  /usr/local/lib/R-devel/lib/R/include/R_ext/Boolean.h:62:16: warning: ISO C 
does not support specifying ‘enum’ underlying types before C23 [-Wpedantic]
     62 |   typedef enum :int { FALSE = 0, TRUE } Rboolean;  // so NOT NA
        |                ^

so apparently R.h as it is upsets it.

Cheers, Dirk

-- 
dirk.eddelbuettel.com | @eddelbuettel | e...@debian.org

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to