On Thu, Feb 20, 2025 at 10:43:09AM +0100, Agustin Martin wrote:
> On Mon, Feb 17, 2025 at 05:50:15PM +0000, Matthias Klose wrote:
> > Package: src:regina-rexx
> > Version: 3.9.5+dfsg1-0.1
> > Severity: important
> > Tags: sid forky
> > User: [email protected]
> > Usertags: ftbfs-gcc-15
> ...
> > To build with GCC 15, either set CC=gcc-15 CXX=g++-15 explicitly,
> > or install the gcc, g++, gfortran, ... packages from experimental.
> >
> > apt-get -t=experimental install g++
>
> Checked by passing -std=gnu23 to compiler.
One more problem I found after disabling gci to mask previous error message
----
x86_64-linux-gnu-gcc -c -DNDEBUG -g -O2 -Werror=implicit-function-declaration
-ffile-prefix-map=/build/regina-rexx-3.9.5+dfsg1=. -fstack-protector-strong
-fstack-clash-protection -Wformat -Werror=format-security -fcf-protection
-std=gnu23 -Wdate-time -D_FORTIFY_SOURCE=2
-DREGINA_SHARE_DIRECTORY=\"/usr/share/regina-rexx\" -funsigned-char
-DREGINA_VERSION_DATE=\""25 Jun 2022"\" -DREGINA_VERSION_MAJOR=\"3\"
-DREGINA_VERSION_MINOR=\"9\" -DREGINA_VERSION_RELEASE=\"5\"
-DREGINA_VERSION_SUPP=\"\" -DREGINA_BITS=64 -DHAVE_CONFIG_H -I. -I.
-I./contrib -o regfilesys.o -fPIC -DDYNAMIC ./regutil/regfilesys.c
In file included from ./regutil/regfilesys.c:29:
./regutil/regutil.h:28:4: error: expected identifier before 'false'
28 | false,
| ^~~~~
./regutil/regfilesys.c: In function 'sysfiletree':
./regutil/regfilesys.c:994:12: warning: ignoring return value of 'getcwd'
declared with attribute 'warn_unused_result' [-Wunused-result]
994 | getcwd(cp1, MAXPATHLEN+1);
| ^~~~~~~~~~~~~~~~~~~~~~~~~
make[1]: *** [Makefile:939: regfilesys.o] Error 1
----
Seems that there were some changes with booleans. I have been playing with
attached diff and minimally tested the results.
The problem that remains is the one I mentioned before. When gci is enabled,
some errors
of this kind are shown
----
./gci/gci_call.c: In function 'doCall':
./gci/gci_call.c:75:8: error: too many arguments to function 'func'
75 | ((void (*)())func)( GCI_PASSARGS( buf ) );
| ~^~~~~~~~~~~~~~~~~
./gci/gci_call.c:63:33: error: too many arguments to function '(signed char
(*)(void))func'
63 | ((type (*)())func)( GCI_PASSARGS( buf )
); \
| ~^~~~~~~~~~~~~~~~~
----
---
Agustin
--- a/config.h.in
+++ b/config.h.in
@@ -246,6 +246,9 @@
/* Define if you have the <stdarg.h> header file. */
#undef HAVE_STDARG_H
+/* Define if you have the <stdbool.h> header file. */
+#undef HAVE_STDBOOL_H
+
/* Define if you have the <stdio.h> header file. */
#undef HAVE_STDIO_H
--- a/configure
+++ b/configure
@@ -4725,6 +4725,7 @@ for ac_header in \
signal.h \
socket.h \
stdarg.h \
+ stdbool.h \
stdio.h \
statvfs.h \
stdlib.h \
--- a/configure.in
+++ b/configure.in
@@ -179,6 +179,7 @@ AC_CHECK_HEADERS( \
signal.h \
socket.h \
stdarg.h \
+ stdbool.h \
stdio.h \
statvfs.h \
stdlib.h \
--- a/regutil/regutil.h
+++ b/regutil/regutil.h
@@ -24,10 +24,15 @@
#include "rxproto.h"
+#ifdef HAVE_STDBOOL_H
+# include <stdbool.h>
+typedef bool rxbool;
+#else
typedef enum {
false,
true
} rxbool;
+#endif
void init_random(void);