unofficial mirror of bug-guile@gnu.org 
 help / color / mirror / Atom feed
From: Charles Stanhope <charles@stanho.pe>
To: Mike Gran <spk121@yahoo.com>
Cc: 39118@debbugs.gnu.org, "Ludovic Courtès" <ludo@gnu.org>,
	guile-devel@gnu.org
Subject: bug#39118: Segfault while building on 64-bit Cygwin
Date: Mon, 17 Feb 2020 11:27:42 -0800	[thread overview]
Message-ID: <CAPydmiP44TawQf4SWLp1j4OsN-3e_VdDDx4i_R1w83hYQVGhyw__31699.2648922437$1581967828$gmane$org@mail.gmail.com> (raw)
In-Reply-To: <CAPydmiNnZ7qBbUgNJ_aKhfDORSBcHn8PbQABikL=sbP357tD=Q@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 1622 bytes --]

On 2/16/20, Charles Stanhope <charles@stanho.pe> wrote:
> On 2/16/20, Mike Gran <spk121@yahoo.com> wrote:
>>
>> I can confirm that Charles's patch, plus another one line patch
>> to define CPU_SETSIZE, is enough to get Guile 3.0.x to build and run
>> on my box.  All tests pass except strptime in French, and the absence
>> of crypt.  This is a 64-bit build.
>
> Mike, thanks for going further with the Guile build. The CPU_SETSIZE
> issue was what was hanging me up from compiling before Andy's comment
> got me to look at lightening. I assumed I had some configuration,
> package, or compiler issue. Good to know there's a simple fix.
>
> Just a further warning to anyone watching, that patch I posted is a
> real hack job just to test my theory of the cause of the segfault. I
> would expect it to fail when you have fewer than four arguments in a
> JITed function call. I wouldn't try doing much else with that Guile
> build besides run the tests. :)

I had a little bit more time to look into the lightening
implementation last night. I've attached a patch that is less horrible
and more correct than my previous one. It reserves the stack space
regardless of the number of parameters and appears to work. But I'm
new to the lightening code base, so I'm not convinced it is the
correct solution. It's just the solution I was left with after my time
ran out. I wanted to post this patch as a replacement to the prior one
in case people did want to do more testing with Guile 3.0 on Cygwin
x64.

With that, I will let more experienced people come up with the
appropriate solution. Happy hacking, everybody!

--
Charles

[-- Attachment #2: x86-fastcall-stack-reservation-2.patch --]
[-- Type: text/x-patch, Size: 443 bytes --]

diff --git a/lightening/x86.c b/lightening/x86.c
index 965191a..bdd26e1 100644
--- a/lightening/x86.c
+++ b/lightening/x86.c
@@ -328,6 +328,10 @@ reset_abi_arg_iterator(struct abi_arg_iterator *iter, size_t argc,
   memset(iter, 0, sizeof *iter);
   iter->argc = argc;
   iter->args = args;
+#if __CYGWIN__ && __X64
+  // Reserve slots on the stack for 4 register parameters (8 bytes each).
+  iter->stack_size = 32;
+#endif
 }
 
 static void

  parent reply	other threads:[~2020-02-17 19:27 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <87zherlphs.fsf@pobox.com>
2020-01-13 17:26 ` GNU Guile 2.9.9 Released [beta] John Cowan
2020-01-13 23:09   ` bug#39118: " John Cowan
2020-01-20 16:35   ` bug#39118: Segfault while building on 64-bit Cygwin Ludovic Courtès
2020-01-20 16:38     ` John Cowan
     [not found]     ` <CAD2gp_ReS1DCZmsakcNK-FegZB_fhzOknDf_d0QdyDJVJS6X_A@mail.gmail.com>
2020-01-20 17:22       ` Mike Gran via Bug reports for GUILE, GNU's Ubiquitous Extension Language
2020-02-06 10:53         ` Andy Wingo
     [not found]         ` <87wo90kmw9.fsf@pobox.com>
2020-02-07  4:56           ` Charles Stanhope
     [not found]           ` <CAPydmiP42upuz1S=aP+hZk+tD5EJm00b4Gox1+LzEoJXVmRO=w@mail.gmail.com>
2020-02-14 17:46             ` Charles Stanhope
     [not found]             ` <CAPydmiN7eFD5r-v44hwdFM=1J24okQO8XjHqJ3bXQ2N1OkRVhA@mail.gmail.com>
2020-02-16 23:23               ` Mike Gran via Bug reports for GUILE, GNU's Ubiquitous Extension Language
2020-02-16 23:23               ` Mike Gran via Bug reports for GUILE, GNU's Ubiquitous Extension Language
     [not found]               ` <20200216232334.GA2448000@spikycactus.com>
2020-02-16 23:24                 ` John Cowan
2020-02-17  1:08                 ` Charles Stanhope
     [not found]                 ` <CAPydmiNnZ7qBbUgNJ_aKhfDORSBcHn8PbQABikL=sbP357tD=Q@mail.gmail.com>
2020-02-17 19:27                   ` Charles Stanhope [this message]
     [not found]                   ` <CAPydmiP44TawQf4SWLp1j4OsN-3e_VdDDx4i_R1w83hYQVGhyw@mail.gmail.com>
2020-02-17 21:05                     ` Andy Wingo
2020-01-21  9:01       ` Ludovic Courtès
     [not found]       ` <87sgk9faih.fsf@gnu.org>
2020-01-21 18:40         ` szgyg
2020-01-21 21:37         ` John Cowan
     [not found]         ` <20200121184011.GA1659@dtk>
2020-01-21 21:53           ` John Cowan
     [not found]         ` <CAD2gp_Ts8VfLUaQ+kC=g+f_5mv0jzLZpN_-U9dvi6Y4jy0-cLw@mail.gmail.com>
2020-01-23 20:35           ` Ludovic Courtès
     [not found]           ` <871rrpoqql.fsf@gnu.org>
2020-01-24 14:36             ` John Cowan
     [not found]             ` <CAD2gp_RkOYj6E6b9PjHerctAJN6NPYznQ4qi8NSXL0edKEM9dw@mail.gmail.com>
2020-01-25 13:51               ` Ludovic Courtès
     [not found]               ` <87wo9fbq60.fsf@gnu.org>
2020-01-25 15:54                 ` John Cowan
     [not found]                 ` <CAD2gp_Q3Ua+kRW5OV1jXM1D-H7UhKQp-TSd0RQjue7U=1ua62Q@mail.gmail.com>
2020-01-31 14:23                   ` John Cowan
2020-02-03 22:11                     ` szgyg
2020-02-05 21:11                       ` John Cowan
     [not found]                       ` <CAD2gp_Rcv81x4uKKTuokNbAWOkz-j77Hjet-oOzci1UFcgVDWg@mail.gmail.com>
2020-02-05 22:42                         ` szgyg
2020-01-24 15:26   ` dsmich

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/guile/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAPydmiP44TawQf4SWLp1j4OsN-3e_VdDDx4i_R1w83hYQVGhyw__31699.2648922437$1581967828$gmane$org@mail.gmail.com' \
    --to=charles@stanho.pe \
    --cc=39118@debbugs.gnu.org \
    --cc=guile-devel@gnu.org \
    --cc=ludo@gnu.org \
    --cc=spk121@yahoo.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).