[cmucl-help] 19c alpha [Was Re: CMUCL 18c building on tru64 5.1]

Fausto Saporito fausto.saporito at gmail.com
Tue Sep 9 08:09:03 UTC 2014


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
;

In compile-compiler.log (in the alpha-target directory) I have this warning:
; Warning: This function is undefined:
;   LISP::COLD-REGISTER-FOREIGN-LINKAGE
;

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: ..
;
; 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


More information about the cmucl-help mailing list