From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14532 invoked by alias); 13 Jul 2012 16:30:47 -0000 Received: (qmail 14513 invoked by uid 22791); 13 Jul 2012 16:30:42 -0000 X-SWARE-Spam-Status: No, hits=-5.3 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,FREEMAIL_FROM,KHOP_RCVD_TRUST,KHOP_THREADED,RCVD_IN_DNSWL_LOW,RCVD_IN_HOSTKARMA_YE X-Spam-Check-By: sourceware.org Received: from mail-lb0-f171.google.com (HELO mail-lb0-f171.google.com) (209.85.217.171) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 13 Jul 2012 16:30:24 +0000 Received: by lbom4 with SMTP id m4so4900441lbo.2 for ; Fri, 13 Jul 2012 09:30:23 -0700 (PDT) MIME-Version: 1.0 Received: by 10.152.111.200 with SMTP id ik8mr2102255lab.15.1342197023170; Fri, 13 Jul 2012 09:30:23 -0700 (PDT) Received: by 10.112.86.130 with HTTP; Fri, 13 Jul 2012 09:30:23 -0700 (PDT) In-Reply-To: <20120713142626.GO3406@calimero.vinschen.de> References: <4FF8759A.10400@gmail.com> <4FF88907.5060100@dancol.org> <4FFB4C82.7050702@dancol.org> <4FFBB6B3.2090705@dancol.org> <20120710081318.GB3051@calimero.vinschen.de> <4FFC4D3C.2010004@dancol.org> <4FFF9A81.90403@dancol.org> <20120713074009.GC26268@calimero.vinschen.de> <20120713142626.GO3406@calimero.vinschen.de> Date: Fri, 13 Jul 2012 16:30:00 -0000 Message-ID: Subject: Re: clisp crashes on startup From: Reini Urban To: cygwin@cygwin.com Content-Type: text/plain; charset=ISO-8859-1 X-IsSubscribed: yes Mailing-List: contact cygwin-help@cygwin.com; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner@cygwin.com Mail-Followup-To: cygwin@cygwin.com X-SW-Source: 2012-07/txt/msg00286.txt.bz2 On Fri, Jul 13, 2012 at 9:26 AM, Corinna Vinschen wrote: > On Jul 13 07:52, Reini Urban wrote: >> On Fri, Jul 13, 2012 at 2:40 AM, Corinna Vinschen wrote: >> > On Jul 12 20:48, Daniel Colascione wrote: >> >> On 7/10/12 8:41 AM, Daniel Colascione wrote: >> >> > On 7/10/12 1:13 AM, Corinna Vinschen wrote: >> >> >> On Jul 9 21:59, Daniel Colascione wrote: >> >> >>> On 7/9/12 2:26 PM, Daniel Colascione wrote: >> >> >>>> [snip] >> >> >>> >> >> >>> It turns out that clisp crashes only when I've rebased DLLs into the >> >> >>> high portion of the 4GB WOW64 address space. >> >> >> >> >> >> Where did you rebase them to? You know that on WOW64 and with the >> >> >> bigaddr flag on, the application heap is located at 0x80000000 by >> >> >> default, right? Perhaps some of your DLLs just collide with that? >> >> > >> >> > I'm using a starting base address of 0xC8000000; I haven't had >> >> > problems with any other program. >> >> >> >> It turns out that clisp uses bit 31 of each pointer for its gc mark >> >> bit. No wonder the thing blows in bigaddr-aware mode. clisp _does_ >> > >> > Ouch. >> > >> >> work, however, when compiled with -DWIDE. In this mode, clisp uses two >> >> words for each lisp value --- one for the pointer and one for the >> >> metadata. >> >> Hmm, I do not really want to maintain lisp32.exe and lisp64.exe >> variants, but maybe >> upstream can be persuaded to make that distinction in the clisp.exe driver. >> It's only for huge data and bad rebase addresses. >> And for huge data a self-compiled clisp makes sense to me. >> Serious lisp users use better lisp compilers anyway which compile >> to native code. (sbcl, lispworks, allegro). >> clisp's main strength is fast startup and fast IO. >> >> >> Also, clisp has a LINUX_NOEXEC_HEAPCODES mode that also >> >> works, and without bloating memory use, but that requires that no real >> >> virtual address be in the range [0xC0000000, 0xDFFFFFFF]. >> > >> > That can't be guaranteed. WOW64 provides the full 32 bit VM address >> > space. >> >> Maybe also a documentation issue for rebaseing. > > That has nothing to do with rebasing. If you build clisp with a recent > gcc, it will have the "bigaddr" flag set in the file header since > Cygwin's gcc sets that by default. While DLLs should be rebased from > 0x70000000 downwards as usual, the applications heap, as well as > thread stacks, as well as shared memory regions created with mmap(2) > or shmat(2) will be in the high memory area starting at 0x80000000. > > THe bottom line is, if the distro clisp isn't 32 bit clean, which it > apparently isn't using default settings, it should either be rebuilt > with -DWIDE, or it should have the bigaddr flag removed from the > file header by default (peflags -l0). Thanks. This deserves an update now. -- Reini Urban http://cpanel.net/ http://www.perl-compiler.org/ -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple