Re: building ecl with gcc-15 / c23 C standard

Daniel KochmaƄski <[email protected]> Sat, 03 May 2025 17:47:09 +0000
Newsgroups gmane.lisp.ecl.general
Message-ID <yIsmHum_p0RYFQdvaQmdm5G8ZKtYLD2Pev2jYkDIcCqIPFsUK_QAXq6TobTZRoSfl4iMh-zOJlxDX8O_njYmARHovwiz1Wir4JWYg05pnls=@turtleware.eu>
Hey,

On Monday, April 21st, 2025 at 6:10 PM, Dima Pasechnik <[email protected]=
om> wrote:

> I had a go at building ecl with C compiler using c23 mode (i.e. -std=3Dc2=
3 argument in CFLAGS)
> and apart from an easy to fix "typedef bool" issue, there is more, and qu=
ite hard to understand:
>=20
> CFLAGS=3D"-std=3Dc23" ./configure && make
>=20
> [...]
> dpp: /home/dima/software/ecl/src/c/read.d -> read.o.c
> [...]
> /home/dima/software/ecl/src/c/read.d: In function =E2=80=98init_read=
=E2=80=99:
> /home/dima/software/ecl/src/c/read.d:2023:39: error: passing argument 1 o=
f =E2=80=98ecl_make_cfun=E2=80=99 from incompatible pointer type [-Wincompa=
tible-pointer-types]
>  2023 | #define make_cf3(f)     ecl_make_cfun((f), ECL_NIL, NULL, 3)
>       |                                       ^~~
>       |                                       |
>       |                                       union cl_lispunion * (*)(un=
ion cl_lispunion *, union cl_lispunion *)
> /home/dima/software/ecl/src/c/read.d:2047:29: note: in expansion of macro=
 =E2=80=98make_cf2=E2=80=99
>  2047 |=20
>       |                             ^      =20
> In file included from /home/dima/software/ecl/build/ecl/ecl.h:82,
>                  from /home/dima/software/ecl/src/c/read.d:16:
> /home/dima/software/ecl/build/ecl/external.h:427:58: note: expected =
=E2=80=98cl_objectfn_fixed=E2=80=99 {aka =E2=80=98union cl_lispunion * (*)(=
void)=E2=80=99} but argument is of type =E2=80=98union cl_lispunion * (*)(u=
nion cl_lispunion *, union cl_lispunion *)=E2=80=99
>   427 | extern ECL_API cl_object ecl_make_cfun(cl_objectfn_fixed c_functi=
on, cl_object name, cl_object block, int narg);
>       |                                        ~~~~~~~~~~~~~~~~~~^~~~~~~~=
~~
>=20
>=20
> see
> https://gitlab.com/embeddable-common-lisp/ecl/-/issues/775
>=20
> Any ideas how to fix this?
>=20
> Dima

While Dima is already aware of it, Marius have fixed the issue and the merg=
e request is under review. See the linked issue for details.

(Writing here so it isn't left hanging unanswered).

Best regards,
Daniel