From: Kevin R. <ke...@ro...> - 2003-09-16 20:42:38
|
Wherease running sbcl working fine on my Alpha system using a Debian Sarge chroot, it fails on Debian Sid. I'm suspicious of glibc 2.3.2 [which is also troubling ppc]. I attempted cross-compilation on i386 per Christophe's suggestion. make-target-1.sh fails on the Alpha as below: Thread model: posix gcc version 3.3.2 20030908 (Debian prerelease) /usr/lib/gcc-lib/alpha-linux/3.3.2/collect2 --eh-frame-hdr -m elf64alpha -O1 -e xport-dynamic -dynamic-linker /lib/ld-linux.so.2 -o sbcl /usr/lib/gcc-lib/alpha- linux/3.3.2/../../../crt1.o /usr/lib/gcc-lib/alpha-linux/3.3.2/../../../crti.o / usr/lib/gcc-lib/alpha-linux/3.3.2/crtbegin.o -L/usr/lib/gcc-lib/alpha-linux/3.3. 2 -L/usr/lib/gcc-lib/alpha-linux/3.3.2/../../.. -T ld-script.alpha-linux alloc.o backtrace.o breakpoint.o coreparse.o dynbind.o gc-common.o globals.o interr.o i nterrupt.o monitor.o parse.o print.o purify.o regnames.o run-program.o runtime.o save.o search.o thread.o time.o util.o validate.o vars.o wrap.o alpha-arch.o al pha-assem.o ldso-stubs.o linux-os.o alpha-linux-os.o os-common.o cheneygc.o -ldl -lm -lgcc -lgcc_eh -lc -lgcc -lgcc_eh /usr/lib/gcc-lib/alpha-linux/3.3.2/crtend .o /usr/lib/gcc-lib/alpha-linux/3.3.2/../../../crtn.o /usr/lib/libc_nonshared.a(elf-init.oS)(.text+0x2c): In function `__libc_csu_init ': : undefined reference to `__init_array_start' /usr/lib/libc_nonshared.a(elf-init.oS)(.text+0x30): In function `__libc_csu_init ': : undefined reference to `__init_array_end' /usr/lib/libc_nonshared.a(elf-init.oS)(.text+0x34): In function `__libc_csu_init ': : undefined reference to `__init_array_start' /usr/lib/libc_nonshared.a(elf-init.oS)(.text+0x38): In function `__libc_csu_init ': : undefined reference to `__init_array_end' /usr/lib/libc_nonshared.a(elf-init.oS)(.text+0xa8): In function `__libc_csu_fini ': : undefined reference to `__fini_array_start' /usr/lib/libc_nonshared.a(elf-init.oS)(.text+0xac): In function `__libc_csu_fini ': : undefined reference to `__fini_array_end' /usr/lib/libc_nonshared.a(elf-init.oS)(.text+0xb4): In function `__libc_csu_fini ': : undefined reference to `__fini_array_start' /usr/lib/libc_nonshared.a(elf-init.oS)(.text+0xb8): In function `__libc_csu_fini ': : undefined reference to `__fini_array_end' collect2: ld returned 1 exit status make: *** [sbcl] Error 1 -- Kevin Rosenberg ke...@ro... |
From: Daniel B. <da...@te...> - 2003-09-17 14:45:18
|
Kevin Rosenberg <ke...@ro...> writes: > I attempted cross-compilation on i386 per Christophe's suggestion. > make-target-1.sh fails on the Alpha as below: Try commenting out the instruction to use the special linker script. =2DLINKFLAGS =3D -dynamic -v -g -Wl,-T -Wl,ld-script.alpha-linux +LINKFLAGS =3D -dynamic -v -g # -Wl,-T -Wl,ld-script.alpha-linux This will cause the thing to link. I can't tell if it works, though, because the binary I did the host compile with (built against an older glibc) doesn't work in 2.3.2 (dies in genesis) and I don't have things set up for crosscompile right now. Notes sumamrised from irc monologue yesterday 1) Using glibc 2.3.2 with an sbcl compiled on an earlier version, it blows up fairly quickly with a string of 10-15 "mprotect: Invalid argument" messages 2) This is due to the auto_gc_trigger being set to something implausible by alloc_sap in interrupt_handle_now with likewise implausible dynamic_space_free_pointer 3) interrupt_handle_now is being called due to a SIGSEGV in __open_catalog() 4) but the call to __open_catalog appears to be wrong itself: (a) the C backtrace has nothing in it, and (b) if gdb is correctly stopping at all the breakpoints I inserted, we're actually jumping into the _middle_ of __open_catalog, not the start The lisp backtrace from ldb at this point is <Frame 0x77fd08f0, CODE: ???, <no LRA>, PC: ???> <Frame 0x77fd08d0, CODE: 0x2017114F, top level local call SB!C::MAKE-TN, LR= A: 0x20171217, PC: 0x88> <Frame 0x77fd0890, CODE: 0x2049E277, top level local call SB!C:MAKE-LOAD-TI= ME-CONSTANT-TN, LRA: 0x2049e477, PC: 0x190> Having breakpointed the start and end of call_into_c, I can also confirm that (a) this random jump is hapening from Lisp code, not C code, (b) it doesn't happen during the course of GC. GC appears to work normally, and the ucontext/sigcontext all looks plausible, so it's not the same problem as PPC I'm mostly not thinking about it right now, being out of ideas. It sounds like it might be something in GC rewriting a return address or stack frame or something causing a jump into nowhere, but I haven't thought much about where to start looking yet. I'll probably try disabling GC hooks just to see if that makes a difference. =2Ddan =2D-=20 http://www.cliki.net/ - Link farm for free CL-on-Unix resources=20 |
From: Kevin R. <ke...@ro...> - 2003-09-17 15:41:23
|
Daniel Barlow wrote: > Try commenting out the instruction to use the special linker script. > [...] > This will cause the thing to link. I can't tell if it works, Yes, make-target-1.sh then links on the alpha. > glibc) doesn't work in 2.3.2 (dies in genesis) and I don't have things > set up for crosscompile right now. Notes sumamrised from irc > monologue yesterday Then, when I then run make-host-2.sh on the i386, I get the messages: [...] ; Loading #p"/data/sbcl-alpha-build/obj/from-host/src/code/show.lisp-obj". Error in batch processing: Error in function LISP::CLOSED-FLAME: #<Stream for file "/data/sbcl-alpha-build/obj/from-host/src/code/show.lisp-obj"> is closed. [Condition of type SIMPLE-ERROR] Debug (type H for help) (LISP::CLOSED-FLAME #<Stream for file "/data/sbcl-alpha-build/obj/from-host/src/code/show.lisp-obj">) Source:=20 ; File: target:code/stream.lisp ; File has been modified since compilation: ; target:code/stream.lisp ; Using form offset instead of character position. (ERROR "~S is closed." STREAM) 0] //testing for consistency of first and second GENESIS passes diff: output/genesis-2: No such file or directory error: header files do not match between first and second GENESIS --=20 Kevin Rosenberg ke...@ro... |
From: Christophe R. <cs...@ca...> - 2003-09-17 15:52:43
|
Kevin Rosenberg <ke...@ro...> writes: > Daniel Barlow wrote: >> Try commenting out the instruction to use the special linker script. >> [...] >> This will cause the thing to link. I can't tell if it works, > > Yes, make-target-1.sh then links on the alpha. > >> glibc) doesn't work in 2.3.2 (dies in genesis) and I don't have things >> set up for crosscompile right now. Notes sumamrised from irc >> monologue yesterday > > Then, when I then run make-host-2.sh on the i386, I get the messages: > > [...] > ; Loading > #p"/data/sbcl-alpha-build/obj/from-host/src/code/show.lisp-obj". > Error in batch processing: > > > Error in function LISP::CLOSED-FLAME: > #<Stream for file > "/data/sbcl-alpha-build/obj/from-host/src/code/show.lisp-obj"> is closed. > [Condition of type SIMPLE-ERROR] That really looks like you've upgraded your cmucl since doing make-host-1.sh... or else some other compiler/fasl mismatch. Christophe -- http://www-jcsu.jesus.cam.ac.uk/~csr21/ +44 1223 510 299/+44 7729 383 757 (set-pprint-dispatch 'number (lambda (s o) (declare (special b)) (format s b))) (defvar b "~&Just another Lisp hacker~%") (pprint #36rJesusCollegeCambridge) |
From: Kevin R. <ke...@ro...> - 2003-09-17 15:59:04
|
Christophe Rhodes wrote: > That really looks like you've upgraded your cmucl since doing > make-host-1.sh... or else some other compiler/fasl mismatch. I don't use cmucl for building sbcl. I'm using SBCL 0.8.3.68 on the i386 and sbcl 0.8.3 on the alpha. However, I'll do a distclean.sh and try again. --=20 Kevin Rosenberg ke...@ro... |
From: Kevin R. <ke...@ro...> - 2003-09-17 16:17:15
|
Christophe Rhodes wrote: > That really looks like you've upgraded your cmucl since doing > make-host-1.sh... or else some other compiler/fasl mismatch. I forgot to set SBCL_XC_HOST before starting make-host-2.sh. With that set to 'sbcl --userinit /dev/null', make-host-2.sh ends with: beginning GENESIS, creating core "output/cold-sbcl.core" WARNING: ignoring unrecognized line "w _Jv_RegisterClasses" in src/runtime/sbcl.nm WARNING: ignoring unrecognized line "w __gmon_start__" in src/runtime/sbcl.nm obj/from-xc/src/code/show.lisp-obj debugger invoked on condition of type TYPE-ERROR: The value 4831919856 is not of type (UNSIGNED-BYTE 32). Within the debugger, you can type HELP for help. At any command prompt (within the debugger or not) you can type (SB-EXT:QUIT) to terminate the SBCL executable. The condition which caused the debugger to be entered is bound to SB-DEBUG:*DEBUG-CONDITION*. You can suppress this message by clearing SB-DEBUG:*DEBUG-BEGINNER-HELP-P*. restarts (invokable by number or by possibly-abbreviated name): 0: [ABORT ] Reduce debugger level (leaving debugger, returning to toplevel). 1: [TOPLEVEL] Restart at toplevel READ/EVAL/PRINT loop. (SB!FASL::COLD-FOP-FOREIGN-FIXUP) 0]=20 --=20 Kevin Rosenberg ke...@ro... |