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

Raymond Toy toy.raymond at gmail.com
Wed Sep 3 16:24:44 UTC 2014


On Wed, Sep 3, 2014 at 4:57 AM, Fausto Saporito <fausto.saporito at gmail.com>
wrote:

> 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>
>
>
​This is really great! But now comes the hard part.

First, I would check the logs for any errors and see if they're relevant.
Post the errors here.

Second, from ldb you can try "back" to get a backtrace. That might have
pointers to what might have gone wrong.

Third, if none of the above work, you'll have to get out your debugger and
see what is causing signal 11.  This is the hard part.

Since it seems you can successfully cross-compile from 19c, perhaps it
would be easiest to go back farther and try again with 18c or something. It
might be easier to get something going and then we can think about getting
alpha running on a more up-to-date version of the code.

Good luck! ​


>
>
> 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