Re: CMUCL 18c building on tru64 5.1
Fausto Saporito <[email protected]> Wed, 3 Sep 2014 22:04:41 +0200
| Newsgroups | gmane.lisp.cmucl.general |
|---|---|
| Message-ID | <CAF1zXh=bDuLaRiFDdmJqFmF0LATTXZDJ92-ENdN7tnKMk+G5Bg@mail.gmail.com> |
further investigation... leads me to call_into_lisp assembler routine. there happens something bad. Now I don't know alpha assembler, but maybe this could be related to the memory addresses written in internals.h I noticed the cross.lisp for sparc has a specific definition for stack_pointer or similar... maybe is this needed also for alpha ? At the moment I used the cross.lisp file from PPC that doesn't need such definition. I'll try to recover some useful values then I'll go back to the cross-compilation modifying my cross.lisp file. If you have some already known value, please let me know... or if you think this analisys is wrong :-) regards, fausto 2014-09-03 21:52 GMT+02:00 Fausto Saporito <[email protected]>: > Hello Ray, > > the sigsegv happens calling funcall0(initial_function)... at line 702 > in main function. > > ladebug under Tru64 is very cool ;-) > > now... what is the purpose of funcall0 ? > > regards, > Fausto > > > > 2014-09-03 19:08 GMT+02:00 Raymond Toy <[email protected]>: >> >> >> >> On Wed, Sep 3, 2014 at 9:29 AM, Fausto Saporito <[email protected]> >> wrote: >>> >>> Hello Ray, >>> >>> in the alpha-cross and alpha-target log... there are no errors. it >>> compiles like a knive in the butter :) >> >> >> Cool! >> >>> >>> >>> But maybe "interrupt_handle_now" could refers to a feature we excluded >>> from the build. >>> >>> this is the "back" output >>> >>> ldb> back >>> Backtrace: >>> <Frame 0x50000000 [interrupted], CODE: 0x3029472F, %INITIAL-FUNCTION, >>> <no LRA>, PC: 0xcfd6b7b8> >> >> >> Ok, that's not very helpful. You have to break out your debugger to figure >> out why you're getting signal 11. (segv?) >> >>> >>> >>> About 18c test, can I use the 19c binaries (on linux) to cross-compile >>> a 18c, or do I have to install a 18c linux binaries ? >> >> >> It's best to use the same version, so use 18c binaries. >> >> Good luck! >> -- >> Ray >> >>> >>> >>> thanks, >>> Fausto >>> >>> 2014-09-03 18:24 GMT+02:00 Raymond Toy <[email protected]>: >>> > >>> > >>> > >>> > On Wed, Sep 3, 2014 at 4:57 AM, Fausto Saporito >>> > <[email protected]> >>> > 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 <[email protected]>: >>> >> > 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 >>> >> > <[email protected]>: >>> >> >> 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 >>> >> >> <[email protected]>: >>> >> >>> 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 >>> >> >>> <[email protected]>: >>> >> >>>> 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 >>> >> >>>> <[email protected]>: >>> >> >>>>> 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 >>> >> >>>>> <[email protected]>: >>> >> >>>>>> 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 <[email protected]>: >>> >> >>>>>>> >>> >> >>>>>>> >>> >> >>>>>>> >>> >> >>>>>>> On Tue, Sep 2, 2014 at 4:53 PM, Fausto Saporito >>> >> >>>>>>> <[email protected]> >>> >> >>>>>>> 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 >>> >> >>>>>>> >>> >> >>>>>>> >>> > >>> > >> >> _______________________________________________ cmucl-help mailing list [email protected] http://lists.zs64.net/mailman/listinfo/cmucl-help