[cmucl-help] 19c alpha [Was Re: CMUCL 18c building on tru64 5.1]
Raymond Toy
toy.raymond at gmail.com
Tue Sep 9 16:39:14 UTC 2014
On Tue, Sep 9, 2014 at 1:09 AM, Fausto Saporito <fausto.saporito at gmail.com>
wrote:
> 2014-09-09 9:07 GMT+02:00 Carl Shapiro <carl.shapiro at gmail.com>:
> >
> > On Mon, Sep 8, 2014 at 11:50 PM, Fausto Saporito <
> fausto.saporito at gmail.com>
> > wrote:
> >>
> >> > Can we find out what is in a1 at the time of the crash? That should
> be
> >> > the
> >> > jump target. I am curious if it is 0, which it certainly seems like,
> >> > but we
> >> > have no idea what the debugger might be doing behind your back. If
> the
> >> > lisp.nm file does not contain an address for debug_print, genesis will
> >>
> >> this is the line in lisp.nm
> >>
> >> 0x000000120152ec T debug_print
> >
> >
> > Here is some of what my lisp.nm says for 18a on x86
> >
> > 0804e5a0 T call_into_c
> > ...
> > 0804a940 T debug_print
>
> I have also call_into_c
>
> 0x0000001201b550 T call_into_c
>
> > And here is what the disassembly of %initial-function on 18a looks like
> >
> > * (disassemble 'COMMON-LISP::%INITIAL-FUNCTION)
> >
> > 550E6F88: .ENTRY COMMON-LISP::%INITIAL-FUNCTION() ; (FUNCTION NIL
> > (VALUES ..))
> > 6FA0: POP DWORD PTR [EBP-8]
> > 6FA3: LEA ESP, [EBP-96]
> >
> > 6FA6: TEST ECX, ECX
> > 6FA8: JNE L0
> > 6FAE: MOV EAX, [#x550E6E7C] ; No-arg-parsing entry point
> > 6FB4: PUSH EAX
> > 6FB5: LEA EAX, [#x804A940]
> > 6FBB: CALL #x804E5A0
> >
> > As you can see, debug_print is called indirectly through call_into_c. If
> > either of these functions could not be found in your lisp.nm or, if there
> > was a parsing error, you would see a lot of zeros.
> >
> > What kind of warnings, if any, do you get when you build a kernel.core
> > regarding foreign symbols? Anything like "Ignoring malformed line..." or
> > "Undefined foreign symbol: ..."? You can see a list of these things
> around
> > the definition of load-foreign-symbol-table in
> > compiler/generic/new-genesis.lisp.
>
> no warnings at all
>
> But, in compile-compiler.log, at the end of the file, (in the
> alpha-cross directory) I have these warnings:
>
> ; Warning: These functions are undefined:
> ; LISP::COLD-REGISTER-FOREIGN-LINKAGE ALPHA:FIXUP-CODE-OBJECT
> ALPHA:SANCTIFY-F
> OR-EXECUTION
>
I see similar warnings when cross-compiling to sparc.
> ;
>
> In compile-compiler.log (in the alpha-target directory) I have this
> warning:
> ; Warning: This function is undefined:
> ; LISP::COLD-REGISTER-FOREIGN-LINKAGE
> ;
>
This might be ok. At least the comment for fop-foriegn-data-fixup in
new-genesis.lisp indicates it might be ok.
>
> but the first of this warning is very strange...
> cold-register-foreign-linkage should be use only if I have
> linkage-table as feature, if I understood well the code
> but I removed that feature...
>
> ... searching in the compile-lisp.log (alpha-target directory), I
> found two errors... but those didn't prevent the creation of
> kernel.core!
>
> ; Comment: $Header: /project/cmucl/cvsroot/src/code/unix.lisp,v 1.107
> 2005/10/10
> 18:46:39 rtoy Exp $
>
> ;
>
> ; Warning: Redefining SWBLK-T to be:
> ; (SIGNED 64),
> ; was
> ; (SIGNED 32)
> ; ;
>
> ; Warning: Redefining SIZE-T to be:
> ; (UNSIGNED 64),
> ; was
> ; (UNSIGNED 32)
> ; ;
>
> ; Error: (during macroexpansion)
> ; Error while parsing arguments to DEFMACRO DEF-ALIEN-TYPE:
> ; Invalid number of elements in:
> ; (TIME-T LONG UNSIGNED-INT)
> ; to satisfy lambda-list: ..
> ; ;
>
> ; Error: (during macroexpansion)
> ; Error while parsing arguments to DEFMACRO DEF-ALIEN-TYPE:
> ; Invalid number of elements in:
> ; (DEV-T INT UNSIGNED-LONG)
> ; to satisfy lambda-list: ..
>
Probably harmless right now but these will eventually need to be fixed.
> ;
> ; Compiling DEFTYPE FILE-OFFSET:
> ; Compiling Top-Level Form:
>
> and at the end of the log file I have:
>
>
> ; Warning: 35235 more uses of undefined type STREAM:FILE-SIMPLE-STREAM.
> ; ;
>
> ; Warning: These functions are undefined:
> ; KERNEL:%SET-SYMBOL-HASH ALPHA::COMPATIBLE-FUNCTION-TYPES-P
> ; ;
>
> ; Warning: This type is undefined:
> ; STREAM:FILE-SIMPLE-STREAM
>
>
> >
> > Also, you can test my theory by providing a better default than 0 for
> > missing undefined symbols like so
> >
> > (defun lookup-foreign-symbol (name)
> > (multiple-value-bind
> > (value found)
> > (gethash name *cold-foreign-symbol-table* #xDEADDEAD)
> > (unless found
> > (warn "Undefined foreign symbol: ~S" name))
> > value))
> >
>
> my definition of such function in new-genesis.lisp is quite different.
> I have the gethash line with nil at the end. Can I modify only that
> value to "DEAD"? :D
>
--
Ray
More information about the cmucl-help
mailing list