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

Fausto Saporito fausto.saporito at gmail.com
Wed Sep 3 11:13:50 UTC 2014


This is trivial .. I suppose.
I'm using standard Tru64 5.1b C compiler, but it seems generates a
Depend file gmake doesn't like too much :-)
I'm using gmake 3.80, is there a mandatory version ?

gmake: Entering directory `/usr/users/fausap/CMU/alpha-target/lisp'
Depends:454: *** missing separator.  Stop.
gmake: Leaving directory `/usr/users/fausap/CMU/alpha-target/lisp'

this code starts at line 454

struct array {
    lispobj header;
    lispobj fill_pointer;
    lispobj fill_pointer_p;
    lispobj elements;
    lispobj data;
    lispobj displacement;
    lispobj displaced_p;
    lispobj dimensions[1];
};

thanks,
Fausto

2014-09-03 11:39 GMT+02:00 Fausto Saporito <fausto.saporito at gmail.com>:
> Ohhhh ... BIG NeWS!
>
> 19c works! Cross compiling was fine.
> Now if I understood well, I have to move all the alpha-target
> directory in Tru64 and recompile... correct ?
> Using src/tools/build-world.sh script ?
>
> thanks
> Fausto
>
>
> 2014-09-03 11:28 GMT+02:00 Fausto Saporito <fausto.saporito at gmail.com>:
>> Hello all,
>>
>> I saw there're some patches for 19c and 19d and I found how to apply them.
>> The question is: how can I update the lisp.core ? Is it needed ? Or do
>> I have to load each time those patches ?
>>
>> thanks,
>> Fausto
>>
>>
>> 2014-09-03 8:41 GMT+02:00 Fausto Saporito <fausto.saporito at gmail.com>:
>>> Hello Ray,
>>>
>>> no luck with 19d. But maybe it has the double-double support too...
>>>
>>> I have the same errors, but instead of sigsegv at the end, I got a
>>> stack overflow:
>>>
>>> Control stack overflow
>>>    [Condition of type STACK-OVERFLOW]
>>>
>>> Restarts:
>>>   0: [CONTINUE] Blow this file
>>>   1:            Return NIL from load of "target:tools/worldcom".
>>>   2: [ABORT   ] Return to Top-Level.
>>>
>>> Debug  (type H for help)
>>>
>>> (YELLOW-ZONE-HIT)
>>> Source:
>>> ; File: target:code/interr.lisp
>>> (ERROR 'STACK-OVERFLOW)
>>>
>>> and in compile-compiler.log I found again a DOUBLE-DOUBLE reference:
>>>
>>> ; Comment: $Header:
>>> /project/cmucl/cvsroot/src/compiler/new-assem.lisp,v 1.34 2004/08/02
>>> 16:04:42 cwang Exp $
>>>
>>> ; Compiling DEFUN SEGMENT-MAP-OUTPUT:
>>>
>>> Bound is not *, a DOUBLE-DOUBLE-FLOAT or a list of a DOUBLE-DOUBLE-FLOAT: 0
>>>
>>> Aborting...
>>>
>>> I'll try with 19c
>>>
>>> 2014-09-03 8:29 GMT+02:00 Fausto Saporito <fausto.saporito at gmail.com>:
>>>> Hello Ray,
>>>>
>>>> I started with 19d, but I have this strange error:
>>>>
>>>> ; Error: (during macroexpansion)
>>>> ;
>>>> ; Error in function META-SC-OR-LOSE:
>>>> ;    DOUBLE-DOUBLE-REG is not a defined storage class.
>>>> ; ;
>>>>
>>>> ; Error: (during macroexpansion)
>>>> ;
>>>> ; Error in function META-SC-OR-LOSE:
>>>> ;    COMPLEX-DOUBLE-DOUBLE-REG is not a defined storage class.
>>>>
>>>> but in 19d there shouldn't be support for DOUBLE-DOUBLE ... correct ?
>>>>
>>>> I'm using 19d binaries to cross-build 19d
>>>>
>>>> 2014-09-03 4:17 GMT+02:00 Raymond Toy <toy.raymond at gmail.com>:
>>>>>
>>>>>
>>>>>
>>>>> On Tue, Sep 2, 2014 at 4:53 PM, Fausto Saporito <fausto.saporito at gmail.com>
>>>>> wrote:
>>>>>>
>>>>>> Hello Raymond,
>>>>>>
>>>>>> thanks for these hints about cross.lisp
>>>>>> I put in the proper section the unwanted feature.
>>>>>>
>>>>>> So, if I force the redefinition of those symbols at the end of
>>>>>> alpha-cross compiling phase, alpha-target starts but I noticed this
>>>>>> error among the others:
>>>>>>
>>>>>> ; File: /home/fausap/CMUCL/git-ver/cmucl/src/code/lispinit.lisp
>>>>>>
>>>>>> ; In: DEFUN SLEEP
>>>>>>
>>>>>> ;   (ERROR 'SIMPLE-TYPE-ERROR
>>>>>> ;          :FORMAT-CONTROL "Invalid argument to SLEEP: ~S.~%~
>>>>>> ;             Must be a non-negative, non-complex number."
>>>>>> ;          :FORMAT-ARGUMENTS ...)
>>>>>> ; Note: Deleting unreachable code.
>>>>>> ;
>>>>>>
>>>>>> DOUBLE-DOUBLE-FLOAT fell through ECASE expression.
>>>>>> Wanted one of (REAL FLOAT OR SINGLE-FLOAT DOUBLE-FLOAT RATIONAL INTEGER).
>>>>>>
>>>>>> it's very strange... I disabled double-double... why I have this error ?
>>>>>
>>>>>
>>>>> I think it's a mismatch between what the cross compiler has and what the
>>>>> host compiler has. I've never figured this out.
>>>>>
>>>>> So, I think it's best to start with a lisp without double-double support.
>>>>>
>>>>> Support for double-double was apparently done by 19e, so your best bet is to
>>>>> do a checkout from 19d.  I think everything that you've done up to now still
>>>>> applies.
>>>>>
>>>>> Once that is done, we can consider adding double-double for alpha. It's
>>>>> relatively easy, but you'll have to write a bunch of vops. They can probably
>>>>> be copied almost verbatim from the sparc or ppc ports with small changes in
>>>>> the actual instructions.
>>>>>
>>>>>>
>>>>>> This is my features list in cross.lisp (I removed extern-alien-name,
>>>>>> fixup, etc... I don't know what they are doing... so maybe I can put
>>>>>> back later)
>>>>>>
>>>>>> ;;; Cross-compile script to build a alpha core using x86 as the
>>>>>> ;;; compiling system.  This needs work!
>>>>>>
>>>>>> (in-package :cl-user)
>>>>>>
>>>>>> ;;; Rename the X86 package and backend so that new-backend does the
>>>>>> ;;; right thing.
>>>>>> (rename-package "X86" "OLD-X86" '("OLD-VM"))
>>>>>> (setf (c:backend-name c:*native-backend*) "OLD-X86")
>>>>>>
>>>>>> (c::new-backend "ALPHA"
>>>>>>    ;; Features to add here
>>>>>>    '(:alpha
>>>>>>      :relative-package-names            ; Relative package names from
>>>>>> Allegro
>>>>>>      :conservative-float-type
>>>>>>      :hash-new
>>>>>>      :random-mt19937                    ; MT-19937 generator
>>>>>>      :cmu                               ; Announce this is CMUCL
>>>>>>      :cmu20 :cmu20b                     ; Current version identifier
>>>>>>      :osf1
>>>>>>      :bsd
>>>>>>      :unix
>>>>>>      )
>>>>>>    ;; Features to remove from current *features* here
>>>>>>    '(:sparc-v8 :sparc-v7 :sparc-v9 :sparc
>>>>>>      ;; Other architectures we aren't using.  Particularly important
>>>>>>      ;; to get rid of sse2 and x87 so we don't accidentally try to
>>>>>>      ;; compile the x87/sse2 float support on sparc, which won't work.
>>>>>>      :x86 :x86-bootstrap :sse2 :x87 :i486
>>>>>>      :mips :complex-fp-vops
>>>>>>      ;; Really old stuff that should have been removed long ago.
>>>>>>      :propagate-fun-type :propagate-float-type :constrain-float-type
>>>>>>      :double-double
>>>>>>      :linkage-table
>>>>>>      :stack-checking                    ; Throw error if we run out of
>>>>>> stack
>>>>>>      :heap-overflow-check               ; Throw error if we run out of
>>>>>>                                         ; heap (This requires gencgc!)
>>>>>>      :gencgc                            ; Generational GC
>>>>>>      :modular-arith                     ; Modular arithmetic
>>>>>>      :executable
>>>>>>      ;; Other OSes were not using
>>>>>>      :openbsd :freebsd :glibc2 :linux :mach-o :darwin :sunos :svr4
>>>>>>      :solaris :sun4
>>>>>>      :pentium
>>>>>>      :long-float
>>>>>>      :new-random
>>>>>>      :small
>>>>>>      :mp))
>>>>>
>>>>>
>>>>> One last thing:  remove :alien-callback too. Alpha doesn't support that.
>>>>>
>>>>> Hopefully this will get us farther along....
>>>>>
>>>>> --
>>>>> Ray
>>>>>
>>>>>


More information about the cmucl-help mailing list