From owner-freebsd-toolchain@freebsd.org Tue Oct 25 18:40:41 2016 Return-Path: Delivered-To: freebsd-toolchain@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 46F16C21842 for ; Tue, 25 Oct 2016 18:40:41 +0000 (UTC) (envelope-from markmi@dsl-only.net) Received: from asp.reflexion.net (outbound-mail-210-27.reflexion.net [208.70.210.27]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E804EE3B for ; Tue, 25 Oct 2016 18:40:40 +0000 (UTC) (envelope-from markmi@dsl-only.net) Received: (qmail 29722 invoked from network); 25 Oct 2016 18:41:35 -0000 Received: from unknown (HELO mail-cs-01.app.dca.reflexion.local) (10.81.19.1) by 0 (rfx-qmail) with SMTP; 25 Oct 2016 18:41:35 -0000 Received: by mail-cs-01.app.dca.reflexion.local (Reflexion email security v8.10.0) with SMTP; Tue, 25 Oct 2016 14:40:47 -0400 (EDT) Received: (qmail 16136 invoked from network); 25 Oct 2016 18:40:47 -0000 Received: from unknown (HELO iron2.pdx.net) (69.64.224.71) by 0 (rfx-qmail) with (AES256-SHA encrypted) SMTP; 25 Oct 2016 18:40:47 -0000 Received: from [192.168.1.106] (c-76-115-7-162.hsd1.or.comcast.net [76.115.7.162]) by iron2.pdx.net (Postfix) with ESMTPSA id 8E626EC8814; Tue, 25 Oct 2016 11:40:38 -0700 (PDT) From: Mark Millard Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Mime-Version: 1.0 (Mac OS X Mail 10.0 \(3226\)) Subject: stable/11 -r307797 on BPi-M3 (cortex-a7): truss gets segmentation fault for handling unknown system call Message-Id: Date: Tue, 25 Oct 2016 11:40:38 -0700 Cc: FreeBSD Toolchain , FreeBSD Current To: freebsd-arm , FreeBSD-STABLE Mailing List X-Mailer: Apple Mail (2.3226) X-BeenThere: freebsd-toolchain@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Maintenance of FreeBSD's integrated toolchain List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 Oct 2016 18:40:41 -0000 [The following has been reported in: = https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D213778 .] In trying to build lang/gcc6 xgcc's cc1 got some SIGSYS examples. In = trying to track things down I ran into truss getting a SIGSEGV when it = tries to handle the situation. . . In truss's enter_syscall there is (from a live gdb on truss, after the = segmentation fault): 380 t->cs.name =3D sysdecode_syscallname(t->proc->abi->abi, = t->cs.number); 381 if (t->cs.name =3D=3D NULL) (gdb)=20 382 fprintf(info->outfile, "-- UNKNOWN %s SYSCALL %d = --\n", 383 t->proc->abi->type, t->cs.number); 384=09 385 sc =3D get_syscall(t->cs.name, narg); 386 t->cs.nargs =3D sc->nargs; 387 assert(sc->nargs <=3D nitems(t->cs.s_args)); 388=09 389 t->cs.sc =3D sc; (gdb) print *t $2 =3D {entries =3D {le_next =3D 0x0, le_prev =3D 0x20617070}, proc =3D = 0x20617060, tid =3D 100150, in_syscall =3D 1, cs =3D {sc =3D 0x0, name =3D= 0x0, number =3D 580828064, args =3D 0x2061b0c0, nargs =3D 0,=20 s_args =3D 0x2061b0ec}, before =3D {tv_sec =3D 1477418265, tv_nsec =3D= 492342263}, after =3D {tv_sec =3D 1477418265, tv_nsec =3D 492496630}} (gdb) print sc $3 =3D (struct syscall *) 0x0 So line 386 listed above gets a segmentation fault for sc->nargs when = t->cs.name is a NULL pointer: sc ends up NULL. Looking at the two things that the fprintf on lines 382 and 383 would = report: (gdb) print t->proc->abi->type $4 =3D 0x10166 "FreeBSD ELF32" (gdb) print t->cs.number $5 =3D 580828064 (gdb) print narg $6 =3D 0 (that last is for context for the get_syscall arguments). FYI: 580828064 =3D 0x229EBBA0 Context: root@bananapi-m3:/usr/ports # uname -apKU FreeBSD bananapi-m3 11.0-STABLE FreeBSD 11.0-STABLE #0 r307797M: Mon Oct = 24 00:41:16 PDT 2016 = markmi@FreeBSDx64:/usr/local/src/crochet/work/obj/arm.armv6/usr/src/sys/AL= LWINNER arm armv6 1100505 1100505 =3D=3D=3D Mark Millard markmi at dsl-only.net From owner-freebsd-toolchain@freebsd.org Tue Oct 25 18:40:41 2016 Return-Path: Delivered-To: freebsd-toolchain@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 424F6C2183F for ; Tue, 25 Oct 2016 18:40:41 +0000 (UTC) (envelope-from markmi@dsl-only.net) Received: from asp.reflexion.net (outbound-mail-210-33.reflexion.net [208.70.210.33]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E8228E3E for ; Tue, 25 Oct 2016 18:40:40 +0000 (UTC) (envelope-from markmi@dsl-only.net) Received: (qmail 29755 invoked from network); 25 Oct 2016 18:41:35 -0000 Received: from unknown (HELO mail-cs-01.app.dca.reflexion.local) (10.81.19.1) by 0 (rfx-qmail) with SMTP; 25 Oct 2016 18:41:35 -0000 Received: by mail-cs-01.app.dca.reflexion.local (Reflexion email security v8.10.0) with SMTP; Tue, 25 Oct 2016 14:40:47 -0400 (EDT) Received: (qmail 16205 invoked from network); 25 Oct 2016 18:40:47 -0000 Received: from unknown (HELO iron2.pdx.net) (69.64.224.71) by 0 (rfx-qmail) with (AES256-SHA encrypted) SMTP; 25 Oct 2016 18:40:47 -0000 Received: from [192.168.1.106] (c-76-115-7-162.hsd1.or.comcast.net [76.115.7.162]) by iron2.pdx.net (Postfix) with ESMTPSA id C49FDEC903A; Tue, 25 Oct 2016 11:40:38 -0700 (PDT) From: Mark Millard Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Mime-Version: 1.0 (Mac OS X Mail 10.0 \(3226\)) Subject: stable/11 -r307797 on BPi-M3 (cortex-a7): truss gets segmentation fault for handling unknown system call Message-Id: <0699F744-DEB3-4ED5-91A9-B77EA2ACED37@dsl-only.net> Date: Tue, 25 Oct 2016 11:40:38 -0700 Cc: FreeBSD Toolchain , FreeBSD Current To: freebsd-arm , FreeBSD-STABLE Mailing List X-Mailer: Apple Mail (2.3226) X-BeenThere: freebsd-toolchain@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Maintenance of FreeBSD's integrated toolchain List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 Oct 2016 18:40:41 -0000 [The following has been reported in: = https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D213778 .] In trying to build lang/gcc6 xgcc's cc1 got some SIGSYS examples. In = trying to track things down I ran into truss getting a SIGSEGV when it = tries to handle the situation. . . In truss's enter_syscall there is (from a live gdb on truss, after the = segmentation fault): 380 t->cs.name =3D sysdecode_syscallname(t->proc->abi->abi, = t->cs.number); 381 if (t->cs.name =3D=3D NULL) (gdb)=20 382 fprintf(info->outfile, "-- UNKNOWN %s SYSCALL %d = --\n", 383 t->proc->abi->type, t->cs.number); 384=09 385 sc =3D get_syscall(t->cs.name, narg); 386 t->cs.nargs =3D sc->nargs; 387 assert(sc->nargs <=3D nitems(t->cs.s_args)); 388=09 389 t->cs.sc =3D sc; (gdb) print *t $2 =3D {entries =3D {le_next =3D 0x0, le_prev =3D 0x20617070}, proc =3D = 0x20617060, tid =3D 100150, in_syscall =3D 1, cs =3D {sc =3D 0x0, name =3D= 0x0, number =3D 580828064, args =3D 0x2061b0c0, nargs =3D 0,=20 s_args =3D 0x2061b0ec}, before =3D {tv_sec =3D 1477418265, tv_nsec =3D= 492342263}, after =3D {tv_sec =3D 1477418265, tv_nsec =3D 492496630}} (gdb) print sc $3 =3D (struct syscall *) 0x0 So line 386 listed above gets a segmentation fault for sc->nargs when = t->cs.name is a NULL pointer: sc ends up NULL. Looking at the two things that the fprintf on lines 382 and 383 would = report: (gdb) print t->proc->abi->type $4 =3D 0x10166 "FreeBSD ELF32" (gdb) print t->cs.number $5 =3D 580828064 (gdb) print narg $6 =3D 0 (that last is for context for the get_syscall arguments). FYI: 580828064 =3D 0x229EBBA0 Context: root@bananapi-m3:/usr/ports # uname -apKU FreeBSD bananapi-m3 11.0-STABLE FreeBSD 11.0-STABLE #0 r307797M: Mon Oct = 24 00:41:16 PDT 2016 = markmi@FreeBSDx64:/usr/local/src/crochet/work/obj/arm.armv6/usr/src/sys/AL= LWINNER arm armv6 1100505 1100505 =3D=3D=3D Mark Millard markmi at dsl-only.net From owner-freebsd-toolchain@freebsd.org Tue Oct 25 21:38:51 2016 Return-Path: Delivered-To: freebsd-toolchain@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 68E01C2111D for ; Tue, 25 Oct 2016 21:38:51 +0000 (UTC) (envelope-from markmi@dsl-only.net) Received: from asp.reflexion.net (outbound-mail-210-32.reflexion.net [208.70.210.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 29968AB8 for ; Tue, 25 Oct 2016 21:38:50 +0000 (UTC) (envelope-from markmi@dsl-only.net) Received: (qmail 20908 invoked from network); 25 Oct 2016 21:32:08 -0000 Received: from unknown (HELO mail-cs-01.app.dca.reflexion.local) (10.81.19.1) by 0 (rfx-qmail) with SMTP; 25 Oct 2016 21:32:08 -0000 Received: by mail-cs-01.app.dca.reflexion.local (Reflexion email security v8.10.0) with SMTP; Tue, 25 Oct 2016 17:32:18 -0400 (EDT) Received: (qmail 22302 invoked from network); 25 Oct 2016 21:32:17 -0000 Received: from unknown (HELO iron2.pdx.net) (69.64.224.71) by 0 (rfx-qmail) with (AES256-SHA encrypted) SMTP; 25 Oct 2016 21:32:17 -0000 Received: from [192.168.1.106] (c-76-115-7-162.hsd1.or.comcast.net [76.115.7.162]) by iron2.pdx.net (Postfix) with ESMTPSA id 151B0EC903A; Tue, 25 Oct 2016 14:32:09 -0700 (PDT) From: Mark Millard Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Mime-Version: 1.0 (Mac OS X Mail 10.0 \(3226\)) Subject: stable/11 -r307797 on BPi-M3 (cortex-a7): xgcc's cc1 during lang/gcc6 build gets SIGSYS failures (/usr/ports -r424540) Message-Id: <5340B95D-9B61-4D97-A28E-EB463C28C949@dsl-only.net> Date: Tue, 25 Oct 2016 14:32:08 -0700 Cc: FreeBSD Toolchain , FreeBSD Current To: freebsd-arm , FreeBSD-STABLE Mailing List X-Mailer: Apple Mail (2.3226) X-BeenThere: freebsd-toolchain@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Maintenance of FreeBSD's integrated toolchain List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 Oct 2016 21:38:51 -0000 [I'll be submitting some of the below information to bugzilla.] While trying to build lang/gcc6 on a BPI-M3 (Cortex-A7, ALLWINNER) I got = "xgcc: internal compiler error: Bad system call (program cc1)", which = means a SIGSYS (signal 12) resulted. [I will note that I'v never seen this issue (so far) on the rpi2: This = may be KERNCONF=3DALLWINNER specific. But I've not yet updated to = -r307797 on the rpi2. The BPI-M3 context is new for me; the rpi2 I've = been using for a long time.] This was under/on: root@bananapi-m3:/usr/ports # uname -apKU FreeBSD bananapi-m3 11.0-STABLE FreeBSD 11.0-STABLE #0 r307797M: Mon Oct = 24 00:41:16 PDT 2016 = markmi@FreeBSDx64:/usr/local/src/crochet/work/obj/arm.armv6/usr/src/sys/AL= LWINNER arm armv6 1100505 1100505 [Note this was cross-built and then a matching svnlite co was done on = the BPi-M3. So the source timestamps on the BPi-M3 are newer than the = times from the cross build.] root@bananapi-m3:/usr/ports # svnlite info /usr/ports/ | grep "Re[lv]" Relative URL: ^/head Revision: 424540 Last Changed Rev: 424540 dmesg | tail shows: pid 29581 (cc1), uid 0: exited on signal 12 (core dumped) pid 29613 (cc1), uid 0: exited on signal 12 (core dumped) pid 29622 (cc1), uid 0: exited on signal 12 (core dumped) pid 29651 (cc1), uid 0: exited on signal 12 (core dumped) pid 29660 (cc1), uid 0: exited on signal 12 (core dumped) pid 29798 (cc1), uid 0: exited on signal 12 (core dumped) pid 30422 (cc1), uid 0: exited on signal 12 (core dumped) pid 30426 (cc1), uid 0: exited on signal 12 (core dumped) pid 30428 (cc1), uid 0: exited on signal 12 (core dumped) pid 30431 (cc1), uid 0: exited on signal 12 (core dumped) (All the lang/gcc6 prerequisites built okay on the BPi-M3.) Unfortunately direct execution of the cc1 command on the libgcc2.i from = a use of -save-temps does not fail. For some reason the failure is only = when xgcc causes the cc1 command execution. Also unfortunately truss gets a segmentation fault of its own trying the = handle watching the SIGSYS related activity. (A truss bugzilla report = has been made.) Thus the following tail of the truss output for leading = up to the SIGSYS does not cover the SIGSYS related activity itself: = root@bananapi-m3:/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/armv6-= portbld-freebsd11.0/libgcc # tail truss.log 31183 100086: close(3) =3D 0 (0x0) 31183 100086: = openat(AT_FDCWD,"/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/lib= gcc/longlong.h",O_NOCTTY,00) ERR#2 'No such file or directory' 31183 100086: openat(AT_FDCWD,"./longlong.h",O_NOCTTY,00) ERR#2 'No such = file or directory' 31183 100086: openat(AT_FDCWD,"../.././gcc/longlong.h",O_NOCTTY,00) = ERR#2 'No such file or directory' 31183 100086: = openat(AT_FDCWD,"/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/lib= gcc/../gcc/longlong.h",O_NOCTTY,00) ERR#2 'No such file or directory' 31183 100086: = openat(AT_FDCWD,"/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/lib= gcc/../include/longlong.h",O_NOCTTY,00) =3D 3 (0x3) 31183 100086: fstat(3,{ mode=3D-rw-r--r-- = ,inode=3D573594,size=3D61185,blksize=3D32768 }) =3D 0 (0x0) 31183 100086: read(3,"/* longlong.h -- definitions for"...,61185) =3D = 61185 (0xef01) 31183 100086: close(3) =3D 0 (0x0) 31183 100086: = mmap(0x0,16384,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,16384,0x100000000= ) Via using gdb on truss [with truss running xgcc and xgcc in turn running = its cc1 instance]: = root@bananapi-m3:/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/armv6-= portbld-freebsd11.0/libgcc # gdb truss . . . [the below is in enter_syscall] . . . 380 t->cs.name =3D sysdecode_syscallname(t->proc->abi->abi, = t->cs.number); 381 if (t->cs.name =3D=3D NULL) (gdb)=20 382 fprintf(info->outfile, "-- UNKNOWN %s SYSCALL %d = --\n", 383 t->proc->abi->type, t->cs.number); 384=09 385 sc =3D get_syscall(t->cs.name, narg); 386 t->cs.nargs =3D sc->nargs; 387 assert(sc->nargs <=3D nitems(t->cs.s_args)); 388=09 389 t->cs.sc =3D sc; (t->cs.name =3D=3D NULL after line 380). . . Looking at the two things that the fprintf on lines 382 and 383 would = report: (gdb) print t->proc->abi->type $4 =3D 0x10166 "FreeBSD ELF32" (gdb) print t->cs.number $5 =3D 580828064 FYI: 580828064 =3D 0x229EBBA0 (sc =3D=3D NULL results from line 385 so sc->nargs on line 386 gets a = SIGSEGV.) Just for completness: (gdb) print *t $2 =3D {entries =3D {le_next =3D 0x0, le_prev =3D 0x20617070}, proc =3D = 0x20617060, tid =3D 100150, in_syscall =3D 1, cs =3D {sc =3D 0x0, name =3D= 0x0, number =3D 580828064, args =3D 0x2061b0c0, nargs =3D 0,=20 s_args =3D 0x2061b0ec}, before =3D {tv_sec =3D 1477418265, tv_nsec =3D = 492342263}, after =3D {tv_sec =3D 1477418265, tv_nsec =3D 492496630}} (gdb) print sc $3 =3D (struct syscall *) 0x0 Supporting details follow. . . The specific error reports are: xgcc: internal compiler error: Bad system call (program cc1) Please submit a full bug report, with preprocessed source if appropriate. See for instructions. gmake[5]: *** [Makefile:467: _muldi3.o] Error 4 gmake[5]: *** Waiting for unfinished jobs.... xgcc: internal compiler error: Bad system call (program cc1) Please submit a full bug report, with preprocessed source if appropriate. See for instructions. gmake[5]: *** [Makefile:467: _negdi2.o] Error 4 xgcc: internal compiler error: Bad system call (program cc1) Please submit a full bug report, with preprocessed source if appropriate. See for instructions. gmake[5]: *** [Makefile:467: _cmpdi2.o] Error 4 xgcc: internal compiler error: Bad system call (program cc1) Please submit a full bug report, with preprocessed source if appropriate. See for instructions. gmake[5]: *** [Makefile:467: _ucmpdi2.o] Error 4 gmake[5]: Leaving directory = '/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/armv6-portbld-freebsd1= 1.0/libgcc' gmake[4]: *** [Makefile:14874: all-stage1-target-libgcc] Error 2 The specific xgcc commands were: /usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/xgcc = -B/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/ = -B/usr/local/armv6-portbld-freebsd11.0/bin/ = -B/usr/local/armv6-portbld-freebsd11.0/lib/ -isystem = /usr/local/armv6-portbld-freebsd11.0/include -isystem = /usr/local/armv6-portbld-freebsd11.0/sys-include -O2 -pipe = -mcpu=3Dcortex-a7 -DLIBICONV_PLUG -g -fno-strict-aliasing -O2 -O2 -pipe = -mcpu=3Dcortex-a7 -DLIBICONV_PLUG -g -fno-strict-aliasing -DIN_GCC = -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wno-format = -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition = -isystem ./include -fPIC -pthread -fno-inline -fomit-frame-pointer -g = -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector -fPIC -pthread = -fno-inline -fomit-frame-pointer -I. -I. -I../.././gcc = -I/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc = -I/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/. = -I/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/../gcc = -I/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/../include = -DHAVE_CC_TLS -o _muldi3.o -MT _muldi3.o -MD -MP -MF _muldi3.dep = -DL_muldi3 -c = /usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/libgcc2.c = -fvisibility=3Dhidden -DHIDE_EXPORTS /usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/xgcc = -B/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/ = -B/usr/local/armv6-portbld-freebsd11.0/bin/ = -B/usr/local/armv6-portbld-freebsd11.0/lib/ -isystem = /usr/local/armv6-portbld-freebsd11.0/include -isystem = /usr/local/armv6-portbld-freebsd11.0/sys-include -O2 -pipe = -mcpu=3Dcortex-a7 -DLIBICONV_PLUG -g -fno-strict-aliasing -O2 -O2 -pipe = -mcpu=3Dcortex-a7 -DLIBICONV_PLUG -g -fno-strict-aliasing -DIN_GCC = -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wno-format = -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition = -isystem ./include -fPIC -pthread -fno-inline -fomit-frame-pointer -g = -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector -fPIC -pthread = -fno-inline -fomit-frame-pointer -I. -I. -I../.././gcc = -I/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc = -I/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/. = -I/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/../gcc = -I/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/../include = -DHAVE_CC_TLS -o _negdi2.o -MT _negdi2.o -MD -MP -MF _negdi2.dep = -DL_negdi2 -c = /usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/libgcc2.c = -fvisibility=3Dhidden -DHIDE_EXPORTS /usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/xgcc = -B/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/ = -B/usr/local/armv6-portbld-freebsd11.0/bin/ = -B/usr/local/armv6-portbld-freebsd11.0/lib/ -isystem = /usr/local/armv6-portbld-freebsd11.0/include -isystem = /usr/local/armv6-portbld-freebsd11.0/sys-include -O2 -pipe = -mcpu=3Dcortex-a7 -DLIBICONV_PLUG -g -fno-strict-aliasing -O2 -O2 -pipe = -mcpu=3Dcortex-a7 -DLIBICONV_PLUG -g -fno-strict-aliasing -DIN_GCC = -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wno-format = -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition = -isystem ./include -fPIC -pthread -fno-inline -fomit-frame-pointer -g = -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector -fPIC -pthread = -fno-inline -fomit-frame-pointer -I. -I. -I../.././gcc = -I/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc = -I/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/. = -I/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/../gcc = -I/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/../include = -DHAVE_CC_TLS -o _cmpdi2.o -MT _cmpdi2.o -MD -MP -MF _cmpdi2.dep = -DL_cmpdi2 -c = /usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/libgcc2.c = -fvisibility=3Dhidden -DHIDE_EXPORTS /usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/xgcc = -B/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/ = -B/usr/local/armv6-portbld-freebsd11.0/bin/ = -B/usr/local/armv6-portbld-freebsd11.0/lib/ -isystem = /usr/local/armv6-portbld-freebsd11.0/include -isystem = /usr/local/armv6-portbld-freebsd11.0/sys-include -O2 -pipe = -mcpu=3Dcortex-a7 -DLIBICONV_PLUG -g -fno-strict-aliasing -O2 -O2 -pipe = -mcpu=3Dcortex-a7 -DLIBICONV_PLUG -g -fno-strict-aliasing -DIN_GCC = -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wno-format = -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition = -isystem ./include -fPIC -pthread -fno-inline -fomit-frame-pointer -g = -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector -fPIC -pthread = -fno-inline -fomit-frame-pointer -I. -I. -I../.././gcc = -I/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc = -I/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/. = -I/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/../gcc = -I/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/../include = -DHAVE_CC_TLS -o _ucmpdi2.o -MT _ucmpdi2.o -MD -MP -MF _ucmpdi2.dep = -DL_ucmpdi2 -c = /usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/libgcc2.c = -fvisibility=3Dhidden -DHIDE_EXPORTS Unfortunately gdb does not report much directly. . . root@bananapi-m3:/usr/ports # gdb = /usr/obj/portswork/usr/ports/lang/gcc6/work/.build/gcc/cc1 = /usr/obj/portswork/usr/ports/lang/gcc6/work/.build/armv6-portbld-freebsd11= .0/libgcc/cc1.core GNU gdb 6.1.1 [FreeBSD] Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you = are welcome to change it and/or distribute copies of it under certain = conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for = details. This GDB was configured as "armv6-marcel-freebsd"... Core was generated by = `/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/cc1 -quiet -I = . -I . -I'. Program terminated with signal 12, Bad system call. Reading symbols from /usr/local/lib/libmpc.so.3...done. Loaded symbols for /usr/local/lib/libmpc.so.3 Reading symbols from /usr/local/lib/libmpfr.so.4...done. Loaded symbols for /usr/local/lib/libmpfr.so.4 Reading symbols from /usr/local/lib/libgmp.so.10...done. Loaded symbols for /usr/local/lib/libgmp.so.10 Reading symbols from /lib/libz.so.6...Reading symbols from = /usr/lib/debug//lib/libz.so.6.debug...done. done. Loaded symbols for /lib/libz.so.6 Reading symbols from /usr/lib/libc++.so.1...Reading symbols from = /usr/lib/debug//usr/lib/libc++.so.1.debug...done. done. Loaded symbols for /usr/lib/libc++.so.1 Reading symbols from /lib/libcxxrt.so.1...Reading symbols from = /usr/lib/debug//lib/libcxxrt.so.1.debug...done. done. Loaded symbols for /lib/libcxxrt.so.1 Reading symbols from /lib/libm.so.5...Reading symbols from = /usr/lib/debug//lib/libm.so.5.debug...done. done. Loaded symbols for /lib/libm.so.5 Reading symbols from /lib/libgcc_s.so.1...Reading symbols from = /usr/lib/debug//lib/libgcc_s.so.1.debug...done. done. Loaded symbols for /lib/libgcc_s.so.1 Reading symbols from /lib/libc.so.7...Reading symbols from = /usr/lib/debug//lib/libc.so.7.debug...done. done. Loaded symbols for /lib/libc.so.7 Reading symbols from /libexec/ld-elf.so.1...Reading symbols from = /usr/lib/debug//libexec/ld-elf.so.1.debug...done. done. Loaded symbols for /libexec/ld-elf.so.1 #0 0xbfbf732c in ?? () (gdb) bt #0 0xbfbf732c in ?? () Cannot access memory at address 0x0 (gdb) info reg r0 0x4e 78 r1 0x0 0 r2 0x17c8506 24937734 r3 0x65 101 r4 0xbfbf7488 -1077971832 r5 0xbfbf7484 -1077971836 r6 0xbfbf7488 -1077971832 r7 0x229eab40 580823872 r8 0x0 0 r9 0xbfbfa23c -1077960132 r10 0xbfbf7484 -1077971836 r11 0x0 0 r12 0x17ef3b1 25097137 sp 0xbfbf7180 -1077972608 lr 0x65 101 pc 0xbfbf732c -1077972180 fps 0x0 0 cpsr 0xa0000010 -1610612720 Using -v -save-temps on one of the failing xgcc command lines gives: = root@bananapi-m3:/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/armv6-= portbld-freebsd11.0/libgcc # = /usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/xgcc = -B/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/ = -B/usr/local/armv6-portbld-freebsd11.0/bin/ = -B/usr/local/armv6-portbld-freebsd11.0/lib/ -isystem = /usr/local/armv6-portbld-freebsd11.0/include -isystem = /usr/local/armv6-portbld-freebsd11.0/sys-include -O2 -pipe = -mcpu=3Dcortex-a7 -DLIBICONV_PLUG -g -fno-strict-aliasing -O2 -O2 -pipe = -mcpu=3Dcortex-a7 -DLIBICONV_PLUG -g -fno-strict-aliasing -DIN_GCC = -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wno-format = -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition = -isystem ./include -fPIC -pthread -fno-inline -fomit-frame-pointer -g = -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector -fPIC -pthread = -fno-inline -fomit-frame-pointer -I. -I. -I../.././gcc = -I/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc = -I/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/. = -I/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/../gcc = -I/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/../include = -DHAVE_CC_TLS -o _muldi3.o -MT _muldi3.o -MD -MP -MF _muldi3.dep = -DL_muldi3 -c = /usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/libgcc2.c = -fvisibility=3Dhidden -DHIDE_EXPORTS -v -save-temps xgcc: warning: -pipe ignored because -save-temps specified Reading specs from = /usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/specs = COLLECT_GCC=3D/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/xgc= c Target: armv6-portbld-freebsd11.0 Configured with: = /usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/configure = --disable-multilib --with-build-config=3Dbootstrap-debug --disable-nls = --enable-gnu-indirect-function --libdir=3D/usr/local/lib/gcc6 = --libexecdir=3D/usr/local/libexec/gcc6 --program-suffix=3D6 = --with-as=3D/usr/local/bin/as --with-gmp=3D/usr/local = --with-gxx-include-dir=3D/usr/local/lib/gcc6/include/c++/ = --with-ld=3D/usr/local/bin/ld --with-pkgversion=3D'FreeBSD Ports = Collection' --with-system-zlib --disable-libgcj = --enable-languages=3Dc,c++,objc,fortran --prefix=3D/usr/local = --localstatedir=3D/var --mandir=3D/usr/local/man = --infodir=3D/usr/local/info/gcc6 --build=3Darmv6-portbld-freebsd11.0 Thread model: posix gcc version 6.2.0 (FreeBSD Ports Collection)=20 COLLECT_GCC_OPTIONS=3D'-B' = '/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/' '-B' = '/usr/local/armv6-portbld-freebsd11.0/bin/' '-B' = '/usr/local/armv6-portbld-freebsd11.0/lib/' '-isystem' = '/usr/local/armv6-portbld-freebsd11.0/include' '-isystem' = '/usr/local/armv6-portbld-freebsd11.0/sys-include' '-O2' '-pipe' = '-mcpu=3Dcortex-a7' '-D' 'LIBICONV_PLUG' '-g' '-O2' '-O2' '-pipe' = '-mcpu=3Dcortex-a7' '-D' 'LIBICONV_PLUG' '-g' '-fno-strict-aliasing' = '-D' 'IN_GCC' '-Wextra' '-Wall' '-Wno-narrowing' '-Wwrite-strings' = '-Wcast-qual' '-Wformat=3D0' '-Wstrict-prototypes' = '-Wmissing-prototypes' '-Wold-style-definition' '-isystem' './include' = '-pthread' '-g' '-D' 'IN_LIBGCC2' '-fbuilding-libgcc' = '-fno-stack-protector' '-fPIC' '-pthread' '-fno-inline' = '-fomit-frame-pointer' '-I' '.' '-I' '.' '-I' '../.././gcc' '-I' = '/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc' '-I' = '/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/.' '-I' = '/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/../gcc' = '-I' = '/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/../include' = '-D' 'HAVE_CC_TLS' '-o' '_muldi3.o' '-MT' '_muldi3.o' '-MD' '-MP' '-MF' = '_muldi3.dep' '-D' 'L_muldi3' '-c' '-fvisibility=3Dhidden' '-D' = 'HIDE_EXPORTS' '-v' '-save-temps' '-mtls-dialect=3Dgnu' /usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/cc1 -E -quiet = -v -I . -I . -I ../.././gcc -I = /usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc -I = /usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/. -I = /usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/../gcc -I = /usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/../include = -iprefix = /usr/obj/portswork/usr/ports/lang/gcc6/work/.build/gcc/../lib/gcc6/gcc/arm= v6-portbld-freebsd11.0/6.2.0/ -isystem = /usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/include = -isystem = /usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/include-fixed = -MD _muldi3.d -MF _muldi3.dep -MP -MT _muldi3.o -D LIBICONV_PLUG -D = LIBICONV_PLUG -D IN_GCC -D IN_LIBGCC2 -D HAVE_CC_TLS -D L_muldi3 -D = HIDE_EXPORTS -isystem /usr/local/armv6-portbld-freebsd11.0/include = -isystem /usr/local/armv6-portbld-freebsd11.0/sys-include -isystem = ./include = /usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/libgcc2.c = -mcpu=3Dcortex-a7 -mcpu=3Dcortex-a7 -mtls-dialect=3Dgnu -Wextra -Wall = -Wno-narrowing -Wwrite-strings -Wcast-qual -Wformat=3D0 = -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition = -fno-strict-aliasing -fbuilding-libgcc -fno-stack-protector -fPIC = -fno-inline -fomit-frame-pointer -fvisibility=3Dhidden -g -g -g = -fworking-directory -O2 -O2 -O2 -fpch-preprocess -o libgcc2.i ignoring nonexistent directory = "/usr/local/armv6-portbld-freebsd11.0/include" ignoring nonexistent directory = "/usr/local/armv6-portbld-freebsd11.0/sys-include" ignoring nonexistent directory "./include" ignoring nonexistent directory = "/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/gcc/../lib/gcc6/gcc/ar= mv6-portbld-freebsd11.0/6.2.0/include" ignoring nonexistent directory = "/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/gcc/../lib/gcc6/gcc/ar= mv6-portbld-freebsd11.0/6.2.0/include-fixed" ignoring nonexistent directory = "/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/gcc/../lib/gcc6/gcc/ar= mv6-portbld-freebsd11.0/6.2.0/../../../../../armv6-portbld-freebsd11.0/inc= lude" ignoring nonexistent directory = "/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/gcc/../lib/gcc6/gcc/..= /../../lib/gcc6/gcc/armv6-portbld-freebsd11.0/6.2.0/include" ignoring nonexistent directory = "/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/gcc/../lib/gcc6/gcc/..= /../../lib/gcc6/gcc/armv6-portbld-freebsd11.0/6.2.0/include-fixed" ignoring nonexistent directory = "/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/gcc/../lib/gcc6/gcc/..= /../../lib/gcc6/gcc/armv6-portbld-freebsd11.0/6.2.0/../../../../../armv6-p= ortbld-freebsd11.0/include" ignoring duplicate directory "." ignoring duplicate directory = "/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/." #include "..." search starts here: #include <...> search starts here: . ../.././gcc /usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc /usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/../gcc /usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/../include /usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/include /usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/include-fixed /usr/local/include /usr/include End of search list. COLLECT_GCC_OPTIONS=3D'-B' = '/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/' '-B' = '/usr/local/armv6-portbld-freebsd11.0/bin/' '-B' = '/usr/local/armv6-portbld-freebsd11.0/lib/' '-isystem' = '/usr/local/armv6-portbld-freebsd11.0/include' '-isystem' = '/usr/local/armv6-portbld-freebsd11.0/sys-include' '-O2' '-pipe' = '-mcpu=3Dcortex-a7' '-D' 'LIBICONV_PLUG' '-g' '-O2' '-O2' '-pipe' = '-mcpu=3Dcortex-a7' '-D' 'LIBICONV_PLUG' '-g' '-fno-strict-aliasing' = '-D' 'IN_GCC' '-Wextra' '-Wall' '-Wno-narrowing' '-Wwrite-strings' = '-Wcast-qual' '-Wformat=3D0' '-Wstrict-prototypes' = '-Wmissing-prototypes' '-Wold-style-definition' '-isystem' './include' = '-pthread' '-g' '-D' 'IN_LIBGCC2' '-fbuilding-libgcc' = '-fno-stack-protector' '-fPIC' '-pthread' '-fno-inline' = '-fomit-frame-pointer' '-I' '.' '-I' '.' '-I' '../.././gcc' '-I' = '/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc' '-I' = '/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/.' '-I' = '/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/../gcc' = '-I' = '/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/../include' = '-D' 'HAVE_CC_TLS' '-o' '_muldi3.o' '-MT' '_muldi3.o' '-MD' '-MP' '-MF' = '_muldi3.dep' '-D' 'L_muldi3' '-c' '-fvisibility=3Dhidden' '-D' = 'HIDE_EXPORTS' '-v' '-save-temps' '-mtls-dialect=3Dgnu' /usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/cc1 = -fpreprocessed libgcc2.i -quiet -dumpbase libgcc2.c -mcpu=3Dcortex-a7 = -mcpu=3Dcortex-a7 -mtls-dialect=3Dgnu -auxbase-strip _muldi3.o -g -g -g = -O2 -O2 -O2 -Wextra -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual = -Wformat=3D0 -Wstrict-prototypes -Wmissing-prototypes = -Wold-style-definition -version -fno-strict-aliasing -fbuilding-libgcc = -fno-stack-protector -fPIC -fno-inline -fomit-frame-pointer = -fvisibility=3Dhidden -o libgcc2.s GNU C11 (FreeBSD Ports Collection) version 6.2.0 = (armv6-portbld-freebsd11.0) compiled by GNU C version 4.2.1 Compatible FreeBSD Clang 3.8.0 = (tags/RELEASE_380/final 262564), GMP version 5.1.3, MPFR version 3.1.5, = MPC version 1.0.3, isl version none GGC heuristics: --param ggc-min-expand=3D30 --param = ggc-min-heapsize=3D4096 GNU C11 (FreeBSD Ports Collection) version 6.2.0 = (armv6-portbld-freebsd11.0) compiled by GNU C version 4.2.1 Compatible FreeBSD Clang 3.8.0 = (tags/RELEASE_380/final 262564), GMP version 5.1.3, MPFR version 3.1.5, = MPC version 1.0.3, isl version none GGC heuristics: --param ggc-min-expand=3D30 --param = ggc-min-heapsize=3D4096 Compiler executable checksum: 8858bcab14af90339532fc36ec745f79 xgcc: internal compiler error: Bad system call (program cc1) Please submit a full bug report, with preprocessed source if appropriate. See for instructions. = root@bananapi-m3:/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/armv6-= portbld-freebsd11.0/libgcc # ls -lt | head total 12712 -rw------- 1 root wheel 12181504 Oct 25 16:57 cc1.core -rw-r--r-- 1 root wheel 0 Oct 25 16:57 libgcc2.s -rw-r--r-- 1 root wheel 108880 Oct 25 16:57 libgcc2.i -rw-r--r-- 1 root wheel 7636 Oct 25 16:57 _muldi3.dep -rw-r--r-- 1 root wheel 560 Oct 25 10:16 _ucmpdi2.o -rw-r--r-- 1 root wheel 560 Oct 25 10:16 _cmpdi2.o -rw-r--r-- 1 root wheel 560 Oct 25 10:16 _negdi2.o -rw-r--r-- 1 root wheel 560 Oct 25 10:16 _muldi3.o -rw-r--r-- 1 root wheel 1784 Oct 25 10:16 _dvmd_lnx_s.o Unfortunately direct execution of the reported cc1 command on the = libgcc2.i in question does not fail. Attempting to run the xgcc command under truss got a segmentation fault = in truss itself: = root@bananapi-m3:/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/armv6-= portbld-freebsd11.0/libgcc # truss -faeH -o truss.log = /usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/xgcc = -B/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/ = -B/usr/local/armv6-portbld-freebsd11.0/bin/ = -B/usr/local/armv6-portbld-freebsd11.0/lib/ -isystem = /usr/local/armv6-portbld-freebsd11.0/include -isystem = /usr/local/armv6-portbld-freebsd11.0/sys-include -O2 -pipe = -mcpu=3Dcortex-a7 -DLIBICONV_PLUG -g -fno-strict-aliasing -O2 -O2 -pipe = -mcpu=3Dcortex-a7 -DLIBICONV_PLUG -g -fno-strict-aliasing -DIN_GCC -W = -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wno-format = -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem = ./include -fPIC -pthread -fno-inline -fomit-frame-pointer -g = -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector -fPIC -pthread = -fno-inline -fomit-frame-pointer -I. -I. -I../.././gcc = -I/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc = -I/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/. = -I/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/../gcc = -I/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/../include = -DHAVE_CC_TLS -o _muldi3.o -MT _muldi3.o -MD -MP -MF _muldi3.dep = -DL_muldi3 -c = /usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/libgcc2.c = -fvisibility=3Dhidden -DHIDE_EXPORTS Segmentation fault (core dumped) [There is a separate buzilla report about this truss failure.] =3D=3D=3D Mark Millard markmi at dsl-only.net From owner-freebsd-toolchain@freebsd.org Wed Oct 26 22:31:17 2016 Return-Path: Delivered-To: freebsd-toolchain@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C9A46C23826 for ; Wed, 26 Oct 2016 22:31:17 +0000 (UTC) (envelope-from markmi@dsl-only.net) Received: from asp.reflexion.net (outbound-mail-210-45.reflexion.net [208.70.210.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8A33494A for ; Wed, 26 Oct 2016 22:31:17 +0000 (UTC) (envelope-from markmi@dsl-only.net) Received: (qmail 25672 invoked from network); 26 Oct 2016 22:24:45 -0000 Received: from unknown (HELO mail-cs-02.app.dca.reflexion.local) (10.81.19.2) by 0 (rfx-qmail) with SMTP; 26 Oct 2016 22:24:45 -0000 Received: by mail-cs-02.app.dca.reflexion.local (Reflexion email security v8.10.0) with SMTP; Wed, 26 Oct 2016 18:24:39 -0400 (EDT) Received: (qmail 32764 invoked from network); 26 Oct 2016 22:24:39 -0000 Received: from unknown (HELO iron2.pdx.net) (69.64.224.71) by 0 (rfx-qmail) with (AES256-SHA encrypted) SMTP; 26 Oct 2016 22:24:39 -0000 Received: from [192.168.1.106] (c-76-115-7-162.hsd1.or.comcast.net [76.115.7.162]) by iron2.pdx.net (Postfix) with ESMTPSA id 913A7EC9105; Wed, 26 Oct 2016 15:24:35 -0700 (PDT) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 10.1 \(3251\)) Subject: Re: stable/11 -r307797 on BPi-M3 (cortex-a7): xgcc's cc1 during lang/gcc6 build gets SIGSYS failures (/usr/ports -r424540) From: Mark Millard In-Reply-To: <5340B95D-9B61-4D97-A28E-EB463C28C949@dsl-only.net> Date: Wed, 26 Oct 2016 15:24:34 -0700 Cc: FreeBSD Toolchain , FreeBSD Current Content-Transfer-Encoding: quoted-printable Message-Id: <2DC2BFC1-613E-4491-84A4-3EC505B10B9D@dsl-only.net> References: <5340B95D-9B61-4D97-A28E-EB463C28C949@dsl-only.net> To: freebsd-arm , FreeBSD-STABLE Mailing List X-Mailer: Apple Mail (2.3251) X-BeenThere: freebsd-toolchain@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Maintenance of FreeBSD's integrated toolchain List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 Oct 2016 22:31:17 -0000 [A top post noting that user "ast" CSW's are involved and other details = in the sequence leading up to the failure.] Using "ktrace -i -t +fw" it looks like every repeat of the problem ends = up with the following sort of sequence (a variation is shown later): 34629 cc1 CALL = mmap(0,0x4000,0x3,0x1002,0xfff= fffff,0x1c,0,0) 34629 cc1 RET mmap 568225792/0x21de7000 34629 cc1 PFLT 0x21de7000 VM_PROT_WRITE 34629 cc1 PRET KERN_SUCCESS 34629 cc1 PFLT 0x21de8000 VM_PROT_WRITE 34629 cc1 PRET KERN_SUCCESS 34629 cc1 PFLT 0x21de9000 VM_PROT_WRITE 34629 cc1 PRET KERN_SUCCESS 34629 cc1 PFLT 0x21dea000 VM_PROT_WRITE 34629 cc1 PRET KERN_SUCCESS 34629 cc1 PFLT 0x229e8000 VM_PROT_WRITE 34629 cc1 PRET KERN_SUCCESS 34629 cc1 PFLT 0x229e9000 VM_PROT_WRITE 34629 cc1 PRET KERN_SUCCESS 34629 cc1 PFLT 0x229ea000 VM_PROT_WRITE 34629 cc1 PRET KERN_SUCCESS 34629 cc1 CSW stop user "ast" 34629 cc1 CSW resume user "ast" 34629 cc1 PFLT 0x229eb000 VM_PROT_WRITE 34629 cc1 PRET KERN_SUCCESS 34629 cc1 PFLT 0x229ec000 VM_PROT_WRITE 34629 cc1 PRET KERN_SUCCESS 34629 cc1 CALL [-17504] 34629 cc1 RET [-17504] -1 errno 78 Function not implemented 34629 cc1 PSIG SIGSYS SIG_DFL code=3DSI_KERNEL 34629 cc1 NAMI "cc1.core" 34630 as CSW stop kernel "piperd" 34630 as Events dropped. 34630 as RET read 0 34630 as CALL close(0) 34630 as RET close 0 . . . I'll note that for the source this was compiling I used gdb truss with = run -feH -o truss.log and it reported: (gdb) print t->cs.number $5 =3D 580828064 FYI: 580828064 =3D 0x229EBBA0 where the truss segmentation fault was at line 385 of the following = (sc=3D=3DNULL in the context): > 380 t->cs.name =3D sysdecode_syscallname(t->proc->abi->abi, = t->cs.number); > 381 if (t->cs.name =3D=3D NULL) > (gdb)=20 > 382 fprintf(info->outfile, "-- UNKNOWN %s SYSCALL %d = --\n", > 383 t->proc->abi->type, t->cs.number); > 384=09 > 385 sc =3D get_syscall(t->cs.name, narg); > 386 t->cs.nargs =3D sc->nargs; > 387 assert(sc->nargs <=3D nitems(t->cs.s_args)); > 388=09 > 389 t->cs.sc =3D sc; The 229E matched the upper part of local PFLT activity around the user = "ast" CSW's, including just before the bad call. But the details do vary some based on the source file being compiled. = For example here the user "ast" CSW's are just before the mmap but are = still just after the 0x229ea000 PFLT: 34698 cc1 PRET KERN_SUCCESS 34698 cc1 PFLT 0xbfbf2000 VM_PROT_WRITE 34698 cc1 PRET KERN_SUCCESS 34698 cc1 PFLT 0x229e7000 VM_PROT_WRITE 34698 cc1 PRET KERN_SUCCESS 34698 cc1 PFLT 0x229e8000 VM_PROT_WRITE 34698 cc1 PRET KERN_SUCCESS 34698 cc1 PFLT 0x229e9000 VM_PROT_WRITE 34698 cc1 PRET KERN_SUCCESS 34698 cc1 PFLT 0x229ea000 VM_PROT_WRITE 34698 cc1 PRET KERN_SUCCESS 34698 cc1 CSW stop user "ast" 34698 cc1 CSW resume user "ast" 34698 cc1 CALL = mmap(0,0x4000,0x3,0x1002,0xfff= fffff,0,0,0) 34698 cc1 RET mmap 568225792/0x21de7000 34698 cc1 PFLT 0x21de7000 VM_PROT_WRITE 34698 cc1 PRET KERN_SUCCESS 34698 cc1 PFLT 0x21de8000 VM_PROT_WRITE 34698 cc1 PRET KERN_SUCCESS 34698 cc1 PFLT 0x21de9000 VM_PROT_WRITE 34698 cc1 PRET KERN_SUCCESS 34698 cc1 PFLT 0x21dea000 VM_PROT_WRITE 34698 cc1 PRET KERN_SUCCESS 34698 cc1 PFLT 0x229eb000 VM_PROT_WRITE 34698 cc1 PRET KERN_SUCCESS 34698 cc1 CALL [-25840] 34698 cc1 RET [-25840] -1 errno 78 Function not implemented 34698 cc1 PSIG SIGSYS SIG_DFL code=3DSI_KERNEL 34698 cc1 NAMI "cc1.core" 34699 as CSW stop kernel "piperd" 34699 as Events dropped. 34699 as RET read 0 34699 as CALL close(0) 34699 as RET close 0 -25840 in 2's complement is: 0xF...F9B10 Here doing the gdb truss instead reports: (gdb) print t->cs.number $1 =3D 580819728 and 580819728 =3D 0x229E9B10 and the 229E part matches several PFLT's in the area, including just = before the bad call as well as just before the user "ast"s. Between them = are some PFLT's that do not match. I would guess that the 229E in t->cs.number in truss is from the PFLT = just before the failing syscall in each case. =3D=3D=3D Mark Millard markmi at dsl-only.net On 2016-Oct-25, at 2:32 PM, Mark Millard wrote: > [I'll be submitting some of the below information to bugzilla.] >=20 > While trying to build lang/gcc6 on a BPI-M3 (Cortex-A7, ALLWINNER) I = got "xgcc: internal compiler error: Bad system call (program cc1)", = which means a SIGSYS (signal 12) resulted. >=20 > [I will note that I'v never seen this issue (so far) on the rpi2: This = may be KERNCONF=3DALLWINNER specific. But I've not yet updated to = -r307797 on the rpi2. The BPI-M3 context is new for me; the rpi2 I've = been using for a long time.] >=20 > This was under/on: >=20 > root@bananapi-m3:/usr/ports # uname -apKU > FreeBSD bananapi-m3 11.0-STABLE FreeBSD 11.0-STABLE #0 r307797M: Mon = Oct 24 00:41:16 PDT 2016 = markmi@FreeBSDx64:/usr/local/src/crochet/work/obj/arm.armv6/usr/src/sys/AL= LWINNER arm armv6 1100505 1100505 >=20 > [Note this was cross-built and then a matching svnlite co was done on = the BPi-M3. So the source timestamps on the BPi-M3 are newer than the = times from the cross build.] >=20 > root@bananapi-m3:/usr/ports # svnlite info /usr/ports/ | grep "Re[lv]" > Relative URL: ^/head > Revision: 424540 > Last Changed Rev: 424540 >=20 > dmesg | tail shows: >=20 > pid 29581 (cc1), uid 0: exited on signal 12 (core dumped) > pid 29613 (cc1), uid 0: exited on signal 12 (core dumped) > pid 29622 (cc1), uid 0: exited on signal 12 (core dumped) > pid 29651 (cc1), uid 0: exited on signal 12 (core dumped) > pid 29660 (cc1), uid 0: exited on signal 12 (core dumped) > pid 29798 (cc1), uid 0: exited on signal 12 (core dumped) > pid 30422 (cc1), uid 0: exited on signal 12 (core dumped) > pid 30426 (cc1), uid 0: exited on signal 12 (core dumped) > pid 30428 (cc1), uid 0: exited on signal 12 (core dumped) > pid 30431 (cc1), uid 0: exited on signal 12 (core dumped) >=20 > (All the lang/gcc6 prerequisites built okay on the BPi-M3.) >=20 > Unfortunately direct execution of the cc1 command on the libgcc2.i = from a use of -save-temps does not fail. For some reason the failure is = only when xgcc causes the cc1 command execution. >=20 > Also unfortunately truss gets a segmentation fault of its own trying = the handle watching the SIGSYS related activity. (A truss bugzilla = report has been made.) Thus the following tail of the truss output for = leading up to the SIGSYS does not cover the SIGSYS related activity = itself: >=20 > = root@bananapi-m3:/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/armv6-= portbld-freebsd11.0/libgcc # tail truss.log > 31183 100086: close(3) =3D 0 (0x0) > 31183 100086: = openat(AT_FDCWD,"/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/lib= gcc/longlong.h",O_NOCTTY,00) ERR#2 'No such file or directory' > 31183 100086: openat(AT_FDCWD,"./longlong.h",O_NOCTTY,00) ERR#2 'No = such file or directory' > 31183 100086: openat(AT_FDCWD,"../.././gcc/longlong.h",O_NOCTTY,00) = ERR#2 'No such file or directory' > 31183 100086: = openat(AT_FDCWD,"/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/lib= gcc/../gcc/longlong.h",O_NOCTTY,00) ERR#2 'No such file or directory' > 31183 100086: = openat(AT_FDCWD,"/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/lib= gcc/../include/longlong.h",O_NOCTTY,00) =3D 3 (0x3) > 31183 100086: fstat(3,{ mode=3D-rw-r--r-- = ,inode=3D573594,size=3D61185,blksize=3D32768 }) =3D 0 (0x0) > 31183 100086: read(3,"/* longlong.h -- definitions for"...,61185) =3D = 61185 (0xef01) > 31183 100086: close(3) =3D 0 (0x0) > 31183 100086: = mmap(0x0,16384,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,16384,0x100000000= ) >=20 > Via using gdb on truss [with truss running xgcc and xgcc in turn = running its cc1 instance]: >=20 > = root@bananapi-m3:/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/armv6-= portbld-freebsd11.0/libgcc # gdb truss > . . . [the below is in enter_syscall] . . . > 380 t->cs.name =3D sysdecode_syscallname(t->proc->abi->abi, = t->cs.number); > 381 if (t->cs.name =3D=3D NULL) > (gdb)=20 > 382 fprintf(info->outfile, "-- UNKNOWN %s SYSCALL %d = --\n", > 383 t->proc->abi->type, t->cs.number); > 384=09 > 385 sc =3D get_syscall(t->cs.name, narg); > 386 t->cs.nargs =3D sc->nargs; > 387 assert(sc->nargs <=3D nitems(t->cs.s_args)); > 388=09 > 389 t->cs.sc =3D sc; >=20 > (t->cs.name =3D=3D NULL after line 380). . . >=20 > Looking at the two things that the fprintf on lines 382 and 383 would = report: >=20 > (gdb) print t->proc->abi->type > $4 =3D 0x10166 "FreeBSD ELF32" >=20 > (gdb) print t->cs.number > $5 =3D 580828064 >=20 > FYI: 580828064 =3D 0x229EBBA0 >=20 > (sc =3D=3D NULL results from line 385 so sc->nargs on line 386 gets a = SIGSEGV.) >=20 > Just for completness: >=20 > (gdb) print *t > $2 =3D {entries =3D {le_next =3D 0x0, le_prev =3D 0x20617070}, proc =3D = 0x20617060, tid =3D 100150, in_syscall =3D 1, cs =3D {sc =3D 0x0, name =3D= 0x0, number =3D 580828064, args =3D 0x2061b0c0, nargs =3D 0,=20 > s_args =3D 0x2061b0ec}, before =3D {tv_sec =3D 1477418265, tv_nsec =3D= 492342263}, after =3D {tv_sec =3D 1477418265, tv_nsec =3D 492496630}} >=20 > (gdb) print sc > $3 =3D (struct syscall *) 0x0 >=20 >=20 >=20 > Supporting details follow. . . >=20 > The specific error reports are: >=20 > xgcc: internal compiler error: Bad system call (program cc1) > Please submit a full bug report, > with preprocessed source if appropriate. > See for instructions. > gmake[5]: *** [Makefile:467: _muldi3.o] Error 4 > gmake[5]: *** Waiting for unfinished jobs.... >=20 > xgcc: internal compiler error: Bad system call (program cc1) > Please submit a full bug report, > with preprocessed source if appropriate. > See for instructions. > gmake[5]: *** [Makefile:467: _negdi2.o] Error 4 >=20 > xgcc: internal compiler error: Bad system call (program cc1) > Please submit a full bug report, > with preprocessed source if appropriate. > See for instructions. > gmake[5]: *** [Makefile:467: _cmpdi2.o] Error 4 >=20 > xgcc: internal compiler error: Bad system call (program cc1) > Please submit a full bug report, > with preprocessed source if appropriate. > See for instructions. > gmake[5]: *** [Makefile:467: _ucmpdi2.o] Error 4 >=20 > gmake[5]: Leaving directory = '/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/armv6-portbld-freebsd1= 1.0/libgcc' > gmake[4]: *** [Makefile:14874: all-stage1-target-libgcc] Error 2 >=20 > The specific xgcc commands were: >=20 > /usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/xgcc = -B/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/ = -B/usr/local/armv6-portbld-freebsd11.0/bin/ = -B/usr/local/armv6-portbld-freebsd11.0/lib/ -isystem = /usr/local/armv6-portbld-freebsd11.0/include -isystem = /usr/local/armv6-portbld-freebsd11.0/sys-include -O2 -pipe = -mcpu=3Dcortex-a7 -DLIBICONV_PLUG -g -fno-strict-aliasing -O2 -O2 -pipe = -mcpu=3Dcortex-a7 -DLIBICONV_PLUG -g -fno-strict-aliasing -DIN_GCC = -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wno-format = -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition = -isystem ./include -fPIC -pthread -fno-inline -fomit-frame-pointer -g = -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector -fPIC -pthread = -fno-inline -fomit-frame-pointer -I. -I. -I../.././gcc = -I/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc = -I/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/. = -I/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/../gcc=20 > = -I/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/../include = -DHAVE_CC_TLS -o _muldi3.o -MT _muldi3.o -MD -MP -MF _muldi3.dep = -DL_muldi3 -c = /usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/libgcc2.c = -fvisibility=3Dhidden -DHIDE_EXPORTS >=20 > /usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/xgcc = -B/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/ = -B/usr/local/armv6-portbld-freebsd11.0/bin/ = -B/usr/local/armv6-portbld-freebsd11.0/lib/ -isystem = /usr/local/armv6-portbld-freebsd11.0/include -isystem = /usr/local/armv6-portbld-freebsd11.0/sys-include -O2 -pipe = -mcpu=3Dcortex-a7 -DLIBICONV_PLUG -g -fno-strict-aliasing -O2 -O2 -pipe = -mcpu=3Dcortex-a7 -DLIBICONV_PLUG -g -fno-strict-aliasing -DIN_GCC = -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wno-format = -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition = -isystem ./include -fPIC -pthread -fno-inline -fomit-frame-pointer -g = -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector -fPIC -pthread = -fno-inline -fomit-frame-pointer -I. -I. -I../.././gcc = -I/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc = -I/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/. = -I/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/../gcc=20 > = -I/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/../include = -DHAVE_CC_TLS -o _negdi2.o -MT _negdi2.o -MD -MP -MF _negdi2.dep = -DL_negdi2 -c = /usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/libgcc2.c = -fvisibility=3Dhidden -DHIDE_EXPORTS >=20 > /usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/xgcc = -B/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/ = -B/usr/local/armv6-portbld-freebsd11.0/bin/ = -B/usr/local/armv6-portbld-freebsd11.0/lib/ -isystem = /usr/local/armv6-portbld-freebsd11.0/include -isystem = /usr/local/armv6-portbld-freebsd11.0/sys-include -O2 -pipe = -mcpu=3Dcortex-a7 -DLIBICONV_PLUG -g -fno-strict-aliasing -O2 -O2 -pipe = -mcpu=3Dcortex-a7 -DLIBICONV_PLUG -g -fno-strict-aliasing -DIN_GCC = -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wno-format = -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition = -isystem ./include -fPIC -pthread -fno-inline -fomit-frame-pointer -g = -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector -fPIC -pthread = -fno-inline -fomit-frame-pointer -I. -I. -I../.././gcc = -I/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc = -I/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/. = -I/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/../gcc=20 > = -I/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/../include = -DHAVE_CC_TLS -o _cmpdi2.o -MT _cmpdi2.o -MD -MP -MF _cmpdi2.dep = -DL_cmpdi2 -c = /usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/libgcc2.c = -fvisibility=3Dhidden -DHIDE_EXPORTS >=20 > /usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/xgcc = -B/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/ = -B/usr/local/armv6-portbld-freebsd11.0/bin/ = -B/usr/local/armv6-portbld-freebsd11.0/lib/ -isystem = /usr/local/armv6-portbld-freebsd11.0/include -isystem = /usr/local/armv6-portbld-freebsd11.0/sys-include -O2 -pipe = -mcpu=3Dcortex-a7 -DLIBICONV_PLUG -g -fno-strict-aliasing -O2 -O2 -pipe = -mcpu=3Dcortex-a7 -DLIBICONV_PLUG -g -fno-strict-aliasing -DIN_GCC = -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wno-format = -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition = -isystem ./include -fPIC -pthread -fno-inline -fomit-frame-pointer -g = -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector -fPIC -pthread = -fno-inline -fomit-frame-pointer -I. -I. -I../.././gcc = -I/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc = -I/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/. = -I/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/../gcc=20 > = -I/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/../include = -DHAVE_CC_TLS -o _ucmpdi2.o -MT _ucmpdi2.o -MD -MP -MF _ucmpdi2.dep = -DL_ucmpdi2 -c = /usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/libgcc2.c = -fvisibility=3Dhidden -DHIDE_EXPORTS >=20 >=20 > Unfortunately gdb does not report much directly. . . >=20 > root@bananapi-m3:/usr/ports # gdb = /usr/obj/portswork/usr/ports/lang/gcc6/work/.build/gcc/cc1 = /usr/obj/portswork/usr/ports/lang/gcc6/work/.build/armv6-portbld-freebsd11= .0/libgcc/cc1.core > GNU gdb 6.1.1 [FreeBSD] > Copyright 2004 Free Software Foundation, Inc. > GDB is free software, covered by the GNU General Public License, and = you are > welcome to change it and/or distribute copies of it under certain = conditions. > Type "show copying" to see the conditions. > There is absolutely no warranty for GDB. Type "show warranty" for = details. > This GDB was configured as "armv6-marcel-freebsd"... > Core was generated by = `/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/cc1 -quiet -I = . -I . -I'. > Program terminated with signal 12, Bad system call. > Reading symbols from /usr/local/lib/libmpc.so.3...done. > Loaded symbols for /usr/local/lib/libmpc.so.3 > Reading symbols from /usr/local/lib/libmpfr.so.4...done. > Loaded symbols for /usr/local/lib/libmpfr.so.4 > Reading symbols from /usr/local/lib/libgmp.so.10...done. > Loaded symbols for /usr/local/lib/libgmp.so.10 > Reading symbols from /lib/libz.so.6...Reading symbols from = /usr/lib/debug//lib/libz.so.6.debug...done. > done. > Loaded symbols for /lib/libz.so.6 > Reading symbols from /usr/lib/libc++.so.1...Reading symbols from = /usr/lib/debug//usr/lib/libc++.so.1.debug...done. > done. > Loaded symbols for /usr/lib/libc++.so.1 > Reading symbols from /lib/libcxxrt.so.1...Reading symbols from = /usr/lib/debug//lib/libcxxrt.so.1.debug...done. > done. > Loaded symbols for /lib/libcxxrt.so.1 > Reading symbols from /lib/libm.so.5...Reading symbols from = /usr/lib/debug//lib/libm.so.5.debug...done. > done. > Loaded symbols for /lib/libm.so.5 > Reading symbols from /lib/libgcc_s.so.1...Reading symbols from = /usr/lib/debug//lib/libgcc_s.so.1.debug...done. > done. > Loaded symbols for /lib/libgcc_s.so.1 > Reading symbols from /lib/libc.so.7...Reading symbols from = /usr/lib/debug//lib/libc.so.7.debug...done. > done. > Loaded symbols for /lib/libc.so.7 > Reading symbols from /libexec/ld-elf.so.1...Reading symbols from = /usr/lib/debug//libexec/ld-elf.so.1.debug...done. > done. > Loaded symbols for /libexec/ld-elf.so.1 > #0 0xbfbf732c in ?? () > (gdb) bt > #0 0xbfbf732c in ?? () > Cannot access memory at address 0x0 > (gdb) info reg > r0 0x4e 78 > r1 0x0 0 > r2 0x17c8506 24937734 > r3 0x65 101 > r4 0xbfbf7488 -1077971832 > r5 0xbfbf7484 -1077971836 > r6 0xbfbf7488 -1077971832 > r7 0x229eab40 580823872 > r8 0x0 0 > r9 0xbfbfa23c -1077960132 > r10 0xbfbf7484 -1077971836 > r11 0x0 0 > r12 0x17ef3b1 25097137 > sp 0xbfbf7180 -1077972608 > lr 0x65 101 > pc 0xbfbf732c -1077972180 > fps 0x0 0 > cpsr 0xa0000010 -1610612720 >=20 >=20 > Using -v -save-temps on one of the failing xgcc command lines gives: >=20 > = root@bananapi-m3:/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/armv6-= portbld-freebsd11.0/libgcc # = /usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/xgcc = -B/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/ = -B/usr/local/armv6-portbld-freebsd11.0/bin/ = -B/usr/local/armv6-portbld-freebsd11.0/lib/ -isystem = /usr/local/armv6-portbld-freebsd11.0/include -isystem = /usr/local/armv6-portbld-freebsd11.0/sys-include -O2 -pipe = -mcpu=3Dcortex-a7 -DLIBICONV_PLUG -g -fno-strict-aliasing -O2 -O2 -pipe = -mcpu=3Dcortex-a7 -DLIBICONV_PLUG -g -fno-strict-aliasing -DIN_GCC = -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wno-format = -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition = -isystem ./include -fPIC -pthread -fno-inline -fomit-frame-pointer -g = -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector -fPIC -pthread = -fno-inline -fomit-frame-pointer -I. -I. -I../.././gcc = -I/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc = -I/usr/obj/portswork/usr/ports/l > ang/gcc6/work/gcc-6.2.0/libgcc/. = -I/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/../gcc = -I/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/../include = -DHAVE_CC_TLS -o _muldi3.o -MT _muldi3.o -MD -MP -MF _muldi3.dep = -DL_muldi3 -c = /usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/libgcc2.c = -fvisibility=3Dhidden -DHIDE_EXPORTS -v -save-temps > xgcc: warning: -pipe ignored because -save-temps specified > Reading specs from = /usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/specs > = COLLECT_GCC=3D/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/xgc= c > Target: armv6-portbld-freebsd11.0 > Configured with: = /usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/configure = --disable-multilib --with-build-config=3Dbootstrap-debug --disable-nls = --enable-gnu-indirect-function --libdir=3D/usr/local/lib/gcc6 = --libexecdir=3D/usr/local/libexec/gcc6 --program-suffix=3D6 = --with-as=3D/usr/local/bin/as --with-gmp=3D/usr/local = --with-gxx-include-dir=3D/usr/local/lib/gcc6/include/c++/ = --with-ld=3D/usr/local/bin/ld --with-pkgversion=3D'FreeBSD Ports = Collection' --with-system-zlib --disable-libgcj = --enable-languages=3Dc,c++,objc,fortran --prefix=3D/usr/local = --localstatedir=3D/var --mandir=3D/usr/local/man = --infodir=3D/usr/local/info/gcc6 --build=3Darmv6-portbld-freebsd11.0 > Thread model: posix > gcc version 6.2.0 (FreeBSD Ports Collection)=20 > COLLECT_GCC_OPTIONS=3D'-B' = '/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/' '-B' = '/usr/local/armv6-portbld-freebsd11.0/bin/' '-B' = '/usr/local/armv6-portbld-freebsd11.0/lib/' '-isystem' = '/usr/local/armv6-portbld-freebsd11.0/include' '-isystem' = '/usr/local/armv6-portbld-freebsd11.0/sys-include' '-O2' '-pipe' = '-mcpu=3Dcortex-a7' '-D' 'LIBICONV_PLUG' '-g' '-O2' '-O2' '-pipe' = '-mcpu=3Dcortex-a7' '-D' 'LIBICONV_PLUG' '-g' '-fno-strict-aliasing' = '-D' 'IN_GCC' '-Wextra' '-Wall' '-Wno-narrowing' '-Wwrite-strings' = '-Wcast-qual' '-Wformat=3D0' '-Wstrict-prototypes' = '-Wmissing-prototypes' '-Wold-style-definition' '-isystem' './include' = '-pthread' '-g' '-D' 'IN_LIBGCC2' '-fbuilding-libgcc' = '-fno-stack-protector' '-fPIC' '-pthread' '-fno-inline' = '-fomit-frame-pointer' '-I' '.' '-I' '.' '-I' '../.././gcc' '-I' = '/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc' '-I' = '/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/.' '-I' = '/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6 > .2.0/libgcc/../gcc' '-I' = '/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/../include' = '-D' 'HAVE_CC_TLS' '-o' '_muldi3.o' '-MT' '_muldi3.o' '-MD' '-MP' '-MF' = '_muldi3.dep' '-D' 'L_muldi3' '-c' '-fvisibility=3Dhidden' '-D' = 'HIDE_EXPORTS' '-v' '-save-temps' '-mtls-dialect=3Dgnu' > /usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/cc1 -E -quiet = -v -I . -I . -I ../.././gcc -I = /usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc -I = /usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/. -I = /usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/../gcc -I = /usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/../include = -iprefix = /usr/obj/portswork/usr/ports/lang/gcc6/work/.build/gcc/../lib/gcc6/gcc/arm= v6-portbld-freebsd11.0/6.2.0/ -isystem = /usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/include = -isystem = /usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/include-fixed = -MD _muldi3.d -MF _muldi3.dep -MP -MT _muldi3.o -D LIBICONV_PLUG -D = LIBICONV_PLUG -D IN_GCC -D IN_LIBGCC2 -D HAVE_CC_TLS -D L_muldi3 -D = HIDE_EXPORTS -isystem /usr/local/armv6-portbld-freebsd11.0/include = -isystem /usr/local/armv6-portbld-freebsd11.0/sys-include -isystem = ./include = /usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/libgcc2.c = -mcp > u=3Dcortex-a7 -mcpu=3Dcortex-a7 -mtls-dialect=3Dgnu -Wextra -Wall = -Wno-narrowing -Wwrite-strings -Wcast-qual -Wformat=3D0 = -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition = -fno-strict-aliasing -fbuilding-libgcc -fno-stack-protector -fPIC = -fno-inline -fomit-frame-pointer -fvisibility=3Dhidden -g -g -g = -fworking-directory -O2 -O2 -O2 -fpch-preprocess -o libgcc2.i > ignoring nonexistent directory = "/usr/local/armv6-portbld-freebsd11.0/include" > ignoring nonexistent directory = "/usr/local/armv6-portbld-freebsd11.0/sys-include" > ignoring nonexistent directory "./include" > ignoring nonexistent directory = "/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/gcc/../lib/gcc6/gcc/ar= mv6-portbld-freebsd11.0/6.2.0/include" > ignoring nonexistent directory = "/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/gcc/../lib/gcc6/gcc/ar= mv6-portbld-freebsd11.0/6.2.0/include-fixed" > ignoring nonexistent directory = "/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/gcc/../lib/gcc6/gcc/ar= mv6-portbld-freebsd11.0/6.2.0/../../../../../armv6-portbld-freebsd11.0/inc= lude" > ignoring nonexistent directory = "/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/gcc/../lib/gcc6/gcc/..= /../../lib/gcc6/gcc/armv6-portbld-freebsd11.0/6.2.0/include" > ignoring nonexistent directory = "/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/gcc/../lib/gcc6/gcc/..= /../../lib/gcc6/gcc/armv6-portbld-freebsd11.0/6.2.0/include-fixed" > ignoring nonexistent directory = "/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/gcc/../lib/gcc6/gcc/..= /../../lib/gcc6/gcc/armv6-portbld-freebsd11.0/6.2.0/../../../../../armv6-p= ortbld-freebsd11.0/include" > ignoring duplicate directory "." > ignoring duplicate directory = "/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/." > #include "..." search starts here: > #include <...> search starts here: > . > ../.././gcc > /usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc > /usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/../gcc > = /usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/../include > /usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/include > /usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/include-fixed > /usr/local/include > /usr/include > End of search list. > COLLECT_GCC_OPTIONS=3D'-B' = '/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/' '-B' = '/usr/local/armv6-portbld-freebsd11.0/bin/' '-B' = '/usr/local/armv6-portbld-freebsd11.0/lib/' '-isystem' = '/usr/local/armv6-portbld-freebsd11.0/include' '-isystem' = '/usr/local/armv6-portbld-freebsd11.0/sys-include' '-O2' '-pipe' = '-mcpu=3Dcortex-a7' '-D' 'LIBICONV_PLUG' '-g' '-O2' '-O2' '-pipe' = '-mcpu=3Dcortex-a7' '-D' 'LIBICONV_PLUG' '-g' '-fno-strict-aliasing' = '-D' 'IN_GCC' '-Wextra' '-Wall' '-Wno-narrowing' '-Wwrite-strings' = '-Wcast-qual' '-Wformat=3D0' '-Wstrict-prototypes' = '-Wmissing-prototypes' '-Wold-style-definition' '-isystem' './include' = '-pthread' '-g' '-D' 'IN_LIBGCC2' '-fbuilding-libgcc' = '-fno-stack-protector' '-fPIC' '-pthread' '-fno-inline' = '-fomit-frame-pointer' '-I' '.' '-I' '.' '-I' '../.././gcc' '-I' = '/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc' '-I' = '/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/.' '-I' = '/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6 > .2.0/libgcc/../gcc' '-I' = '/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/../include' = '-D' 'HAVE_CC_TLS' '-o' '_muldi3.o' '-MT' '_muldi3.o' '-MD' '-MP' '-MF' = '_muldi3.dep' '-D' 'L_muldi3' '-c' '-fvisibility=3Dhidden' '-D' = 'HIDE_EXPORTS' '-v' '-save-temps' '-mtls-dialect=3Dgnu' > /usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/cc1 = -fpreprocessed libgcc2.i -quiet -dumpbase libgcc2.c -mcpu=3Dcortex-a7 = -mcpu=3Dcortex-a7 -mtls-dialect=3Dgnu -auxbase-strip _muldi3.o -g -g -g = -O2 -O2 -O2 -Wextra -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual = -Wformat=3D0 -Wstrict-prototypes -Wmissing-prototypes = -Wold-style-definition -version -fno-strict-aliasing -fbuilding-libgcc = -fno-stack-protector -fPIC -fno-inline -fomit-frame-pointer = -fvisibility=3Dhidden -o libgcc2.s > GNU C11 (FreeBSD Ports Collection) version 6.2.0 = (armv6-portbld-freebsd11.0) > compiled by GNU C version 4.2.1 Compatible FreeBSD Clang 3.8.0 = (tags/RELEASE_380/final 262564), GMP version 5.1.3, MPFR version 3.1.5, = MPC version 1.0.3, isl version none > GGC heuristics: --param ggc-min-expand=3D30 --param = ggc-min-heapsize=3D4096 > GNU C11 (FreeBSD Ports Collection) version 6.2.0 = (armv6-portbld-freebsd11.0) > compiled by GNU C version 4.2.1 Compatible FreeBSD Clang 3.8.0 = (tags/RELEASE_380/final 262564), GMP version 5.1.3, MPFR version 3.1.5, = MPC version 1.0.3, isl version none > GGC heuristics: --param ggc-min-expand=3D30 --param = ggc-min-heapsize=3D4096 > Compiler executable checksum: 8858bcab14af90339532fc36ec745f79 > xgcc: internal compiler error: Bad system call (program cc1) > Please submit a full bug report, > with preprocessed source if appropriate. > See for instructions. >=20 > = root@bananapi-m3:/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/armv6-= portbld-freebsd11.0/libgcc # ls -lt | head > total 12712 > -rw------- 1 root wheel 12181504 Oct 25 16:57 cc1.core > -rw-r--r-- 1 root wheel 0 Oct 25 16:57 libgcc2.s > -rw-r--r-- 1 root wheel 108880 Oct 25 16:57 libgcc2.i > -rw-r--r-- 1 root wheel 7636 Oct 25 16:57 _muldi3.dep > -rw-r--r-- 1 root wheel 560 Oct 25 10:16 _ucmpdi2.o > -rw-r--r-- 1 root wheel 560 Oct 25 10:16 _cmpdi2.o > -rw-r--r-- 1 root wheel 560 Oct 25 10:16 _negdi2.o > -rw-r--r-- 1 root wheel 560 Oct 25 10:16 _muldi3.o > -rw-r--r-- 1 root wheel 1784 Oct 25 10:16 _dvmd_lnx_s.o >=20 > Unfortunately direct execution of the reported cc1 command on the = libgcc2.i in question does not fail. >=20 > Attempting to run the xgcc command under truss got a segmentation = fault in truss itself: >=20 > = root@bananapi-m3:/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/armv6-= portbld-freebsd11.0/libgcc # truss -faeH -o truss.log = /usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/xgcc = -B/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/ = -B/usr/local/armv6-portbld-freebsd11.0/bin/ = -B/usr/local/armv6-portbld-freebsd11.0/lib/ -isystem = /usr/local/armv6-portbld-freebsd11.0/include -isystem = /usr/local/armv6-portbld-freebsd11.0/sys-include -O2 -pipe = -mcpu=3Dcortex-a7 -DLIBICONV_PLUG -g -fno-strict-aliasing -O2 -O2 -pipe = -mcpu=3Dcortex-a7 -DLIBICONV_PLUG -g -fno-strict-aliasing -DIN_GCC -W = -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wno-format = -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem = ./include -fPIC -pthread -fno-inline -fomit-frame-pointer -g = -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector -fPIC -pthread = -fno-inline -fomit-frame-pointer -I. -I. -I../.././gcc = -I/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc = -I/usr/obj/portswork > /usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/. = -I/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/../gcc = -I/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/../include = -DHAVE_CC_TLS -o _muldi3.o -MT _muldi3.o -MD -MP -MF _muldi3.dep = -DL_muldi3 -c = /usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/libgcc2.c = -fvisibility=3Dhidden -DHIDE_EXPORTS > Segmentation fault (core dumped) >=20 > [There is a separate buzilla report about this truss failure.] >=20 > =3D=3D=3D > Mark Millard > markmi at dsl-only.net From owner-freebsd-toolchain@freebsd.org Fri Oct 28 15:15:14 2016 Return-Path: Delivered-To: freebsd-toolchain@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E7CE1C248C0; Fri, 28 Oct 2016 15:15:14 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from mail.baldwin.cx (bigwig.baldwin.cx [96.47.65.170]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BE16930B; Fri, 28 Oct 2016 15:15:14 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from ralph.baldwin.cx (c-73-231-226-104.hsd1.ca.comcast.net [73.231.226.104]) by mail.baldwin.cx (Postfix) with ESMTPSA id 9C1CD10AF8A; Fri, 28 Oct 2016 11:15:13 -0400 (EDT) From: John Baldwin To: freebsd-current@freebsd.org Cc: Mark Millard , freebsd-arm , FreeBSD-STABLE Mailing List , FreeBSD Toolchain Subject: Re: stable/11 -r307797 on BPi-M3 (cortex-a7): truss gets segmentation fault for handling unknown system call Date: Fri, 28 Oct 2016 07:29:52 -0700 Message-ID: <2661167.K5IN9JAPmQ@ralph.baldwin.cx> User-Agent: KMail/4.14.10 (FreeBSD/11.0-PRERELEASE; KDE/4.14.10; amd64; ; ) In-Reply-To: <0699F744-DEB3-4ED5-91A9-B77EA2ACED37@dsl-only.net> References: <0699F744-DEB3-4ED5-91A9-B77EA2ACED37@dsl-only.net> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.4.3 (mail.baldwin.cx); Fri, 28 Oct 2016 11:15:13 -0400 (EDT) X-Virus-Scanned: clamav-milter 0.99.2 at mail.baldwin.cx X-Virus-Status: Clean X-BeenThere: freebsd-toolchain@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Maintenance of FreeBSD's integrated toolchain List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 Oct 2016 15:15:15 -0000 On Tuesday, October 25, 2016 11:40:38 AM Mark Millard wrote: > [The following has been reported in: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=213778 .] > > In trying to build lang/gcc6 xgcc's cc1 got some SIGSYS examples. In trying to track things down I ran into truss getting a SIGSEGV when it tries to handle the situation. . . > > In truss's enter_syscall there is (from a live gdb on truss, after the segmentation fault): > > 380 t->cs.name = sysdecode_syscallname(t->proc->abi->abi, t->cs.number); > 381 if (t->cs.name == NULL) > (gdb) > 382 fprintf(info->outfile, "-- UNKNOWN %s SYSCALL %d --\n", > 383 t->proc->abi->type, t->cs.number); > 384 > 385 sc = get_syscall(t->cs.name, narg); > 386 t->cs.nargs = sc->nargs; > 387 assert(sc->nargs <= nitems(t->cs.s_args)); > 388 > 389 t->cs.sc = sc; > > (gdb) print *t > $2 = {entries = {le_next = 0x0, le_prev = 0x20617070}, proc = 0x20617060, tid = 100150, in_syscall = 1, cs = {sc = 0x0, name = 0x0, number = 580828064, args = 0x2061b0c0, nargs = 0, > s_args = 0x2061b0ec}, before = {tv_sec = 1477418265, tv_nsec = 492342263}, after = {tv_sec = 1477418265, tv_nsec = 492496630}} > > (gdb) print sc > $3 = (struct syscall *) 0x0 > > So line 386 listed above gets a segmentation fault for sc->nargs when t->cs.name is a NULL pointer: sc ends up NULL. > > Looking at the two things that the fprintf on lines 382 and 383 would report: > > (gdb) print t->proc->abi->type > $4 = 0x10166 "FreeBSD ELF32" > > (gdb) print t->cs.number > $5 = 580828064 > > (gdb) print narg > $6 = 0 > > (that last is for context for the get_syscall arguments). > > FYI: 580828064 = 0x229EBBA0 I have a patchset I have tested some in a git branch that I believe fixes handling of unknown system calls. Please try this: https://github.com/freebsd/freebsd/compare/master...bsdjhb:truss_unknown (Add .diff to get a diff you can apply with patch) -- John Baldwin From owner-freebsd-toolchain@freebsd.org Fri Oct 28 23:09:09 2016 Return-Path: Delivered-To: freebsd-toolchain@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9970EC2516C for ; Fri, 28 Oct 2016 23:09:09 +0000 (UTC) (envelope-from markmi@dsl-only.net) Received: from asp.reflexion.net (outbound-mail-210-57.reflexion.net [208.70.210.57]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 53C9AD26 for ; Fri, 28 Oct 2016 23:09:08 +0000 (UTC) (envelope-from markmi@dsl-only.net) Received: (qmail 1897 invoked from network); 28 Oct 2016 23:03:24 -0000 Received: from unknown (HELO mail-cs-01.app.dca.reflexion.local) (10.81.19.1) by 0 (rfx-qmail) with SMTP; 28 Oct 2016 23:03:24 -0000 Received: by mail-cs-01.app.dca.reflexion.local (Reflexion email security v8.10.0) with SMTP; Fri, 28 Oct 2016 19:02:36 -0400 (EDT) Received: (qmail 3659 invoked from network); 28 Oct 2016 23:02:36 -0000 Received: from unknown (HELO iron2.pdx.net) (69.64.224.71) by 0 (rfx-qmail) with (AES256-SHA encrypted) SMTP; 28 Oct 2016 23:02:36 -0000 Received: from [192.168.1.106] (c-76-115-7-162.hsd1.or.comcast.net [76.115.7.162]) by iron2.pdx.net (Postfix) with ESMTPSA id 3181CEC8F25; Fri, 28 Oct 2016 16:02:27 -0700 (PDT) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 10.1 \(3251\)) Subject: Re: stable/11 -r307797 on BPi-M3 (cortex-a7): truss gets segmentation fault for handling unknown system call From: Mark Millard In-Reply-To: <2661167.K5IN9JAPmQ@ralph.baldwin.cx> Date: Fri, 28 Oct 2016 16:02:26 -0700 Cc: freebsd-current@freebsd.org, freebsd-arm , FreeBSD-STABLE Mailing List , FreeBSD Toolchain Content-Transfer-Encoding: quoted-printable Message-Id: References: <0699F744-DEB3-4ED5-91A9-B77EA2ACED37@dsl-only.net> <2661167.K5IN9JAPmQ@ralph.baldwin.cx> To: John Baldwin X-Mailer: Apple Mail (2.3251) X-BeenThere: freebsd-toolchain@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Maintenance of FreeBSD's integrated toolchain List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 Oct 2016 23:09:09 -0000 On 2016-Oct-28, at 7:29 AM, John Baldwin wrote: > On Tuesday, October 25, 2016 11:40:38 AM Mark Millard wrote: >> [The following has been reported in: = https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D213778 .] >>=20 >> In trying to build lang/gcc6 xgcc's cc1 got some SIGSYS examples. In = trying to track things down I ran into truss getting a SIGSEGV when it = tries to handle the situation. . . >>=20 >> In truss's enter_syscall there is (from a live gdb on truss, after = the segmentation fault): >>=20 >> 380 t->cs.name =3D sysdecode_syscallname(t->proc->abi->abi, = t->cs.number); >> 381 if (t->cs.name =3D=3D NULL) >> (gdb)=20 >> 382 fprintf(info->outfile, "-- UNKNOWN %s SYSCALL %d = --\n", >> 383 t->proc->abi->type, t->cs.number); >> 384=09 >> 385 sc =3D get_syscall(t->cs.name, narg); >> 386 t->cs.nargs =3D sc->nargs; >> 387 assert(sc->nargs <=3D nitems(t->cs.s_args)); >> 388=09 >> 389 t->cs.sc =3D sc; >>=20 >> (gdb) print *t >> $2 =3D {entries =3D {le_next =3D 0x0, le_prev =3D 0x20617070}, proc =3D= 0x20617060, tid =3D 100150, in_syscall =3D 1, cs =3D {sc =3D 0x0, name = =3D 0x0, number =3D 580828064, args =3D 0x2061b0c0, nargs =3D 0,=20 >> s_args =3D 0x2061b0ec}, before =3D {tv_sec =3D 1477418265, tv_nsec = =3D 492342263}, after =3D {tv_sec =3D 1477418265, tv_nsec =3D = 492496630}} >>=20 >> (gdb) print sc >> $3 =3D (struct syscall *) 0x0 >>=20 >> So line 386 listed above gets a segmentation fault for sc->nargs when = t->cs.name is a NULL pointer: sc ends up NULL. >>=20 >> Looking at the two things that the fprintf on lines 382 and 383 would = report: >>=20 >> (gdb) print t->proc->abi->type >> $4 =3D 0x10166 "FreeBSD ELF32" >>=20 >> (gdb) print t->cs.number >> $5 =3D 580828064 >>=20 >> (gdb) print narg >> $6 =3D 0 >>=20 >> (that last is for context for the get_syscall arguments). >>=20 >> FYI: 580828064 =3D 0x229EBBA0 >=20 > I have a patchset I have tested some in a git branch that I believe = fixes handling of > unknown system calls. Please try this: >=20 > = https://github.com/freebsd/freebsd/compare/master...bsdjhb:truss_unknown >=20 > (Add .diff to get a diff you can apply with patch) >=20 > --=20 > John Baldwin Sorry it took so long to try the build. . . I got a compile failure for use of bool in my stable/11 context for the = BPI-M3 build that the truss problem was discovered with (quoting the = build log below): > --- main.o --- > cc -target armv6-gnueabihf-freebsd11.0 = --sysroot=3D/usr/local/src/crochet/work/obj/arm.armv6/usr/src/tmp = -B/usr/local/src/crochet/work/obj/arm.armv6/usr/src/tmp/usr/bin -O -pipe = -I/usr/src/usr.bin/truss -I. -I/usr/src/usr.bin/truss/../../sys -g -MD = -MF.depend.main.o -MTma > in.o -std=3Dgnu99 -Wsystem-headers -Wall -Wno-format-y2k -W = -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes = -Wpointer-arith -Wreturn-type -Wcast-qual -Wwrite-strings -Wswitch = -Wshadow -Wunused-parameter -Wcast-align -Wchar-subscripts -Winline = -Wnested-externs=20 > -Wredundant-decls -Wold-style-definition -Wno-pointer-sign = -Wmissing-variable-declarations -Wthread-safety -Wno-empty-body = -Wno-string-plus-int -Wno-unused-const-variable -Qunused-arguments -c = /usr/src/usr.bin/truss/main.c -o main.o > In file included from /usr/src/usr.bin/truss/main.c:53: > /usr/src/usr.bin/truss/syscall.h:75:2: error: unknown type name 'bool' > bool unknown; /* Uknown system call */ > ^ > 1 error generated. > *** [main.o] Error code 1 >=20 > make[4]: stopped in /usr/src/usr.bin/truss > 1 error In C99 bool is a macro from and _Bool is the C99 type = itself. So apparently (or an equivalent) was not directly or = indirectly included. (The macros true and false and = __bool_true_false_are_defined are also from .) Which way do you want the C99 typing to be handled for this: native C99 = with no required? Use ? Side note: I'll see about getting my normal stable/11 build environment going for = the BPI-M3 instead of using the crochet from my first-time build for the = target. =3D=3D=3D Mark Millard markmi at dsl-only.net From owner-freebsd-toolchain@freebsd.org Sat Oct 29 10:22:29 2016 Return-Path: Delivered-To: freebsd-toolchain@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A7E07C26137 for ; Sat, 29 Oct 2016 10:22:29 +0000 (UTC) (envelope-from markmi@dsl-only.net) Received: from asp.reflexion.net (outbound-mail-210-58.reflexion.net [208.70.210.58]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 69A6791D for ; Sat, 29 Oct 2016 10:22:28 +0000 (UTC) (envelope-from markmi@dsl-only.net) Received: (qmail 27706 invoked from network); 29 Oct 2016 10:22:39 -0000 Received: from unknown (HELO mail-cs-02.app.dca.reflexion.local) (10.81.19.2) by 0 (rfx-qmail) with SMTP; 29 Oct 2016 10:22:39 -0000 Received: by mail-cs-02.app.dca.reflexion.local (Reflexion email security v8.10.0) with SMTP; Sat, 29 Oct 2016 06:22:31 -0400 (EDT) Received: (qmail 734 invoked from network); 29 Oct 2016 10:22:30 -0000 Received: from unknown (HELO iron2.pdx.net) (69.64.224.71) by 0 (rfx-qmail) with (AES256-SHA encrypted) SMTP; 29 Oct 2016 10:22:30 -0000 Received: from [192.168.1.106] (c-76-115-7-162.hsd1.or.comcast.net [76.115.7.162]) by iron2.pdx.net (Postfix) with ESMTPSA id 92C39EC90F1; Sat, 29 Oct 2016 03:22:26 -0700 (PDT) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 10.1 \(3251\)) Subject: Re: stable/11 -r307797 on BPi-M3 (cortex-a7): truss gets segmentation fault for handling unknown system call From: Mark Millard In-Reply-To: Date: Sat, 29 Oct 2016 03:22:25 -0700 Cc: freebsd-arm , FreeBSD Current , FreeBSD-STABLE Mailing List , FreeBSD Toolchain Content-Transfer-Encoding: quoted-printable Message-Id: <05266324-67D0-4487-BF94-58B831C79F5B@dsl-only.net> References: <0699F744-DEB3-4ED5-91A9-B77EA2ACED37@dsl-only.net> <2661167.K5IN9JAPmQ@ralph.baldwin.cx> To: John Baldwin X-Mailer: Apple Mail (2.3251) X-BeenThere: freebsd-toolchain@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Maintenance of FreeBSD's integrated toolchain List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 29 Oct 2016 10:22:29 -0000 On 2016-Oct-28, at 4:02 PM, Mark Millard wrote: > On 2016-Oct-28, at 7:29 AM, John Baldwin wrote: >=20 >> On Tuesday, October 25, 2016 11:40:38 AM Mark Millard wrote: >>> [The following has been reported in: = https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D213778 .] >>>=20 >>> In trying to build lang/gcc6 xgcc's cc1 got some SIGSYS examples. In = trying to track things down I ran into truss getting a SIGSEGV when it = tries to handle the situation. . . >>>=20 >>> In truss's enter_syscall there is (from a live gdb on truss, after = the segmentation fault): >>>=20 >>> 380 t->cs.name =3D sysdecode_syscallname(t->proc->abi->abi, = t->cs.number); >>> 381 if (t->cs.name =3D=3D NULL) >>> (gdb)=20 >>> 382 fprintf(info->outfile, "-- UNKNOWN %s SYSCALL %d = --\n", >>> 383 t->proc->abi->type, t->cs.number); >>> 384=09 >>> 385 sc =3D get_syscall(t->cs.name, narg); >>> 386 t->cs.nargs =3D sc->nargs; >>> 387 assert(sc->nargs <=3D nitems(t->cs.s_args)); >>> 388=09 >>> 389 t->cs.sc =3D sc; >>>=20 >>> (gdb) print *t >>> $2 =3D {entries =3D {le_next =3D 0x0, le_prev =3D 0x20617070}, proc = =3D 0x20617060, tid =3D 100150, in_syscall =3D 1, cs =3D {sc =3D 0x0, = name =3D 0x0, number =3D 580828064, args =3D 0x2061b0c0, nargs =3D 0,=20 >>> s_args =3D 0x2061b0ec}, before =3D {tv_sec =3D 1477418265, tv_nsec = =3D 492342263}, after =3D {tv_sec =3D 1477418265, tv_nsec =3D = 492496630}} >>>=20 >>> (gdb) print sc >>> $3 =3D (struct syscall *) 0x0 >>>=20 >>> So line 386 listed above gets a segmentation fault for sc->nargs = when t->cs.name is a NULL pointer: sc ends up NULL. >>>=20 >>> Looking at the two things that the fprintf on lines 382 and 383 = would report: >>>=20 >>> (gdb) print t->proc->abi->type >>> $4 =3D 0x10166 "FreeBSD ELF32" >>>=20 >>> (gdb) print t->cs.number >>> $5 =3D 580828064 >>>=20 >>> (gdb) print narg >>> $6 =3D 0 >>>=20 >>> (that last is for context for the get_syscall arguments). >>>=20 >>> FYI: 580828064 =3D 0x229EBBA0 >>=20 >> I have a patchset I have tested some in a git branch that I believe = fixes handling of >> unknown system calls. Please try this: >>=20 >> = https://github.com/freebsd/freebsd/compare/master...bsdjhb:truss_unknown >>=20 >> (Add .diff to get a diff you can apply with patch) >>=20 >> --=20 >> John Baldwin >=20 > Sorry it took so long to try the build. . . >=20 > I got a compile failure for use of bool in my stable/11 context for = the BPI-M3 build that the truss problem was discovered with (quoting the = build log below): >=20 >> --- main.o --- >> cc -target armv6-gnueabihf-freebsd11.0 = --sysroot=3D/usr/local/src/crochet/work/obj/arm.armv6/usr/src/tmp = -B/usr/local/src/crochet/work/obj/arm.armv6/usr/src/tmp/usr/bin -O -pipe = -I/usr/src/usr.bin/truss -I. -I/usr/src/usr.bin/truss/../../sys -g -MD = -MF.depend.main.o -MTma >> in.o -std=3Dgnu99 -Wsystem-headers -Wall -Wno-format-y2k -W = -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes = -Wpointer-arith -Wreturn-type -Wcast-qual -Wwrite-strings -Wswitch = -Wshadow -Wunused-parameter -Wcast-align -Wchar-subscripts -Winline = -Wnested-externs=20 >> -Wredundant-decls -Wold-style-definition -Wno-pointer-sign = -Wmissing-variable-declarations -Wthread-safety -Wno-empty-body = -Wno-string-plus-int -Wno-unused-const-variable -Qunused-arguments -c = /usr/src/usr.bin/truss/main.c -o main.o >> In file included from /usr/src/usr.bin/truss/main.c:53: >> /usr/src/usr.bin/truss/syscall.h:75:2: error: unknown type name = 'bool' >> bool unknown; /* Uknown system call */ >> ^ >> 1 error generated. >> *** [main.o] Error code 1 >>=20 >> make[4]: stopped in /usr/src/usr.bin/truss >> 1 error >=20 >=20 > In C99 bool is a macro from and _Bool is the C99 type = itself. So apparently (or an equivalent) was not directly or = indirectly included. (The macros true and false and = __bool_true_false_are_defined are also from .) >=20 > Which way do you want the C99 typing to be handled for this: native = C99 with no required? Use ? >=20 >=20 > Side note: >=20 > I'll see about getting my normal stable/11 build environment going for = the BPI-M3 instead of using the crochet from my first-time build for the = target. >=20 > =3D=3D=3D > Mark Millard > markmi at dsl-only.net [Once I got back to this test yet again I arbitrarily added a #include = to allow truss to build during buildworld.] The way I normally build (instead of crochet) did not get the original = cc1 problem in its original form. So as of yet I've not managed to = reproduce the test case accurately: Back to crochet. I will note that in my "with debug symbols" and -mcpu=3Dcortex-a7 style = of buildworld buildkernel type of boot context I got an explicit message = in the xgcc/cc1 test that may indicate the original problem for cc1: /usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/cc1: Undefined = symbol "__aeabi_uidiv" [bugzilla https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D213785 ] At this stage in trying to bootstrap lang/gcc6 as the first gcc compiler = on the BPi-M3: # ldd /usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/cc1 /usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/cc1: libmpc.so.3 =3D> /usr/local/lib/libmpc.so.3 (0x21aff000) libmpfr.so.4 =3D> /usr/local/lib/libmpfr.so.4 (0x21b25000) libgmp.so.10 =3D> /usr/local/lib/libgmp.so.10 (0x21bba000) libz.so.6 =3D> /lib/libz.so.6 (0x21c5b000) libc++.so.1 =3D> /usr/lib/libc++.so.1 (0x21c77000) libcxxrt.so.1 =3D> /lib/libcxxrt.so.1 (0x21d1d000) libm.so.5 =3D> /lib/libm.so.5 (0x21d3f000) libgcc_s.so.1 =3D> /lib/libgcc_s.so.1 (0x21d62000) libc.so.7 =3D> /lib/libc.so.7 (0x21e00000) So /usr/local/lib/ is not yet providing gcc's own library of primitives = for xgcc or cc1 to use and when FreeBSD is missing something = like__aeabi_uidiv that xgcc/cc1 expects to use there could then be = problems: # ls -l /usr/local/lib total 127288 -r-xr-xr-x 1 root wheel 10168 Oct 25 07:39 bindtextdomain.so drwxr-xr-x 2 root wheel 512 Oct 25 05:57 gettext -rw-r--r-- 1 root wheel 72026 Oct 25 05:40 libasprintf.a lrwxr-xr-x 1 root wheel 20 Oct 25 05:40 libasprintf.so -> = libasprintf.so.0.0.0 lrwxr-xr-x 1 root wheel 20 Oct 25 05:40 libasprintf.so.0 -> = libasprintf.so.0.0.0 -rwxr-xr-x 1 root wheel 64717 Oct 25 05:40 libasprintf.so.0.0.0 -rw-r--r-- 1 root wheel 58917550 Oct 25 08:52 libbfd.a -rwxr-xr-x 1 root wheel 4421893 Oct 25 05:56 = libgettextlib-0.19.8.1.so lrwxr-xr-x 1 root wheel 25 Oct 25 05:56 libgettextlib.so -> = libgettextlib-0.19.8.1.so -rw-r--r-- 1 root wheel 1611908 Oct 25 05:56 libgettextpo.a lrwxr-xr-x 1 root wheel 21 Oct 25 05:56 libgettextpo.so -> = libgettextpo.so.0.5.4 lrwxr-xr-x 1 root wheel 21 Oct 25 05:56 libgettextpo.so.0 -> = libgettextpo.so.0.5.4 -rwxr-xr-x 1 root wheel 1134132 Oct 25 05:56 libgettextpo.so.0.5.4 -rwxr-xr-x 1 root wheel 1005228 Oct 25 05:56 = libgettextsrc-0.19.8.1.so lrwxr-xr-x 1 root wheel 25 Oct 25 05:56 libgettextsrc.so -> = libgettextsrc-0.19.8.1.so -rw-r--r-- 1 root wheel 2935784 Oct 25 08:01 libgmp.a lrwxr-xr-x 1 root wheel 16 Oct 25 08:01 libgmp.so -> = libgmp.so.10.1.3 lrwxr-xr-x 1 root wheel 16 Oct 25 08:01 libgmp.so.10 -> = libgmp.so.10.1.3 -rwxr-xr-x 1 root wheel 1709666 Oct 25 08:01 libgmp.so.10.1.3 -rw-r--r-- 1 root wheel 1112250 Oct 25 08:01 libgmpxx.a lrwxr-xr-x 1 root wheel 17 Oct 25 08:01 libgmpxx.so -> = libgmpxx.so.4.3.3 lrwxr-xr-x 1 root wheel 17 Oct 25 08:01 libgmpxx.so.4 -> = libgmpxx.so.4.3.3 -rwxr-xr-x 1 root wheel 657771 Oct 25 08:01 libgmpxx.so.4.3.3 -rw-r--r-- 1 root wheel 238518 Oct 25 05:40 libintl.a lrwxr-xr-x 1 root wheel 16 Oct 25 05:40 libintl.so -> = libintl.so.8.1.5 lrwxr-xr-x 1 root wheel 16 Oct 25 05:40 libintl.so.8 -> = libintl.so.8.1.5 -rw-r--r-- 1 root wheel 157207 Oct 25 05:40 libintl.so.8.1.5 lrwxr-xr-x 1 root wheel 12 Oct 25 05:40 libintl.so.9 -> = libintl.so.8 -rw-r--r-- 1 root wheel 565968 Oct 25 09:02 libmpc.a lrwxr-xr-x 1 root wheel 15 Oct 25 09:02 libmpc.so -> = libmpc.so.3.0.0 lrwxr-xr-x 1 root wheel 15 Oct 25 09:02 libmpc.so.3 -> = libmpc.so.3.0.0 -rwxr-xr-x 1 root wheel 346999 Oct 25 09:02 libmpc.so.3.0.0 -rw-r--r-- 1 root wheel 2053300 Oct 25 08:05 libmpfr.a lrwxr-xr-x 1 root wheel 16 Oct 25 08:05 libmpfr.so -> = libmpfr.so.4.1.5 lrwxr-xr-x 1 root wheel 16 Oct 25 08:05 libmpfr.so.4 -> = libmpfr.so.4.1.5 -rwxr-xr-x 1 root wheel 1294011 Oct 25 08:05 libmpfr.so.4.1.5 -rw-r--r-- 1 root wheel 38488604 Oct 25 08:52 libopcodes.a -rw-r--r-- 1 root wheel 7155654 Oct 25 05:36 libpkg.a lrwxr-xr-x 1 root wheel 15 Oct 25 05:36 libpkg.so -> = libpkg.so.3.0.0 lrwxr-xr-x 1 root wheel 15 Oct 25 05:36 libpkg.so.3 -> = libpkg.so.3.0.0 -rwxr-xr-x 1 root wheel 5621424 Oct 25 05:36 libpkg.so.3.0.0 drwxr-xr-x 4 root wheel 512 Oct 25 07:37 perl5 Part of the issue may be that unlike my usual procedure for gcc* builds: OPTIONS_FILE_UNSET+=3DBOOTSTRAP for the BPI-M3 lang/gcc6 build I used: OPTIONS_FILE_SET+=3DBOOTSTRAP This might explain why I did not see a problem on the rpi2 historically. =3D=3D=3D Mark Millard markmi at dsl-only.net From owner-freebsd-toolchain@freebsd.org Sat Oct 29 21:18:04 2016 Return-Path: Delivered-To: freebsd-toolchain@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 70ED8C267CE for ; Sat, 29 Oct 2016 21:18:04 +0000 (UTC) (envelope-from markmi@dsl-only.net) Received: from asp.reflexion.net (outbound-mail-210-58.reflexion.net [208.70.210.58]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 31355A43 for ; Sat, 29 Oct 2016 21:18:03 +0000 (UTC) (envelope-from markmi@dsl-only.net) Received: (qmail 23810 invoked from network); 29 Oct 2016 21:18:59 -0000 Received: from unknown (HELO rtc-sm-01.app.dca.reflexion.local) (10.81.150.1) by 0 (rfx-qmail) with SMTP; 29 Oct 2016 21:18:59 -0000 Received: by rtc-sm-01.app.dca.reflexion.local (Reflexion email security v8.10.0) with SMTP; Sat, 29 Oct 2016 17:18:06 -0400 (EDT) Received: (qmail 12710 invoked from network); 29 Oct 2016 21:18:06 -0000 Received: from unknown (HELO iron2.pdx.net) (69.64.224.71) by 0 (rfx-qmail) with (AES256-SHA encrypted) SMTP; 29 Oct 2016 21:18:06 -0000 Received: from [192.168.1.106] (c-76-115-7-162.hsd1.or.comcast.net [76.115.7.162]) by iron2.pdx.net (Postfix) with ESMTPSA id B30F5EC8AEF; Sat, 29 Oct 2016 14:18:01 -0700 (PDT) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 10.1 \(3251\)) Subject: Re: stable/11 -r307797 on BPi-M3 (cortex-a7): truss gets segmentation fault for handling unknown system call From: Mark Millard In-Reply-To: <2661167.K5IN9JAPmQ@ralph.baldwin.cx> Date: Sat, 29 Oct 2016 14:18:01 -0700 Cc: freebsd-current@freebsd.org, freebsd-arm , FreeBSD-STABLE Mailing List , FreeBSD Toolchain Content-Transfer-Encoding: quoted-printable Message-Id: References: <0699F744-DEB3-4ED5-91A9-B77EA2ACED37@dsl-only.net> <2661167.K5IN9JAPmQ@ralph.baldwin.cx> To: John Baldwin X-Mailer: Apple Mail (2.3251) X-BeenThere: freebsd-toolchain@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Maintenance of FreeBSD's integrated toolchain List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 29 Oct 2016 21:18:04 -0000 [I re-established the crotchet-build based failure context finally. = Unfortunately truss just dies in a new place.] On 2016-Oct-28, at 7:29 AM, John Baldwin wrote: > On Tuesday, October 25, 2016 11:40:38 AM Mark Millard wrote: >> [The following has been reported in: = https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D213778 .] >>=20 >> In trying to build lang/gcc6 xgcc's cc1 got some SIGSYS examples. In = trying to track things down I ran into truss getting a SIGSEGV when it = tries to handle the situation. . . >>=20 >> In truss's enter_syscall there is (from a live gdb on truss, after = the segmentation fault): >>=20 >> 380 t->cs.name =3D sysdecode_syscallname(t->proc->abi->abi, = t->cs.number); >> 381 if (t->cs.name =3D=3D NULL) >> (gdb)=20 >> 382 fprintf(info->outfile, "-- UNKNOWN %s SYSCALL %d = --\n", >> 383 t->proc->abi->type, t->cs.number); >> 384=09 >> 385 sc =3D get_syscall(t->cs.name, narg); >> 386 t->cs.nargs =3D sc->nargs; >> 387 assert(sc->nargs <=3D nitems(t->cs.s_args)); >> 388=09 >> 389 t->cs.sc =3D sc; >>=20 >> (gdb) print *t >> $2 =3D {entries =3D {le_next =3D 0x0, le_prev =3D 0x20617070}, proc =3D= 0x20617060, tid =3D 100150, in_syscall =3D 1, cs =3D {sc =3D 0x0, name = =3D 0x0, number =3D 580828064, args =3D 0x2061b0c0, nargs =3D 0,=20 >> s_args =3D 0x2061b0ec}, before =3D {tv_sec =3D 1477418265, tv_nsec = =3D 492342263}, after =3D {tv_sec =3D 1477418265, tv_nsec =3D = 492496630}} >>=20 >> (gdb) print sc >> $3 =3D (struct syscall *) 0x0 >>=20 >> So line 386 listed above gets a segmentation fault for sc->nargs when = t->cs.name is a NULL pointer: sc ends up NULL. >>=20 >> Looking at the two things that the fprintf on lines 382 and 383 would = report: >>=20 >> (gdb) print t->proc->abi->type >> $4 =3D 0x10166 "FreeBSD ELF32" >>=20 >> (gdb) print t->cs.number >> $5 =3D 580828064 >>=20 >> (gdb) print narg >> $6 =3D 0 >>=20 >> (that last is for context for the get_syscall arguments). >>=20 >> FYI: 580828064 =3D 0x229EBBA0 >=20 > I have a patchset I have tested some in a git branch that I believe = fixes handling of > unknown system calls. Please try this: >=20 > = https://github.com/freebsd/freebsd/compare/master...bsdjhb:truss_unknown >=20 > (Add .diff to get a diff you can apply with patch) >=20 >=20 > --=20 > John Baldwin [Watch out for inlining consequences in how gdb presents things. Also I = extracted from my explorations and changed the presentation order to = eliminate junk.] Summary: st->syscalls ends up NULL from reallocf refusing a huge = allocation because t->cs.number=3D=3D580828064, which would make for a = huge offset in st->syscalls[number] . new_count * = sizeof(st->syscalls[0]) would be rather large (new_count =3D=3D = number+1) . reallocf's result needs to be tested and/or reasonable-value-checks on = t->cs.number (a.k.a. number) need to be made and unreasonable value = handled some other way. The supporting details: = root@bananapi-m3:/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/armv6-= portbld-freebsd11.0/libgcc # gdb truss GNU gdb 6.1.1 [FreeBSD] . . . (gdb) run -faeH -o truss.log = /usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/xgcc = -B/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/ = -B/usr/local/armv6-portbld-freebsd11.0/bin/ = -B/usr/local/armv6-portbld-freebsd11.0/lib/ -isystem = /usr/local/armv6-portbld-freebsd11.0/include -isystem = /usr/local/armv6-portbld-freebsd11.0/sys-include -O2 -pipe = -mcpu=3Dcortex-a7 -DLIBICONV_PLUG -g -fno-strict-aliasing -O2 -O2 -pipe = -mcpu=3Dcortex-a7 -DLIBICONV_PLUG -g -fno-strict-aliasing -DIN_GCC -W = -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wno-format = -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem = ./include -fPIC -pthread -fno-inline -fomit-frame-pointer -g = -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector -fPIC -pthread = -fno-inline -fomit-frame-pointer -I. -I. -I../.././gcc = -I/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc = -I/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/. = -I/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/../gcc = -I/usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/../include = -DHAVE_CC_TLS -o _muldi3.o -MT _muldi3.o -MD -MP -MF _muldi3.dep = -DL_muldi3 -c = /usr/obj/portswork/usr/ports/lang/gcc6/work/gcc-6.2.0/libgcc/libgcc2.c = -fvisibility=3Dhidden -DHIDE_EXPORTS Starting program: /usr/bin/truss -faeH -o truss.log . . . . Program received signal SIGSEGV, Segmentation fault. 0x20241ebc in memset () from /lib/libc.so.7 Current language: auto; currently minimal (gdb) bt #0 0x20241ebc in memset () from /lib/libc.so.7 #1 0x0000aec8 in get_syscall (t=3D, = number=3D580828064, nargs=3D0) at /usr/src/usr.bin/truss/syscalls.c:956 #2 0x0000ab8c in enter_syscall (info=3D0x20612000, t=3D0x2061b0a0, = pl=3D) at /usr/src/usr.bin/truss/setup.c:380 #3 0x0000a798 in eventloop (info=3D) at = /usr/src/usr.bin/truss/setup.c:664 #4 0x000098d4 in $a.6 () at /usr/src/usr.bin/truss/main.c:207 #5 0x000098d4 in $a.6 () at /usr/src/usr.bin/truss/main.c:207 (gdb) up #1 0x0000aec8 in get_syscall (t=3D, = number=3D580828064, nargs=3D0) at /usr/src/usr.bin/truss/syscalls.c:956 956 memset(st->syscalls + st->count, 0, (new_count - = st->count) * . . . 0x20241eac : cmp r1, #4 ; 0x4 0x20241eb0 : bge 0x20241dd4 0x20241eb4 : cmp r1, #0 ; 0x0 0x20241eb8 : moveq pc, lr 0x20241ebc : strb r3, [r12], #1 . . . (gdb) info reg r0 0x0 0 r1 0x8a7aee84 -1971655036 r2 0x8a7aee84 -1971655036 r3 0x0 0 r4 0x1 1 r5 0x2062000c 543293452 r6 0x20620000 543293440 r7 0x229ebba1 580828065 r8 0x2061b0b0 543273136 r9 0x0 0 r10 0x229ebba0 580828064 r11 0xbfbfe478 -1077943176 r12 0x0 0 sp 0xbfbfe450 -1077943216 lr 0xaec8 44744 pc 0x20241ebc 539238076 fps 0x0 0 cpsr 0xa0000010 -1610612720 . . . (gdb)=20 946 static void 947 grow_syscall_table(struct syscall_table *st, u_int number) 948 { 949 u_int new_count; 950=09 951 new_count =3D number + 1; 952 if (st->count >=3D new_count) 953 return; 954 st->syscalls =3D reallocf(st->syscalls, new_count * 955 sizeof(st->syscalls[0])); (gdb)=20 956 memset(st->syscalls + st->count, 0, (new_count - = st->count) * 957 sizeof(st->syscalls[0])); 958 } 959=09 960 /* 961 * If/when the list gets big, it might be desirable to do it 962 * as a hash table or binary search. 963 */ 964 struct syscall * 965 get_syscall(struct threadinfo *t, u_int number, u_int nargs) (gdb)=20 966 { 967 struct syscall_table *st; 968 struct syscall *sc; 969 const char *name; 970 u_int i; 971=09 972 st =3D lookup_syscall_table(t->proc->abi->abi); 973 grow_syscall_table(st, number); 974 sc =3D st->syscalls[number]; 975 if (sc !=3D NULL) (gdb)=20 976 return (sc); . . . 951 new_count =3D number + 1; 952 if (st->count >=3D new_count) 953 return; 954 st->syscalls =3D reallocf(st->syscalls, new_count * 955 sizeof(st->syscalls[0])); 956 memset(st->syscalls + st->count, 0, (new_count - = st->count) * 957 sizeof(st->syscalls[0])); 958 } 959=09 960 /* (gdb) up #2 0x0000ab8c in enter_syscall (info=3D0x20612000, t=3D0x2061b0a0, = pl=3D) at /usr/src/usr.bin/truss/setup.c:380 380 sc =3D get_syscall(t, t->cs.number, narg); (gdb) list 375 if (narg !=3D 0 && t->proc->abi->fetch_args(info, narg) = !=3D 0) { 376 free_syscall(t); 377 return; 378 } 379=09 380 sc =3D get_syscall(t, t->cs.number, narg); 381 if (sc->unknown) 382 fprintf(info->outfile, "-- UNKNOWN %s SYSCALL %d = --\n", 383 t->proc->abi->type, t->cs.number); 384=09 (gdb) print *t=20 $1 =3D {entries =3D {le_next =3D 0x0, le_prev =3D 0x20617028}, proc =3D = 0x20617018, tid =3D 100103, in_syscall =3D 1, cs =3D {sc =3D 0x0, number = =3D 580828064, nargs =3D 0, args =3D 0x2061b0c0, s_args =3D 0x2061b0e8},=20= before =3D {tv_sec =3D 1477771714, tv_nsec =3D 696971654}, after =3D = {tv_sec =3D 1477771714, tv_nsec =3D 697117646}} (gdb) print narg $2 =3D 0 . . . (gdb) print t->cs.number $9 =3D 580828064 . . . (gdb) print *(t->proc) $6 =3D {entries =3D {le_next =3D 0x20617000, le_prev =3D 0x20617048}, = pid =3D 808, abi =3D 0x1ee68, threadlist =3D {lh_first =3D 0x2061b0a0}} (gdb) print *(t->proc->abi) $7 =3D {type =3D 0x1026b "FreeBSD ELF32", abi =3D SYSDECODE_ABI_FREEBSD, = fetch_args =3D 0xda44 , fetch_retval =3D 0xdb64 = } (gdb) print t->proc->abi->abi $8 =3D SYSDECODE_ABI_FREEBSD So for t->cs.number=3D=3D580828064 : 380 sc =3D get_syscall(t, t->cs.number, narg); . . . 965 get_syscall(struct threadinfo *t, u_int number, u_int nargs) . . . 973 grow_syscall_table(st, number); 974 sc =3D st->syscalls[number]; would get very far away from st->syscalls after indexing by the large = number=3D=3D580828064 --if the grow could even complete for = number=3D=3D580828064 : 947 grow_syscall_table(struct syscall_table *st, u_int number) 948 { . .. 951 new_count =3D number + 1; . . . 954 st->syscalls =3D reallocf(st->syscalls, new_count * 955 sizeof(st->syscalls[0])); 956 memset(st->syscalls + st->count, 0, (new_count - = st->count) * 957 sizeof(st->syscalls[0])); st->syscalls was NULL after reallocf returned the value NUKL. =3D=3D=3D Mark Millard markmi at dsl-only.net