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

Fausto Saporito fausto.saporito at gmail.com
Wed Sep 3 11:39:30 UTC 2014


Hello all,

ok... this is a real blocking error:

axpvm01.gitanes.taz> alpha-target/lisp/lisp -core alpha-target/lisp/kernel.core
WARNING: startup-code version (2) different from core version (0).
You may lose big.
interrupt_handle_now: No handler for signal 11?
LDB monitor
ldb> quit
Really quit? [y]

and really I cannot understand the reason.
kernel.core has been generated with the same sources of the lisp
frontend! Why there's this version mismatch ?

I changed internals.h cause it was totally wrong (feature list
section) and I copied them from internals.inc ... is it correct ?
But internals.inc has much more features than cross.lisp, maybe this
could be the problem...

FEATURE_CMU18E = 1
FEATURE_CMU18 = 1
FEATURE_BSD = 1
FEATURE_OSF1 = 1
FEATURE_ALPHA = 1
FEATURE_CMU = 1
FEATURE_IEEE_FLOATING_POINT = 1
FEATURE_ANSI_CL = 1
FEATURE_COMMON_LISP = 1
FEATURE_COMMON = 1
FEATURE_HASH_NEW = 1
FEATURE_RANDOM_MT19937 = 1
FEATURE_UNIX = 1
FEATURE_RELATIVE_PACKAGE_NAMES = 1
FEATURE_MODULAR_ARITH = 1
FEATURE_CONSERVATIVE_FLOAT_TYPE = 1
FEATURE_PYTHON = 1
FEATURE_CMU19C = 1
FEATURE_CMU19 = 1
FEATURE_PCL = 1                                                      <-----
FEATURE_PORTABLE_COMMONLOOPS = 1
FEATURE_PCL_STRUCTURES = 1
FEATURE_GERDS_PCL = 1
FEATURE_BOOTSTRAP = 1
FEATURE_NO_PCL = 1                                               <-----
FEATURE_NO_CLX = 1
FEATURE_NO_CLM = 1
FEATURE_NO_HEMLOCK = 1
FEATURE_LITTLE_ENDIAN = 1

Is it correct

FEATURE_PCL = 1

then

FEATURE_NOPCL = 1

???

regards,
Fausto

2014-09-03 13:13 GMT+02:00 Fausto Saporito <fausto.saporito at gmail.com>:
> 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