[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