From: Bruno H. <br...@cl...> - 2017-03-21 22:52:42
|
Hi Sam and Ken, > > Ken, does it fail with the hg tip? > > Yes. I just built clisp from Bruno's tarball > (https://haible.de/bruno/gnu/clisp-2.49.50.tar.bz2), and here's what > happens when I try to save an executable in the build directory: > > $ ./clisp -norc -q -x '(progn (ext:saveinitmem "test.exe" :init-function > (function exit) :EXECUTABLE t))' > ;; Wrote the memory image into test.exe (13,849,465 bytes) > Bytes permanently allocated: 160,328 > Bytes currently in use: 3,602,952 > Bytes available until next GC: 66,168 > 3602952 ; > 66168 ; > 160328 ; > 2 ; > 26120 ; > 15000 > > $ ./test.exe > Segmentation fault (core dumped) For me, with the same clisp-2.49.50, it succeeds, both in 32-bit and 64-bit Cygwin builds. Here's the output of "make check-exec-image": ================================= 32-bit ================================= ./lisp.exe -B . -E UTF-8 -Emisc 1:1 -Epathname 1:1 -norc -M lispinit.mem -x "(saveinitmem \"foo\" :executable t :norc t)" i i i i i i i ooooo o ooooooo ooooo ooooo I I I I I I I 8 8 8 8 8 o 8 8 I \ `+' / I 8 8 8 8 8 8 \ `-+-' / 8 8 8 ooooo 8oooo `-__|__-' 8 8 8 8 8 | 8 o 8 8 o 8 8 ------+------ ooooo 8oooooo ooo8ooo ooooo 8 Welcome to GNU CLISP 2.49.50 (2017-03-19) <http://clisp.org/> Copyright (c) Bruno Haible, Michael Stoll 1992, 1993 Copyright (c) Bruno Haible, Marcus Daniels 1994-1997 Copyright (c) Bruno Haible, Pierpaolo Bernardi, Sam Steingold 1998 Copyright (c) Bruno Haible, Sam Steingold 1999-2000 Copyright (c) Sam Steingold, Bruno Haible 2001-2010 Type :h and hit Enter for context help. ;; Wrote the memory image into foo.exe (9,653,004 bytes) Bytes permanently allocated: 89,504 Bytes currently in use: 1,862,536 Bytes available until next GC: 103,384 1862536 ; 103384 ; 89504 ; 1 ; 68088 ; 15000 Bye. ./foo -x "(setq zz 10) (saveinitmem \"foo\")" i i i i i i i ooooo o ooooooo ooooo ooooo I I I I I I I 8 8 8 8 8 o 8 8 I \ `+' / I 8 8 8 8 8 8 \ `-+-' / 8 8 8 ooooo 8oooo `-__|__-' 8 8 8 8 8 | 8 o 8 8 o 8 8 ------+------ ooooo 8oooooo ooo8ooo ooooo 8 Welcome to GNU CLISP 2.49.50 (2017-03-19) <http://clisp.org/> Copyright (c) Bruno Haible, Michael Stoll 1992, 1993 Copyright (c) Bruno Haible, Marcus Daniels 1994-1997 Copyright (c) Bruno Haible, Pierpaolo Bernardi, Sam Steingold 1998 Copyright (c) Bruno Haible, Sam Steingold 1999-2000 Copyright (c) Sam Steingold, Bruno Haible 2001-2010 Type :h and hit Enter for context help. 10 ;; Wrote the memory image into foo.mem (1,953,012 bytes) Bytes permanently allocated: 89,504 Bytes currently in use: 1,862,096 Bytes available until next GC: 103,888 1862096 ; 103888 ; 89504 ; 1 ; 19608 ; 15000 Bye. ./foo -norc -M foo.mem -x zz i i i i i i i ooooo o ooooooo ooooo ooooo I I I I I I I 8 8 8 8 8 o 8 8 I \ `+' / I 8 8 8 8 8 8 \ `-+-' / 8 8 8 ooooo 8oooo `-__|__-' 8 8 8 8 8 | 8 o 8 8 o 8 8 ------+------ ooooo 8oooooo ooo8ooo ooooo 8 Welcome to GNU CLISP 2.49.50 (2017-03-19) <http://clisp.org/> Copyright (c) Bruno Haible, Michael Stoll 1992, 1993 Copyright (c) Bruno Haible, Marcus Daniels 1994-1997 Copyright (c) Bruno Haible, Pierpaolo Bernardi, Sam Steingold 1998 Copyright (c) Bruno Haible, Sam Steingold 1999-2000 Copyright (c) Sam Steingold, Bruno Haible 2001-2010 Type :h and hit Enter for context help. 10 Bye. ./lisp.exe -B . -E UTF-8 -Emisc 1:1 -Epathname 1:1 -norc -M lispinit.mem -x "(saveinitmem \"foo\" :executable t :norc t :quiet t :init-function (lambda () (prin1 *args*) (exit)))" -- a 1 i i i i i i i ooooo o ooooooo ooooo ooooo I I I I I I I 8 8 8 8 8 o 8 8 I \ `+' / I 8 8 8 8 8 8 \ `-+-' / 8 8 8 ooooo 8oooo `-__|__-' 8 8 8 8 8 | 8 o 8 8 o 8 8 ------+------ ooooo 8oooooo ooo8ooo ooooo 8 Welcome to GNU CLISP 2.49.50 (2017-03-19) <http://clisp.org/> Copyright (c) Bruno Haible, Michael Stoll 1992, 1993 Copyright (c) Bruno Haible, Marcus Daniels 1994-1997 Copyright (c) Bruno Haible, Pierpaolo Bernardi, Sam Steingold 1998 Copyright (c) Bruno Haible, Sam Steingold 1999-2000 Copyright (c) Sam Steingold, Bruno Haible 2001-2010 Type :h and hit Enter for context help. ;; Wrote the memory image into foo.exe (9,653,804 bytes) Bytes permanently allocated: 89,504 Bytes currently in use: 1,863,336 Bytes available until next GC: 102,584 1863336 ; 102584 ; 89504 ; 1 ; 71216 ; 15000 Bye. test "`./foo b | tr -d '\r'`" = '("b")' || exit 1 test "`./foo b 2 | tr -d '\r'`" = '("b" "2")' || exit 1 ls -l lisp.exe lispinit.mem foo foo.mem -rwxr-xr-x 1 bruno None 9653804 Mar 21 12:30 foo -rw-r--r-- 1 bruno None 1953012 Mar 21 12:30 foo.mem -rwxr-xr-x 1 bruno None 7699552 Mar 21 12:26 lisp.exe -rw-r--r-- 1 bruno None 1964412 Mar 21 12:28 lispinit.mem rm -f foo foo.mem ================================= 64-bit ================================= ./lisp.exe -B . -E UTF-8 -Emisc 1:1 -Epathname 1:1 -norc -M lispinit.mem -x "(saveinitmem \"foo\" :executable t :norc t)" i i i i i i i ooooo o ooooooo ooooo ooooo I I I I I I I 8 8 8 8 8 o 8 8 I \ `+' / I 8 8 8 8 8 8 \ `-+-' / 8 8 8 ooooo 8oooo `-__|__-' 8 8 8 8 8 | 8 o 8 8 o 8 8 ------+------ ooooo 8oooooo ooo8ooo ooooo 8 Welcome to GNU CLISP 2.49.50 (2017-03-19) <http://clisp.org/> Copyright (c) Bruno Haible, Michael Stoll 1992, 1993 Copyright (c) Bruno Haible, Marcus Daniels 1994-1997 Copyright (c) Bruno Haible, Pierpaolo Bernardi, Sam Steingold 1998 Copyright (c) Bruno Haible, Sam Steingold 1999-2000 Copyright (c) Sam Steingold, Bruno Haible 2001-2010 Type :h and hit Enter for context help. ;; Wrote the memory image into foo.exe (12,371,952 bytes) Bytes permanently allocated: 151,088 Bytes currently in use: 2,896,280 Bytes available until next GC: 1,443,592 2896280 ; 1443592 ; 151088 ; 1 ; 102728 ; 15000 Bye. ./foo -x "(setq zz 10) (saveinitmem \"foo\")" i i i i i i i ooooo o ooooooo ooooo ooooo I I I I I I I 8 8 8 8 8 o 8 8 I \ `+' / I 8 8 8 8 8 8 \ `-+-' / 8 8 8 ooooo 8oooo `-__|__-' 8 8 8 8 8 | 8 o 8 8 o 8 8 ------+------ ooooo 8oooooo ooo8ooo ooooo 8 Welcome to GNU CLISP 2.49.50 (2017-03-19) <http://clisp.org/> Copyright (c) Bruno Haible, Michael Stoll 1992, 1993 Copyright (c) Bruno Haible, Marcus Daniels 1994-1997 Copyright (c) Bruno Haible, Pierpaolo Bernardi, Sam Steingold 1998 Copyright (c) Bruno Haible, Sam Steingold 1999-2000 Copyright (c) Sam Steingold, Bruno Haible 2001-2010 Type :h and hit Enter for context help. 10 ;; Wrote the memory image into foo.mem (4,310,848 bytes) Bytes permanently allocated: 151,088 Bytes currently in use: 2,895,768 Bytes available until next GC: 1,443,336 2895768 ; 1443336 ; 151088 ; 1 ; 24232 ; 16000 Bye. ./foo -norc -M foo.mem -x zz i i i i i i i ooooo o ooooooo ooooo ooooo I I I I I I I 8 8 8 8 8 o 8 8 I \ `+' / I 8 8 8 8 8 8 \ `-+-' / 8 8 8 ooooo 8oooo `-__|__-' 8 8 8 8 8 | 8 o 8 8 o 8 8 ------+------ ooooo 8oooooo ooo8ooo ooooo 8 Welcome to GNU CLISP 2.49.50 (2017-03-19) <http://clisp.org/> Copyright (c) Bruno Haible, Michael Stoll 1992, 1993 Copyright (c) Bruno Haible, Marcus Daniels 1994-1997 Copyright (c) Bruno Haible, Pierpaolo Bernardi, Sam Steingold 1998 Copyright (c) Bruno Haible, Sam Steingold 1999-2000 Copyright (c) Sam Steingold, Bruno Haible 2001-2010 Type :h and hit Enter for context help. 10 Bye. ./lisp.exe -B . -E UTF-8 -Emisc 1:1 -Epathname 1:1 -norc -M lispinit.mem -x "(saveinitmem \"foo\" :executable t :norc t :quiet t :init-function (lambda () (prin1 *args*) (exit)))" -- a 1 i i i i i i i ooooo o ooooooo ooooo ooooo I I I I I I I 8 8 8 8 8 o 8 8 I \ `+' / I 8 8 8 8 8 8 \ `-+-' / 8 8 8 ooooo 8oooo `-__|__-' 8 8 8 8 8 | 8 o 8 8 o 8 8 ------+------ ooooo 8oooooo ooo8ooo ooooo 8 Welcome to GNU CLISP 2.49.50 (2017-03-19) <http://clisp.org/> Copyright (c) Bruno Haible, Michael Stoll 1992, 1993 Copyright (c) Bruno Haible, Marcus Daniels 1994-1997 Copyright (c) Bruno Haible, Pierpaolo Bernardi, Sam Steingold 1998 Copyright (c) Bruno Haible, Sam Steingold 1999-2000 Copyright (c) Sam Steingold, Bruno Haible 2001-2010 Type :h and hit Enter for context help. ;; Wrote the memory image into foo.exe (12,371,952 bytes) Bytes permanently allocated: 151,088 Bytes currently in use: 2,897,336 Bytes available until next GC: 1,444,120 2897336 ; 1444120 ; 151088 ; 1 ; 107632 ; 0 Bye. test "`./foo b | tr -d '\r'`" = '("b")' || exit 1 test "`./foo b 2 | tr -d '\r'`" = '("b" "2")' || exit 1 ls -l lisp.exe lispinit.mem foo foo.mem -rwxr-xr-x 1 bruno None 12371952 Mar 21 12:30 foo -rw-r--r-- 1 bruno None 4310848 Mar 21 12:30 foo.mem -rwxr-xr-x 1 bruno None 8036794 Mar 21 12:26 lisp.exe -rw-r--r-- 1 bruno None 4310888 Mar 21 12:27 lispinit.mem rm -f foo foo.mem |