[Ecls-list] [ANN] ECL 12.12.1 released
Matthew Mondor
mm_lists at pulsar-zone.net
Tue Dec 11 16:21:48 UTC 2012
On Tue, 11 Dec 2012 16:48:59 +0200
Michael Wood <esiotrot at gmail.com> wrote:
> Hi
>
> On 11 December 2012 16:16, Juan Jose Garcia-Ripoll
> <juanjose.garciaripoll at gmail.com> wrote:
> > On Mon, Dec 10, 2012 at 10:47 PM, Christoph Egger <christoph at debian.org>
> > wrote:
> >>
> >> I'm seeing segfaults when trying to build ecl on x86 linux [0] (Debian
> >> unstable) not doing anything fancy with the source [1]. Any ideas?
> >
> >
> > A bit more information would be useful, even if by private email (no need to
> > post logs here).
>
> He posted a link to the logs. It ends like this:
>
> head -8 config.log | tail -6 >> build-stamp
> if [ -f CROSS-COMPILER ]; then \
> ./CROSS-COMPILER compile; \
> else \
> ECLDIR=`pwd`/ ./ecl_min compile; \
> fi
> ;*** Lisp core booted ****
> ECL (Embeddable Common Lisp)
>
> ;;;
> ;;; Welcome to bare.lsp. Let's bring this instance up!
> ;;;
> ;;;
> ;;; About to load lsp/load.lsp
> ;;;
> ;;; Loading src:lsp;export.lsp
> ;;; Loading src:lsp;defmacro.lsp
> ;;; Loading src:lsp;helpfile.lsp
> ;;; Loading src:lsp;evalmacros.lsp
> ;;; Loading src:lsp;cmuutil.lsp
> /bin/bash: line 4: 801 Segmentation fault ECLDIR=`pwd`/ ./ecl_min compile
> make[2]: *** [bin/ecl] Error 139
> ;;; Loading src:lsp;setf.lspmake[2]: Leaving directory
> `/build/buildd-ecl_12.12.1-1-amd64-zk7Coi/ecl-12.12.1/build'
> make[1]: *** [all] Error 2
> make[1]: Leaving directory
> `/build/buildd-ecl_12.12.1-1-amd64-zk7Coi/ecl-12.12.1'
> make: *** [build-arch-stamp] Error 2
> dpkg-buildpackage: error: debian/rules build-arch gave error exit status 2
>
> Perhaps running that last bit under valgrind or gdb would help?
I second this; of course the build should ideally be made using the -g
debug option.
Another suggestion is to build using a flag which generate an error
rather than a warning for implicit function declarations (which is more
prone to segfaults on amd64 because the default implicit type in C
remains "int", 32-bit, but a pointer now requires 64-bit).
The source of such a bug is usually simply a missing function prototype
or headerfile include. With GCC, building with
-Werror=implicit-function-declaration in CFLAGS should help to detect
this.
However, if the issue is in boehm-gc, gmp, libffi and the ones supplied
with ECL are not used, building ECL alone with this flag is only of
limited utility (same with -g for debug symbols).
--
Matt
More information about the ecl-devel
mailing list