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 |