From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: John David Anglin Newsgroups: gmane.lisp.guile.devel Subject: Re: [PATCH, v2] Fix build on platforms where the stack grows upwards Date: Fri, 13 Mar 2020 13:17:33 -0400 Message-ID: <6a9cfe02-1e91-be49-d352-e4d27855e15c@bell.net> References: <20200204121152.3335558-1-glaubitz@physik.fu-berlin.de> <874kw1yxxw.fsf@gnu.org> <87wo7o1am8.fsf@igalia.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="59442"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.5.0 Cc: =?UTF-8?Q?Ludovic_Court=c3=a8s?= , deller@gmx.de, guile-devel@gnu.org, John Paul Adrian Glaubitz To: Andy Wingo Original-X-From: guile-devel-bounces+guile-devel=m.gmane-mx.org@gnu.org Fri Mar 13 18:18:12 2020 Return-path: Envelope-to: guile-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jCnwq-000FKo-K8 for guile-devel@m.gmane-mx.org; Fri, 13 Mar 2020 18:18:12 +0100 Original-Received: from localhost ([::1]:34222 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jCnwp-0007gp-Kt for guile-devel@m.gmane-mx.org; Fri, 13 Mar 2020 13:18:11 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:48407) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jCnwG-0007fI-Fa for guile-devel@gnu.org; Fri, 13 Mar 2020 13:17:37 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jCnwF-0002bs-1T for guile-devel@gnu.org; Fri, 13 Mar 2020 13:17:36 -0400 Original-Received: from belmont80srvr.owm.bell.net ([184.150.200.80]:54136 helo=mtlfep02.bell.net) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jCnwE-0002Xx-Oo; Fri, 13 Mar 2020 13:17:34 -0400 Original-Received: from bell.net mtlfep02 184.150.200.30 by mtlfep02.bell.net with ESMTP id <20200313171733.XZYC115221.mtlfep02.bell.net@mtlspm02.bell.net>; Fri, 13 Mar 2020 13:17:33 -0400 Original-Received: from [192.168.0.101] (really [76.69.61.56]) by mtlspm02.bell.net with ESMTP id <20200313171733.NMGF16482.mtlspm02.bell.net@[192.168.0.101]>; Fri, 13 Mar 2020 13:17:33 -0400 In-Reply-To: <87wo7o1am8.fsf@igalia.com> Content-Language: en-US X-CM-Analysis: v=2.3 cv=I5Mbu+og c=1 sm=1 tr=0 a=K8b6otzWFzmFJD2zsKQYmA==:117 a=K8b6otzWFzmFJD2zsKQYmA==:17 a=jpOVt7BSZ2e4Z31A5e1TngXxSK0=:19 a=IkcTkHD0fZMA:10 a=SS2py6AdgQ4A:10 a=FBHGMhGWAAAA:8 a=xNf9USuDAAAA:8 a=r36SGklDLxOWXJbVk-8A:9 a=QEXdDO2ut3YA:10 a=jYJgLHWX644A:10 a=9gvnlMMaQFpL9xblJ6ne:22 a=SEwjQc04WA-l_NiBhQ7s:22 X-CM-Envelope: MS4wfMe2EwT/2Bi8NcFqZ5qknW0DT83IZ2K1nqBdo3Cbu/8I2JY0+vbwixoSVKZVTqdEiQVFf7RRWNyGy8AqEFrtYAHrL+YxrE0/zc540XiEd9KHc5SHI6jL e18nqHeHqVZ+eW03FNPKzctikcY4Qb0+8WYeeGJxPDAiJI7dN9NNVf1vhLCDjp9hF7XP08gOmyzimg== X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 184.150.200.80 X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-devel-bounces+guile-devel=m.gmane-mx.org@gnu.org Original-Sender: "guile-devel" Xref: news.gmane.io gmane.lisp.guile.devel:20449 Archived-At: On 2020-03-13 12:29 p.m., Andy Wingo wrote: > On Tue 10 Mar 2020 23:58, John David Anglin writ= es: > >> On 2020-02-08 9:07 a.m., Ludovic Court=C3=A8s wrote: >>> John Paul Adrian Glaubitz skribis: >>> >>>> * libguile/continuations.c (scm_dynthrow): Fix missing mra >>>> parameter to grow_stack for SCM_STACK_GROWS_UP. >>> Applied, thanks! >> I believe that this change was also applied to the 2.2 stable branch (= v2.2.7).=C2=A0 There is no mra >> parameter on 2.2. > Indeed; fixed. Thanks for the fix and the note, and thanks Ludo for > getting the fix into 3.0.1 :) guile-3.0 3.0.0+1-2 built successfully on debian linux: https://buildd.debian.org/status/fetch.php?pkg=3Dguile-3.0&arch=3Dhppa&ve= r=3D3.0.0%2B1-2&stamp=3D1583969036&raw=3D0 On hpux, there are problems with the 2.2 and 3.0 branches. 2.0.14 builds okay on hppa2.0w-hp-hpux11.11 with gcc 8.4.1, but I had to = upgrade intprops.h to a newer version. Version 2.2.6 segfaults in vm_regular_engine: =C2=A0=C2=A0=C2=A0=C2=A0 11378 Segmentation fault=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0 (core dumped) | GUILE_AUTO_COMPILE=3D0 ../meta/build-env guild sna= rf-check-and-output-texi > guile-procedures.texi make[3]: *** [Makefile:4281: guile-procedures.texi] Error 1 (gdb) bt #0=C2=A0 vm_regular_engine (thread=3D0x7ad69e60, vp=3D0x7ad28f78, registe= rs=3D0x7eff22d0, =C2=A0=C2=A0=C2=A0 resume=3D0) at ../../libguile/vm-engine.c:573 #1=C2=A0 0xc2b540fc in scm_call_n (proc=3D0x7ad4fbc0, argv=3D0x0, nargs=3D= 0) =C2=A0=C2=A0=C2=A0 at ../../libguile/vm.c:1260 #2=C2=A0 0xc29e5710 in scm_call_0 (proc=3D0x7ad4fbc0) at ../../libguile/e= val.c:479 #3=C2=A0 0xc2a44e58 in scm_primitive_load_path (args=3D0x7ad50ff0) =C2=A0=C2=A0=C2=A0 at ../../libguile/load.c:1251 #4=C2=A0 0xc2a1f0a0 in scm_apply_subr (sp=3D0x7acd7f30, nslots=3D2) =C2=A0=C2=A0=C2=A0 at ../../libguile/gsubr.c:305 #5=C2=A0 0xc2b2f22c in vm_regular_engine (thread=3D0x7ad69e60, vp=3D0x7ad= 28f78, =C2=A0=C2=A0=C2=A0 registers=3D0x7eff11d0, resume=3D0) at ../../libguile/= vm-engine.c:786 #6=C2=A0 0xc2b540fc in scm_call_n (proc=3D0x7ad375c8, argv=3D0x0, nargs=3D= 0) =C2=A0=C2=A0=C2=A0 at ../../libguile/vm.c:1260 #7=C2=A0 0xc29e5710 in scm_call_0 (proc=3D0x7ad375c8) at ../../libguile/e= val.c:479 #8=C2=A0 0xc2a44e58 in scm_primitive_load_path (args=3D0x7ad38b20) =C2=A0=C2=A0=C2=A0 at ../../libguile/load.c:1251 #9=C2=A0 0xc2a44f7c in scm_c_primitive_load_path ( =C2=A0=C2=A0=C2=A0 filename=3D0x7adce1ec "ice-9/b= oot-9") =C2=A0=C2=A0=C2=A0 at ../../libguile/load.c:1267 #10 0xc2a31e8c in scm_load_startup_files () at ../../libguile/init.c:250 #11 0xc2a33864 in scm_i_init_guile (base=3D0x7eff0dd8) =C2=A0=C2=A0=C2=A0 at ../../libguile/init.c:535 #12 0xc2b1ca80 in scm_i_init_thread_for_guile (base=3D0x7eff0dd8, ---Type to continue, or q to quit--- =C2=A0=C2=A0=C2=A0 dynamic_state=3D0x0) at ../../libguile/threads.c:586 #13 0xc2b1cdc0 in with_guile (base=3D0x7eff0dd8, data=3D0x7eff0d58) =C2=A0=C2=A0=C2=A0 at ../../libguile/threads.c:654 #14 0xc11fc530 in GC_call_with_stack_base (fn=3D0x4, arg=3D0x7ad4fd08) =C2=A0=C2=A0=C2=A0 at ../src/extra/../misc.c:2130 #15 0xc2b1d01c in scm_i_with_guile ( =C2=A0=C2=A0=C2=A0 func=3D@0x7adc477a: 0xc2a32000 , dat= a=3D0x7eff0c9c, =C2=A0=C2=A0=C2=A0 dynamic_state=3D0x0) at ../../libguile/threads.c:704 #16 0xc2b1d0ac in scm_with_guile ( =C2=A0=C2=A0=C2=A0 func=3D@0x7adc477a: 0xc2a32000 , dat= a=3D0x7eff0c9c) =C2=A0=C2=A0=C2=A0 at ../../libguile/threads.c:710 #17 0xc2a31fcc in scm_boot_guile (argc=3D6, argv=3D0x7eff0a84, =C2=A0=C2=A0=C2=A0 main_func=3D@0x40001a7a: 0x3838 , closure=3D= 0x0) =C2=A0=C2=A0=C2=A0 at ../../libguile/init.c:324 #18 0x00003b6c in main (argc=3D6, argv=3D0x7eff0a84) at ../../libguile/gu= ile.c:101 (gdb) disass $pc-16,$pc+16 Dump of assembler code from 0xc2b2e99c to 0xc2b2e9bc: =C2=A0=C2=A0 0xc2b2e99c : addil L%-4800,r19,r1 =C2=A0=C2=A0 0xc2b2e9a0 : copy r1,ret0 =C2=A0=C2=A0 0xc2b2e9a4 : ldw e8(ret0),ret0 =C2=A0=C2=A0 0xc2b2e9a8 : copy ret0,r6 =3D> 0xc2b2e9ac : ldw 0(r6),r4 =C2=A0=C2=A0 0xc2b2e9b0 : extrw,u r4,31,8,ret0 =C2=A0=C2=A0 0xc2b2e9b4 : depw,z ret0,29,30,ret0 =C2=A0=C2=A0 0xc2b2e9b8 : add,l r9,ret0,ret0 End of assembler dump. (gdb) p/x $r6 $1 =3D 0xf4f25378 (gdb) p/x ip $2 =3D 0xf4f25378 (gdb) x/x 0xf4f25378 0xf4f25378:=C2=A0=C2=A0=C2=A0=C2=A0 Cannot access memory at address 0xf4f= 25378 The above fault doesn't depend=C2=A0 on compiler optimization level. I've tried to find the change that introduced the above using git bisect = but it isn't easy.=C2=A0 There are multiple places on the trunk where the build breaks.=C2=A0 In some pl= aces, stack overflows occur due to excessive iteration.=C2=A0 Stack size is 16384 kbytes. If you have any thoughts on the above, let me know.=C2=A0 Aside from the = OS differences, the code generated should be quite similar for both hpux and linux. Dave --=20 John David Anglin dave.anglin@bell.net