[cmucl-help] CMUCL 18c building on tru64 5.1

Fausto Saporito fausto.saporito at gmail.com
Mon Sep 1 09:56:52 UTC 2014


Hello,

please could you explain me the difference between alpha-target and
alpha-cross ?
I understand the alpha-target will contain the lisp.core (for alpha)
and the frontend files to be compiled under OSF1.
But alpha-cross ?

I tried to use, also, a cross compile file x86->ppc (with some obvious
modifications).

I have some serious errors, maybe due to some changes not ported to alpha tree:

alpha/vm

Error in function META-SC-OR-LOSE:
   DESCRIPTOR-REG is not a defined storage class.

alpha/insts

    ZERO is not a defined storage class.

alpha/move

    NULL is not a defined storage class.

alpha/float

    FP-SINGLE-ZERO is not a defined storage class.


alpha/type-vops

SAP-REG is not a defined storage class.
MOVE-FROM-SAP is not the name of a defined VOP.
SAP-MOVE is not the name of a defined VOP.
MOVE-TO-SAP is not the name of a defined VOP.
UNSIGNED-REG is not a defined storage class.
 ANY-REG is not a defined storage class.

alpha/system

  NIL is not of type NEW-ASSEM::ASSEM-PARAMS

regards,
Fausto


2014-09-01 8:14 GMT+02:00 Fausto Saporito <fausto.saporito at gmail.com>:
> Hello Ray,
>
> yes, I'm using 20d to cross-build 20d.
> I read at the top of the sparc cross.lisp file, it should be broken :-)
>
> Attached there're all the log files and the script.
>
> I read some errors about external symbols that are not external in
> ALPHA package, maybe this is related to some definitions in
> cross.lisp, but I'm not sure about it.
>
> thanks for you help
> Fausto
>
>
> 2014-09-01 5:11 GMT+02:00 Raymond Toy <toy.raymond at gmail.com>:
>>
>>
>>
>> On Sun, Aug 31, 2014 at 1:13 PM, Fausto Saporito <fausto.saporito at gmail.com>
>> wrote:
>>>
>>> Hello all,
>>>
>>> I'm trying to do cross-platform cross-compilation for Alpha _OSF1.
>>> I'm starting with NetBSD amd64 with cmucl 20d.
>>>
>>> so I did:
>>>
>>> 1) bin/create-target.sh alpha-cross alpha_osf1 alpha_osf1
>>> 2) bin/create-target.sh alpha-target alpha_osf1 alpha_osf1
>>> 3) created cross.lisp file using x86->sparc cross-compiling as example.
>>> 4) bin/cross-build-world.sh alpha-target alpha-cross cross.lisp
>>
>>
>> This all looks right.  But if you are trying to build 20d for alpha, you
>> have to be sure to check out the 20d sources.
>>
>>>
>>>
>>> but I have errors either in alpha-cross either in alpha-target.
>>> I noticed even if I specified to exclude sse2 (for example) it tries
>>> to compile it (???).
>>>
>>> I'm quite sure my cross.lisp is wrong, but really I don't know how to
>>> modify it.
>>
>>
>> It's possible the x86->sparc script is wrong. I haven't done such a
>> cross-compile in quite a while.
>>
>> Can you post the cross script you're using? And also the error messages that
>> you see?
>>
>> Ray
>>
>>>
>>>
>>> regards,
>>> Fausto
>>>
>>> 2014-08-31 19:34 GMT+02:00 Fausto Saporito <fausto.saporito at gmail.com>:
>>> > Hello Raymond,
>>> >
>>> > so, if I understood well, you mean using 20d (under Linux, for
>>> > example) and cross compile 18b for alpha ?
>>> >
>>> > regards,
>>> > Fausto
>>> >
>>> >
>>> > 2014-08-31 19:00 GMT+02:00 Raymond Toy <toy.raymond at gmail.com>:
>>> >>
>>> >>
>>> >>
>>> >> On Sat, Aug 30, 2014 at 2:57 PM, Fausto Saporito
>>> >> <fausto.saporito at gmail.com>
>>> >> wrote:
>>> >>>
>>> >>> Hello,
>>> >>>
>>> >>> ok. I built 18a with 18a.
>>> >>> Now, if I understood well the process to compile 18b is quite
>>> >>> different... correct ?
>>> >>> So, how can i crosscompile ?
>>> >>
>>> >>
>>> >> I did a little digging and it seems there's not a lot of information
>>> >> about
>>> >> how to go from 18a to 18b. I can't even find any release notes on this.
>>> >>
>>> >> As for cross-compilation, the current notes are at
>>> >> http://trac.common-lisp.net/cmucl/wiki/BuildingCmucl.  These are for
>>> >> more
>>> >> recent versions, so I don't know how they would apply to 18b.  The
>>> >> general
>>> >> approach hasn't really changed, but the scripts themselves didn't exist
>>> >> in
>>> >> 18b.  On the other hand, the scripts just encapsulate what people were
>>> >> doing
>>> >> by hand in an ad hoc way anyway.
>>> >>
>>> >> If you can, it might be easier to try to cross-compile from the 20d
>>> >> release.
>>> >> That is the last version that supported 8-bit (non-unicode) chars.  20e
>>> >> and
>>> >> later require unicode which you'd probably have to update the backend
>>> >> to
>>> >> support 16-bit chars.
>>> >>
>>> >> Good luck. Let us know how it goes.
>>> >>
>>> >>>
>>> >>>
>>> >>> thanks,
>>> >>> Fausto
>>> >>>
>>> >>>
>>> >>> 2014-08-30 23:07 GMT+02:00 Fausto Saporito
>>> >>> <fausto.saporito at gmail.com>:
>>> >>> > Hello Carl,
>>> >>> >
>>> >>> > I didn't check about 18a with 18a.
>>> >>> > So I'll start with this and I hope it will be ok.
>>> >>> >
>>> >>> > thanks,
>>> >>> > Fausto
>>> >>> >
>>> >>> >
>>> >>> > 2014-08-30 23:02 GMT+02:00 Carl Shapiro <carl.shapiro at gmail.com>:
>>> >>> >> Glad to hear that you have gotten past the assembler issues.  Have
>>> >>> >> you
>>> >>> >> verified that you can compile an 18a with 18a in your environment?
>>> >>> >> From
>>> >>> >> there, to compile an 18c from 18a is straight forward but it will
>>> >>> >> take
>>> >>> >> a
>>> >>> >> couple of extra steps.  Most likely, you might have to go from 18a
>>> >>> >> ->
>>> >>> >> 18b ->
>>> >>> >> 18c by way of two cross compilations.  If you can describe a little
>>> >>> >> bit
>>> >>> >> more
>>> >>> >> about the process you are taking, I might be able to help you with
>>> >>> >> this.
>>> >>> >>
>>> >>> >>
>>> >>> >> On Sat, Aug 30, 2014 at 1:40 PM, Fausto Saporito
>>> >>> >> <fausto.saporito at gmail.com>
>>> >>> >> wrote:
>>> >>> >>>
>>> >>> >>> Sorry... I press too early the SEND button :)
>>> >>> >>>
>>> >>> >>> Now the problem is during the compile lisp phase.
>>> >>> >>> I have some errors in
>>> >>> >>>
>>> >>> >>> 1) code/struct
>>> >>> >>>
>>> >>> >>> Error in function FIND-CLASS:  Class not yet defined:
>>> >>> >>>   LISP-STREAM
>>> >>> >>>
>>> >>> >>> 2) code/error
>>> >>> >>>
>>> >>> >>> Error: (during macroexpansion)
>>> >>> >>> Error in %COERCE-TO-FUNCTION:  the function ORDER-LAYOUT-INHERITS
>>> >>> >>> is
>>> >>> >>> undefined.
>>> >>> >>>
>>> >>> >>> 2) code/class
>>> >>> >>>
>>> >>> >>> Error in function EXPORT:  Exporting these symbols from the KERNEL
>>> >>> >>> package:
>>> >>> >>> (STD-COMPUTE-CLASS-PRECEDENCE-LIST)
>>> >>> >>> results in name conflicts with these packages:
>>> >>> >>> CONDITIONS
>>> >>> >>>
>>> >>> >>> 3) code/hash
>>> >>> >>>
>>> >>> >>> Error in function KERNEL::VALUES-SIMPLE-SUBTYPEP-TYPE-METHOD:
>>> >>> >>>    Subtypep is illegal on this type:
>>> >>> >>>   (VALUES BASE-STRING &REST T)
>>> >>> >>>
>>> >>> >>> and others...
>>> >>> >>>
>>> >>> >>> So maybe 18a is too old to compile 18c , or maybe I'm doing
>>> >>> >>> something
>>> >>> >>> wrong.
>>> >>> >>>
>>> >>> >>> PS
>>> >>> >>> i'm using cmucl 18a (downloaded from the web site... unfortunately
>>> >>> >>> 18b
>>> >>> >>> tar file is corrupted).
>>> >>> >>>
>>> >>> >>> 2014-08-30 22:31 GMT+02:00 Fausto Saporito
>>> >>> >>> <fausto.saporito at gmail.com>:
>>> >>> >>> > Hello Carl,
>>> >>> >>> >
>>> >>> >>> > I found a possible fix.
>>> >>> >>> > The problem is in the ".end" statement.
>>> >>> >>> >
>>> >>> >>> > this is the code
>>> >>> >>> >
>>> >>> >>> >         .text
>>> >>> >>> >         .globl  undefined_tramp
>>> >>> >>> >         .ent    undefined_tramp_offset
>>> >>> >>> > undefined_tramp = /* ###
>>> >>> >>> > undefined_tramp_offset-call_into_lisp_LRA*/
>>> >>> >>> > 0x140+call_
>>> >>> >>> > into_lisp_LRA_page
>>> >>> >>> > undefined_tramp_offset:
>>> >>> >>> >         call_pal PAL_gentrap
>>> >>> >>> >         .long    10
>>> >>> >>> >         .byte    4
>>> >>> >>> >         .byte    23
>>> >>> >>> >         .byte    254
>>> >>> >>> >         .byte    (0xe0 + sc_DescriptorReg)
>>> >>> >>> >         .byte    2
>>> >>> >>> >         .align 2
>>> >>> >>> >         .end    undefined_tramp
>>> >>> >>> >
>>> >>> >>> > now changing into ".end   undefined_tramp_offset" it's ok.
>>> >>> >>> > I hope this is the correct fix.
>>> >>> >>> >
>>> >>> >>> >
>>> >>> >>> > 2014-08-30 20:18 GMT+02:00 Carl Shapiro
>>> >>> >>> > <carl.shapiro at gmail.com>:
>>> >>> >>> >> It has been a while, but I suspect this can be made to work.
>>> >>> >>> >>
>>> >>> >>> >> Have you been able to isolate the specific lines of code that
>>> >>> >>> >> are
>>> >>> >>> >> causing
>>> >>> >>> >> the error?  It looks like something is going wrong on the last
>>> >>> >>> >> lines of
>>> >>> >>> >> the
>>> >>> >>> >> undefined_tramp and closure_trap routines but one cannot be
>>> >>> >>> >> certain
>>> >>> >>> >> if
>>> >>> >>> >> the
>>> >>> >>> >> error is exactly there, or in lines above.
>>> >>> >>> >>
>>> >>> >>> >> I would try commenting out those two routines an seeing if the
>>> >>> >>> >> file
>>> >>> >>> >> assembles.  If that works, I would binary search for the exact
>>> >>> >>> >> source
>>> >>> >>> >> line
>>> >>> >>> >> of an error through one of those routines and then the other.
>>> >>> >>> >> You
>>> >>> >>> >> could
>>> >>> >>> >> also approach this in the other direction, commenting out all
>>> >>> >>> >> of
>>> >>> >>> >> the
>>> >>> >>> >> other
>>> >>> >>> >> routines in the file and adding things back until you find and
>>> >>> >>> >> error.
>>> >>> >>> >>
>>> >>> >>> >> Also, this file make use of C pre-processor macros defined by
>>> >>> >>> >> internals.h.
>>> >>> >>> >> Are you building with a valid internals.h?
>>> >>> >>> >>
>>> >>> >>> >>
>>> >>> >>> >> On Sat, Aug 30, 2014 at 4:42 AM, Fausto Saporito
>>> >>> >>> >> <fausto.saporito at gmail.com>
>>> >>> >>> >> wrote:
>>> >>> >>> >>>
>>> >>> >>> >>> Hello all,
>>> >>> >>> >>>
>>> >>> >>> >>> i'm trying to build CMUCL 18c under Tru64 5.1 using Digital C
>>> >>> >>> >>> compiler
>>> >>> >>> >>> and assembler.
>>> >>> >>> >>> I have this error compiling alpha-assem.s
>>> >>> >>> >>>
>>> >>> >>> >>> as -g -Dosf1 -Dalpha
>>> >>> >>> >>> -I/usr/users/fausap/wrk/CMUCL/src/18c/lisp
>>> >>> >>> >>> -o
>>> >>> >>> >>> alpha-assem.o alpha-assem.s
>>> >>> >>> >>> alpha-assem.s(242) : error : syntax error : last token was
>>> >>> >>> >>> 'undefined_tramp'
>>> >>> >>> >>> alpha-assem.s(256) : error : syntax error : last token was
>>> >>> >>> >>> 'closure_tramp'
>>> >>> >>> >>> gmake: *** [alpha-assem.o] Error 1
>>> >>> >>> >>>
>>> >>> >>> >>> I know this is quite old version and unsupported arch, but do
>>> >>> >>> >>> you
>>> >>> >>> >>> know
>>> >>> >>> >>> is there's a patch to fix this error ?
>>> >>> >>> >>>
>>> >>> >>> >>> thanks a lot,
>>> >>> >>> >>> Fausto
>>> >>> >>> >>> _______________________________________________
>>> >>> >>> >>> cmucl-help mailing list
>>> >>> >>> >>> cmucl-help at cmucl.cons.org
>>> >>> >>> >>> http://lists.zs64.net/mailman/listinfo/cmucl-help
>>> >>> >>> >>
>>> >>> >>> >>
>>> >>> >>
>>> >>> >>
>>> >>> _______________________________________________
>>> >>> cmucl-help mailing list
>>> >>> cmucl-help at cmucl.cons.org
>>> >>> http://lists.zs64.net/mailman/listinfo/cmucl-help
>>> >>
>>> >>
>>
>>


More information about the cmucl-help mailing list