From debbugs-submit-bounces@debbugs.gnu.org Mon Jan 20 12:09:27 2020 Received: (at 39208) by debbugs.gnu.org; 20 Jan 2020 17:09:27 +0000 Received: from localhost ([127.0.0.1]:45934 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1itaYJ-0003qk-FM for submit@debbugs.gnu.org; Mon, 20 Jan 2020 12:09:27 -0500 Received: from eggs.gnu.org ([209.51.188.92]:55716) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1itaYE-0003qC-Bv for 39208@debbugs.gnu.org; Mon, 20 Jan 2020 12:09:26 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:55693) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1itaY9-0002Lg-9B for 39208@debbugs.gnu.org; Mon, 20 Jan 2020 12:09:17 -0500 Received: from [2001:660:6102:320:e120:2c8f:8909:cdfe] (port=56606 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1itaY5-0001VY-JJ for 39208@debbugs.gnu.org; Mon, 20 Jan 2020 12:09:14 -0500 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: 39208@debbugs.gnu.org Subject: Re: bug#39208: [3.0.0] Segfault while building on ARMv7 References: <87a76igk9f.fsf@gnu.org> Date: Mon, 20 Jan 2020 18:09:11 +0100 In-Reply-To: <87a76igk9f.fsf@gnu.org> ("Ludovic \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\= \=\?utf-8\?Q\?s\?\= message of "Mon, 20 Jan 2020 17:33:48 +0100") Message-ID: <87pnfef420.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 39208 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Ludovic Court=C3=A8s skribis: > Unfortunately I=E2=80=99m unable to reproduce the bug outside Guix=E2=80= =99s build > environment, even with ASLR disabled (what guix-daemon does). I finally managed to reproduce it with from the failed-build tree: rm -vf bootstrap/language/cps/{slot-allocation,specialize-numbers,special= ize-primcalls,spec}.go GUILE_JIT_LOG=3D4 /run/current-system/profile/bin/linux32 -R make which shows: --8<---------------cut here---------------start------------->8--- jit: entering mcode: 0xf7a5d1c0 jit: exited mcode jit: entering mcode: 0xf7a5d1c0 jit: exited mcode jit: entering mcode: 0xf7956ca0 jit: exited mcode jit: entering mcode: 0xf791a9f0 jit: exited mcode jit: entering mcode: 0xf78b03d0 jit: exited mcode jit: entering mcode: 0xf7a5d1c0 jit: exited mcode jit: entering mcode: 0xf79407bb jit: exited mcode jit: entering mcode: 0xf7a5d1c0 jit: exited mcode jit: entering mcode: 0xf79407bb jit: exited mcode jit: entering mcode: 0xf7a5d1c0 jit: exited mcode jit: vcode: start=3D0xf5fe95d4,+203 entry=3D+0 jit: mcode: 0xf5c3eac0,+2288 jit: entering mcode: 0xf5c3eac0 jit: exited mcode jit: vcode: start=3D0xf5fe9900,+203 entry=3D+0 jit: mcode: 0xf5c3f3b0,+2288 jit: entering mcode: 0xf5c3f3b0 jit: exited mcode jit: vcode: start=3D0xf5fe9c2c,+203 entry=3D+0 jit: mcode: 0xf5c3fca0,+2288 jit: entering mcode: 0xf5c3fca0 jit: exited mcode jit: vcode: start=3D0xf5fe9f58,+203 entry=3D+0 jit: mcode: 0xf5c40590,+2288 jit: entering mcode: 0xf5c40590 jit: exited mcode jit: vcode: start=3D0xf5fea284,+203 entry=3D+0 jit: mcode: 0xf5c40e80,+2288 jit: entering mcode: 0xf5c40e80 jit: exited mcode jit: vcode: start=3D0xf5fea5b0,+203 entry=3D+0 jit: mcode: 0xf5c41770,+2288 jit: entering mcode: 0xf5c41770 jit: exited mcode jit: vcode: start=3D0xf5fea8dc,+203 entry=3D+0 jit: mcode: 0xf5c42060,+2288 jit: entering mcode: 0xf5c42060 jit: exited mcode jit: vcode: start=3D0xf5feac08,+203 entry=3D+0 jit: mcode: 0xf5c42950,+2288 jit: entering mcode: 0xf5c42950 jit: exited mcode jit: vcode: start=3D0xf5feaf34,+203 entry=3D+0 jit: mcode: 0xf5c43240,+2288 jit: entering mcode: 0xf5c43240 jit: exited mcode jit: vcode: start=3D0xf5feb260,+203 entry=3D+0 jit: mcode: 0xf5c43b30,+2280 jit: entering mcode: 0xf5c43b30 /gnu/store/nvkn00kq4x4g5wjjjvjj6rhzs0ihihxl-bash-minimal-5.0.7/bin/bash: li= ne 6: 13151 Segmentation fault (core dumped) GUILE_AUTO_COMPILE=3D0 ..= /meta/build-env guild compile --target=3D"arm-unknown-linux-gnueabihf" -O1 = -Oresolve-primitives -L "/tmp/guix-build-guile-next-3.0.0.drv-0/guile-3.0.0= /module" -L "/tmp/guix-build-guile-next-3.0.0.drv-0/guile-3.0.0/guile-readl= ine" -o "language/cps/slot-allocation.go" "../module/language/cps/slot-allo= cation.scm" make[2]: *** [Makefile:1931: language/cps/slot-allocation.go] Error 139 --8<---------------cut here---------------end--------------->8--- Backtrace: --8<---------------cut here---------------start------------->8--- #0 0xf5c43ca4 in ?? () [Current thread is 1 (Thread 0xf7fe8010 (LWP 13151))] (gdb) bt #0 0xf5c43ca4 in ?? () #1 0xf7f3ffcc in scm_jit_enter_mcode (thread=3D0x74fe10, mcode=3D0xf5c43b30 " 8\r\032(-@\360c\203%i\250B\300\362_\203\240`\245m"= ) at jit.c:5725 #2 0x00021048 in ?? () Backtrace stopped: previous frame identical to this frame (corrupt stack?) (gdb) disassemble 0xf5c43b30,+2280 Dump of assembler code from 0xf5c43b30 to 0xf5c44418: 0xf5c43b30: subs r0, #32 0xf5c43b32: subs r5, r1, r0 0xf5c43b34: cmp r5, #40 ; 0x28 0xf5c43b36: bne.w 0xf5c44200 0xf5c43b3a: ldr r5, [r4, #16] 0xf5c43b3c: cmp r0, r5 0xf5c43b3e: blt.w 0xf5c44200 0xf5c43b42: str r0, [r4, #8] 0xf5c43b44: ldr r5, [r4, #88] ; 0x58 0xf5c43b46: cmp r5, #0 0xf5c43b48: beq.w 0xf5c44232 0xf5c43b4c: ldrt r6, [r5] 0xf5c43b50: str r6, [r4, #88] ; 0x58 0xf5c43b52: str r5, [r0, #24] 0xf5c43b54: movw r5, #1293 ; 0x50d 0xf5c43b58: movs r6, #0 [=E2=80=A6] 0xf5c43c52: and.w r5, r5, #127 ; 0x7f 0xf5c43c56: cmp r5, #13 0xf5c43c58: bne.w 0xf5c4411e 0xf5c43c5c: ldr r5, [r0, #32] 0xf5c43c5e: ldr r5, [r5, #20] 0xf5c43c60: str r5, [r0, #16] 0xf5c43c62: ldr r5, [r0, #16] 0xf5c43c64: ldrt r5, [r5] 0xf5c43c68: str r5, [r0, #16] 0xf5c43c6a: eors r5, r5 0xf5c43c6c: str r5, [r0, #20] 0xf5c43c6e: ldr r5, [r0, #16] 0xf5c43c70: ldr r6, [r0, #20] 0xf5c43c72: lsls r2, r6, #24 0xf5c43c74: lsrs r6, r6, #8 0xf5c43c76: lsrs r5, r5, #8 0xf5c43c78: adds r5, r5, r2 0xf5c43c7a: str r5, [r0, #16] 0xf5c43c7c: str r6, [r0, #20] 0xf5c43c7e: ldr r5, [r0, #16] 0xf5c43c80: ldr r6, [r0, #20] 0xf5c43c82: cmp r6, #0 0xf5c43c84: blt.w 0xf5c440fe 0xf5c43c88: cmp r6, #0 0xf5c43c8a: bne.w 0xf5c43c94 0xf5c43c8e: cmp r5, #0 0xf5c43c90: ble.w 0xf5c440fe 0xf5c43c94: ldr r5, [r0, #32] 0xf5c43c96: ldr r5, [r5, #20] 0xf5c43c98: str r5, [r0, #16] 0xf5c43c9a: ldr r5, [r0, #16] 0xf5c43c9c: ldr r5, [r5, #4] 0xf5c43c9e: str r5, [r0, #16] 0xf5c43ca0: mov.w r12, #0 =3D> 0xf5c43ca4: ldrt r5, [r12] 0xf5c43ca8: str r5, [r0, #8] [=E2=80=A6] 0xf5c443fc: ands r0, r6 0xf5c443fe: ; instruction: 0xf7a24f00 0xf5c44402: mov pc, r7 0xf5c44404: ands r0, r6 0xf5c44406: ; instruction: 0xf7a24f00 0xf5c4440a: mov pc, r7 0xf5c4440c: ands r0, r6 0xf5c4440e: ; instruction: 0xf7a24f00 0xf5c44412: mov pc, r7 0xf5c44414: ands r0, r6 0xf5c44416: ; instruction: 0xf7a20000 End of assembler dump. (gdb) p $r12 $1 =3D 0 --8<---------------cut here---------------end--------------->8--- Apparently r12 is JIT_TMP0. Anyway, it seems that I have an environment in which to reproduce and debug it now. Ludo=E2=80=99.