delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2015/06/26/11:37:08

X-Recipient: archive-cygwin AT delorie DOT com
DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id
:list-unsubscribe:list-subscribe:list-archive:list-post
:list-help:sender:date:from:to:subject:message-id:reply-to
:references:mime-version:content-type:in-reply-to; q=dns; s=
default; b=fWR4rJhRjCcnryACRWUVeSvQejG+UIFmlw59JVNcVLLW7DnyzML9g
zGVvuiPFG08ck1xMcZAQ8xXhfIqRqJadEdh6i4Tkl1W4LHR9lKvnbk0iDIAjuRzt
Y7AVo+KmWA2u6RzcI47ueuHRGzoCvKpkyc6xPbim2o4ek68memCiLI=
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id
:list-unsubscribe:list-subscribe:list-archive:list-post
:list-help:sender:date:from:to:subject:message-id:reply-to
:references:mime-version:content-type:in-reply-to; s=default;
bh=moW+sQsWwqBi0kN2cfaNmZA1rlI=; b=KNeX29ewDXKpTl5MSLTN7+6M3k1e
D+KGZj2/t9TEl5mv9f4wVSH9vJEXWxBFDtuePd4hIqMP4XwWOVTRf21Sc2jJA+nf
+ymEvS+pNfMPv6JIeHJaFQM4ZxIceeias4B6lJnDpIKgSkz+zARyf4ygymMJIwXC
CfQwA7NDb5W3a7s=
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
Authentication-Results: sourceware.org; auth=none
X-Virus-Found: No
X-Spam-SWARE-Status: No, score=-5.4 required=5.0 tests=AWL,BAYES_00,KAM_LAZY_DOMAIN_SECURITY autolearn=no version=3.3.2
X-HELO: calimero.vinschen.de
Date: Fri, 26 Jun 2015 17:36:47 +0200
From: Corinna Vinschen <corinna-cygwin AT cygwin DOT com>
To: cygwin AT cygwin DOT com
Subject: Re: [ANNOUNCEMENT] TEST RELEASE: Cygwin 2.1.0-0.1
Message-ID: <20150626153647.GX31223@calimero.vinschen.de>
Reply-To: cygwin AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
References: <announce DOT 20150620205512 DOT GA28301 AT calimero DOT vinschen DOT de> <558706D5 DOT 1020508 AT cornell DOT edu> <20150622110835 DOT GE28301 AT calimero DOT vinschen DOT de> <20150626111249 DOT GS31223 AT calimero DOT vinschen DOT de> <558D3F4C DOT 6090207 AT cornell DOT edu> <20150626141437 DOT GV31223 AT calimero DOT vinschen DOT de> <558D62D7 DOT 8010709 AT cornell DOT edu>
MIME-Version: 1.0
In-Reply-To: <558D62D7.8010709@cornell.edu>
User-Agent: Mutt/1.5.23 (2014-03-12)

--twKjCw1/F6C/WBH6
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Hi Ken,

On Jun 26 10:33, Ken Brown wrote:
> On 6/26/2015 10:14 AM, Corinna Vinschen wrote:
> >On Jun 26 08:02, Ken Brown wrote:
> >>On 6/26/2015 7:12 AM, Corinna Vinschen wrote:
> >Thank you.  I'll try to test this in the next couple of days.  One hint
> >and one question:
> >
> >>The signal handler:
> >>
> >>/* Attempt to recover from SIGSEGV caused by C stack overflow.  */
> >>static void
> >>handle_sigsegv (int sig, siginfo_t *siginfo, void *arg)
> >>{
> >>   /* Hard GC error may lead to stack overflow caused by
> >>      too nested calls to mark_object.  No way to survive.  */
> >>   if (!gc_in_progress)
> >>     {
> >>       struct rlimit rlim;
> >>
> >>       if (!getrlimit (RLIMIT_STACK, &rlim))
> >
> >This getrlimit probably won't work as desired.  I just had a quick look
> >how this request is handled.  It will return the size of the alternate
> >stack while running the signal handler, rather than the size of the
> >initial thread's stack as required by POSIX.  This definitely needs
> >fixing.
> >
> >>	{
> >>	  enum { STACK_DANGER_ZONE =3D 16 * 1024 };
> >>	  char *beg, *end, *addr;
> >>
> >>	  beg =3D stack_bottom;
> >>	  end =3D stack_bottom + stack_direction * rlim.rlim_cur;
> >>	  if (beg > end)
> >>	    addr =3D beg, beg =3D end, end =3D addr;
> >>	  addr =3D (char *) siginfo->si_addr;
> >>	  /* If we're somewhere on stack and too close to
> >>	     one of its boundaries, most likely this is it.  */
> >>	  if (beg < addr && addr < end
> >>	      && (addr - beg < STACK_DANGER_ZONE
> >>		  || end - addr < STACK_DANGER_ZONE))
> >>	    siglongjmp (return_to_command_loop, 1);
> >>	}
> >>     }
> >>
> >>   /* Otherwise we can't do anything with this.  */
> >>   deliver_fatal_thread_signal (sig);
> >>}
> >>
> >>The code to set up the signal handler on the alternate stack:
> >>
> >>static bool
> >>init_sigsegv (void)
> >>{
> >>   struct sigaction sa;
> >>   stack_t ss;
> >>
> >>   stack_direction =3D ((char *) &ss < stack_bottom) ? -1 : 1;
> >>
> >>   ss.ss_sp =3D sigsegv_stack;
> >>   ss.ss_size =3D sizeof (sigsegv_stack);
> >                  ^^^^^^^^^^^^^^^^^^^^^^^
> >
> >What's that size in bytes?
>=20
> SIGSTKSZ

Thanks.  Another question:  How does emacs compute stack_bottom?


Corinna

--=20
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Maintainer                 cygwin AT cygwin DOT com
Red Hat

--twKjCw1/F6C/WBH6
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAEBCAAGBQJVjXGPAAoJEPU2Bp2uRE+gcIAP+QGy5jYS3AhJZCQOMbWonXpr
0sQ6m/ST78iHhEWI23aFyQehmlDbk7RPWcmIvpv0pG4pNOg02WiBubGaGWu+oILH
HCbND5JxItAS9vyiFMICL1UsaL77y1jSouu46duD5vYr5159WJnMBZQBQEmaz1sN
p0tNTpFOnNLS17Jlu8PAvbEvLRXhCwriy9TSVUIpDhHmHm7/Si8fkyFWjafz62ro
vByDjCt4PUV5A0M1SsEP4b5n7BvgKU9ujEnZ26mQpYlLBeKy/JSTRyzJ1Jauom+d
TcUsRKXsbPLwIFWQfFIZGqXtNJu4uATFejTOoTOkzfIlm/xPwOecB1gP9p2W1Wk2
hsSNiUzgC5pEOICfqAYq9r4R+NbE1S/R8m4lOG5jDwEEqwDOEvOg2z82d5LHdMPo
MTXj0itfY4ggPGlWXMqzJXXVFmwoW8jwf7b+tw7VCuzQ0WxT8i1bKJA+Mas4LJZh
ElHrn1dtPslfiO+0aPf7N+Irrt/o3fs9qAJ1RsWF6bcIIwkZu+paWkU8NNaQ6go1
OVOwaYSqsy9IPbGaO/DTBvBhF+IuS0A3eJpPxZ4y9f/KaC2Hdlm4/wtxPkG390o5
PgvFmsBC1+hiCQr6DCFIqHfMg+2Y3HVcwlMmq2UlGmb0VhsBOJqk06JpDNhoSDBR
o+W7uN/DF3pRLBNlRcNT
=nCRj
-----END PGP SIGNATURE-----

--twKjCw1/F6C/WBH6--

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019