From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <3c0fef0da69af9add75dc63c8a82b22e@coraid.com> From: erik quanstrom Date: Sat, 17 Mar 2007 14:00:17 -0400 To: 9fans@cse.psu.edu Subject: Re: [9fans] Alef - run time error In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Topicbox-Message-UUID: 27d046c8-ead2-11e9-9d60-3106f5b1d025 On Sat Mar 17 13:23:51 EDT 2007, lucio@proxima.alt.za wrote: > > the pc address space got bigger in 2005 so that programs could > > use more than 2gb of memory. the top of the stack is now > > 0xdffff000 instead of 0x7ffff000, so if you s/0x7/0xd/ you > > will probably be okay. > > > Thank you very much, that worked fine, which is OK at least to test > the compiler. > > > it would be even better if _main looked > > at its stack pointer and anded off some bits, so that those > > weren't hard-coded. > > > If you know a quick way to inspect the stack pointer, rather than me > having to dig for it, I'll fix it with pleasure. this c program will tell you where c leaves the tos. #include #include void main(void) { char *tos; print("%p\n", &tos); exits(""); } for me this prints dfffef68. so there are 0x98 bytes taken from the top of the stack before main starts. > Alternatively, if > you know where I ought to look, please point me there. Oh, yes, > please also explain what "and"ing off a few bits means, unless you > mean that by trimming the incoming stack pointer I'll get a reasonable > value for a private copy. That would make just about as much sense as > I can grasp. i'm pretty sure that's what he's after. /sys/src/libc/386/main9.s subtracts a constant from _tos. - erik