gcl-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gcl-devel] cygwin - the story continues


From: Camm Maguire
Subject: Re: [Gcl-devel] cygwin - the story continues
Date: 22 Dec 2001 08:20:21 -0500

Greetings!  You analysis is right on here as far as I can see.  there
are a number of other sample NULL_... macros in the h directory, and
some of them do indeed have the stack before DBEGIN.  You might want
to take a look at these and try one that you think looks right.

In general, I'd greatly appreciate a knowledgeable reference as to
were the stack *actual* is/can be on these different platforms.  Seems
like we just have a heuristic now.

I'm also off for a few days for the holidays.  will be back on Thu.

In the meantime, I've put together and uploaded a 2.5.0 gcl package to
debian unstable, i386 only.  I hope that debian unstable can also help
us shake out errors, and since 2.5.0 had little difference so far from
the bug fix release we've been working on, I decided to upload this
version.  

Since then, I've also gotten a working build of 21.5.0 using the bfd
library for relocations.  I've tested this on Linux arm, ppc, and
sparc, and it seems the relocation piece is working correctly there
with this new interface, though there are still some other problems.
Thus, this is not in CVS yet.

take care,

"Billinghurst, David (CRTS)" <address@hidden> writes:

> More debugging on cygwin.  This may be my last effort before I head off
> on holidays for a couple of weeks.
> 
> We have:
> 
> #define CSTACK_ADDRESS 22934424
> #define DBEGIN 0x1a000000
> #define PAGEWIDTH 12
> #define MAXPAGE 32*1024
> #define pagetochar(x) ((char*)(((x)<<PAGEWIDTH + DBEGIN)
> 
> 
> We get
> 
> GCL (GNU Common Lisp)  April 1994  32768 pages
> 
> Unrecoverable error: NULL_OR_ON_C_STACK macro invalid.
> 
> 
> Breakpoint 1, main (argc=4, argv=0x1a1030c0, envp=0x1a10127c) at
> main.c:119
> initlisp () at main.c:351
> 
> (gdb) print &j
> $5 = (int *) 0x22ddc0
> 
> (gdb) print ((object)&Cnil_body)  <- This is Cnil
> $6 = (union lispunion *) 0x52c23c
> 
> (gdb) print ((unsigned long)core_end)
> $7 = 438075392   which is 0x1a1c8000
> 
> 
> The original cygwin definition of NULL_OR_ON_C_STACK 
> won't pass.  We have &j < DBEGIN and  Cnil < DBEGIN
> and require Cnil > DBEGIN
> 
> The proposed one of (x)==0 || (x) > pagetochar(MAXPAGE+1)
> doesn't work either.
> pagetochar(MAXPAGE+1) = (((32*1024+1)<<12) + DBEGIN = 0x22001000
> but &j < DBEGIN < pagetochar(MAXPAGE+1)
> 
> Note that:
>      core_end > DBEGIN
> and  core_end < pagetochar(MAXPAGE+1)
> so core_end will pass original test but fail proposed test. 
> 
> Merry Christmas
> 
> +++++++++++++++++++++++++++++++++++++++++
> (Mr) David Billinghurst
> Comalco Research Centre
> PO Box 316, Thomastown, Vic, Australia, 3074
> Phone:        +61 3 9469 0642
> FAX:          +61 3 9462 2700
> Email:        address@hidden
> 
> 
> _______________________________________________
> Gcl-devel mailing list
> address@hidden
> http://mail.gnu.org/mailman/listinfo/gcl-devel
> 
> 

-- 
Camm Maguire                                            address@hidden
==========================================================================
"The earth is but one country, and mankind its citizens."  --  Baha'u'llah



reply via email to

[Prev in Thread] Current Thread [Next in Thread]