Bug#1115924: ecl: incompatibility with c23, as provided by gcc-15
Package: ecl
Version: 24.5.10+ds-1+b1
Severity: serious
Tags: patch upstream
Justification: Policy 3.5
X-Debbugs-Cc: dima@pasechnik.info
Dear Maintainer,
*** Reporter, please consider answering these questions, where appropriate ***
* What led up to the situation?
* What exactly did you do (or not do) that was effective (or
ineffective)?
* What was the outcome of this action?
* What outcome did you expect instead?
*** End of the template - remove these template lines ***
ecl, when used as a Lisp compiler,
uses a C compiler (gcc, in this case) to build Lisp shared libraries etc.
In particular, it expects gcc to understand the C language standard it
uses. gcc-15 does use c23 by default, in particular "bool" is a reserved
word, whereas ecl defines bool as int in /usr/include/ecl/object.h
#if !defined(__cplusplus) && !defined(bool)
typedef int bool;
#endif
which causes a compilation error, for instance, when one builds Maxima
using ecl as the Lisp system, leading to the following error:
;;; /usr/include/ecl/object.h:27:13: error: 'bool' cannot be defined via 'typedef'
;;; 27 | typedef int bool;
;;; | ^~~~
;;; /usr/include/ecl/object.h:27:13: note: 'bool' is a keyword with '-std=c23' onwards
While the ecl upstream had been slow in releasing a c23-compatible ecl
version, they have developed a solution for this issue, cf.
https://gitlab.com/embeddable-common-lisp/ecl/-/issues/775,
given by
https://gitlab.com/embeddable-common-lisp/ecl/-/commit/f69ded9777c43df20021788d2a4bfc0e9c6b4566
and
https://gitlab.com/embeddable-common-lisp/ecl/-/commit/1aec8f741f69fd736f020b7fe4d3afc33e60ae6a
The Debian testing version of ecl so patched allows building Maxima with
ecl on the system.
See also https://groups.google.com/g/sage-support/c/rZtAZraX4Tk/m/tu0J-cF2AgAJ
Please use these patches to ship a gcc-15-compatible elc.
-- System Information:
Debian Release: forky/sid
APT prefers testing
APT policy: (500, 'testing')
Architecture: amd64 (x86_64)
Kernel: Linux 6.13.4-gentoo-x86_64 (SMP w/14 CPU threads; PREEMPT)
Kernel taint flags: TAINT_WARN
Locale: LANG=C, LC_CTYPE=C.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: unable to detect
Versions of packages ecl depends on:
ii gcc 4:15.2.0-4
ii libatomic-ops-dev 7.8.2-1
ii libc6 2.41-12
ii libecl-dev 24.5.10+ds-1+b1
ii libecl24.5t64 24.5.10+ds-1+b1
ii libffi-dev 3.5.2-2
ii libgc-dev 1:8.2.8-1
ii libgmp-dev 2:6.3.0+dfsg-5
ii libncurses-dev 6.5+20250216-2
ecl recommends no packages.
Versions of packages ecl suggests:
pn ecl-doc <none>
pn slime <none>
-- no debconf information
Reply to: