[cmucl-help] CMUCL 18c building on tru64 5.1
Fausto Saporito
fausto.saporito at gmail.com
Wed Sep 3 11:57:15 UTC 2014
ok.. I fixed the version problem: created a file, in alpha-target/lisp
directory, "version" with "-1" in it.
Now the version matches with kernel.core (version 0).
But it seems a needed feature is missing:
axpvm01.gitanes.taz> lisp -core kernel.core
interrupt_handle_now: No handler for signal 11?
LDB monitor
ldb>
2014-09-03 13:39 GMT+02:00 Fausto Saporito <fausto.saporito at gmail.com>:
> 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