Build on windows is broken
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
SBCL |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
Build of sbcl-1.4.10 by sbcl-1.4.09 fails during make-target-2.sh
Windows 10 x86-64 up to date
Msys2 up to date
$ sbcl --version
SBCL 1.4.9
$ sbcl --no-userinit --no-sysinit
* *features*
(:X86-64 :64-BIT :64-BIT-REGISTERS :ALIEN-CALLBACKS :ANSI-CL :ASH-RIGHT-VOPS
:C-STACK-
:COMPLEX-
:GENCGC :IEEE-FLOATING-
:LITTLE-ENDIAN :MEMORY-
:OS-PROVIDES-PUTWC :PACKAGE-
:RAW-SIGNED-WORD :SB-DOC :SB-DYNAMIC-CORE :SB-EVAL :SB-FUTEX :SB-LDB
:SB-PACKAGE-LOCKS :SB-QSHOW :SB-SAFEPOINT :SB-SAFEPOINT-
:SB-SOURCE-
:STACK-
:STACK-
:STACK-
:UNDEFINED-
*
$ uname -a
MINGW64_NT-10.0 firefly 2.10.0(0.325/5/3) 2018-02-09 15:25 x86_64 Msys
$ gcc --version
gcc.exe (Rev1, Built by MSYS2 project) 8.2.0
$ sh make.sh --prefix=/d/sbcl 2>&1 | tee log
[skipped]
COLD-INIT... (Length(TLFs)= 13424)
Disassembler: 91 printers, 40 prefilters, 4 labelers
debugger invoked on a SB-C::INPUT-
#<THREAD "main thread" RUNNING {1002581033}>:
READ error during LOAD:
couldn't read from #<SB-INT:
???????? ? ???????.
(in form starting at line: 1, column: NIL, position: 0)
Type HELP for debugger help, or (SB-EXT:EXIT) to exit from SBCL.
restarts (invokable by number or by possibly-
0: [ABORT ] Abort loading file "D:\\ws\
1: Abort building SBCL.
2: [CONTINUE] Ignore runtime option --eval "(sb-fasl:
3: Skip rest of --eval and --load options.
4: Skip to toplevel READ/EVAL/PRINT loop.
5: [EXIT ] Exit SBCL (calling #'EXIT, killing the process).
(SB-C:COMPILER-
0]
The error comes from C runtime: "Access denied" while reading from warm.lisp
$ cat test.lisp
(with-open-file (f "file")
(print (read f)))
$ cat file
123
$ which sbcl
/d/sbcl/bin/sbcl
$ sbcl --no-userinit --no-sysinit --load test.lisp --quit
123
$ ./src/runtime/sbcl --core output/
This is SBCL 1.4.10, an implementation of ANSI Common Lisp.
More information about SBCL is available at <http://
SBCL is free software, provided as is, with absolutely no warranty.
It is mostly in the public domain; some portions are provided under
BSD-style licenses. See the CREDITS and COPYING files in the
distribution for more information.
WARNING: the Windows port is fragile, particularly for multithreaded
code. Unfortunately, the development team currently lacks the time
and resources this platform demands.
COLD-INIT... (Length(TLFs)= 13424)
Disassembler: 91 printers, 40 prefilters, 4 labelers
debugger invoked on a SB-C::INPUT-
#<THREAD "main thread" RUNNING {1002581033}>:
READ error during LOAD:
couldn't read from #<SB-INT:
???????? ? ???????.
(in form starting at line: 1, column: NIL, position: 0)
Type HELP for debugger help, or (SB-EXT:EXIT) to exit from SBCL.
restarts (invokable by number or by possibly-
0: [ABORT ] Abort loading file "D:\\ws\
1: [CONTINUE] Ignore runtime option --load "test.lisp".
2: Skip rest of --eval and --load options.
3: Skip to toplevel READ/EVAL/PRINT loop.
4: [EXIT ] Exit SBCL (calling #'EXIT, killing the process).
(SB-C:COMPILER-
0]
Changed in sbcl: | |
status: | Fix Committed → Fix Released |
Update. It's not 1.4.10 problem.
Builds of older sbcl versions lead to the same problem. I also tried older versions of sbcl for bootstrap (including downloaded from sbcl.org). Also some older msys+mingw-w64 setup (instead of msys2) with older gcc.
So it looks like current Windows update problem. The way it interopates with gcc runtime or the way sbcl cold is built. Another guilty part would be my env setup (.bashrc or PATH or anything) -- unlikely -- I don't recall changing anything.