[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: