From owner-freebsd-toolchain@freebsd.org Wed Aug 30 23:22:49 2017 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 90F2DE0C895 for ; Wed, 30 Aug 2017 23:22:49 +0000 (UTC) (envelope-from markmi@dsl-only.net) Received: from asp.reflexion.net (outbound-mail-210-94.reflexion.net [208.70.210.94]) (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 5439C84612 for ; Wed, 30 Aug 2017 23:22:47 +0000 (UTC) (envelope-from markmi@dsl-only.net) Received: (qmail 1073 invoked from network); 30 Aug 2017 23:27:55 -0000 Received: from unknown (HELO mail-cs-02.app.dca.reflexion.local) (10.81.19.2) by 0 (rfx-qmail) with SMTP; 30 Aug 2017 23:27:55 -0000 Received: by mail-cs-02.app.dca.reflexion.local (Reflexion email security v8.40.2) with SMTP; Wed, 30 Aug 2017 19:22:41 -0400 (EDT) Received: (qmail 23177 invoked from network); 30 Aug 2017 23:22:41 -0000 Received: from unknown (HELO iron2.pdx.net) (69.64.224.71) by 0 (rfx-qmail) with (AES256-SHA encrypted) SMTP; 30 Aug 2017 23:22:41 -0000 Received: from [192.168.1.109] (c-67-170-167-181.hsd1.or.comcast.net [67.170.167.181]) by iron2.pdx.net (Postfix) with ESMTPSA id 846A0EC938A; Wed, 30 Aug 2017 16:22:40 -0700 (PDT) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\)) Subject: Re: FYI: qemu-ppc64-static and qemu-ppc-static "live-hang" when I attempt use with poudriere; qemu-arm-static and qemu-aarch64-static work From: Mark Millard In-Reply-To: <20170830110046.GA32595@lonesome.com> Date: Wed, 30 Aug 2017 16:22:39 -0700 Cc: FreeBSD Toolchain , FreeBSD PowerPC ML , FreeBSD Ports Content-Transfer-Encoding: quoted-printable Message-Id: References: <7BCCF7B6-7AA0-470E-A3ED-9D116E13DBFC@dsl-only.net> <20170830110046.GA32595@lonesome.com> To: Mark Linimon X-Mailer: Apple Mail (2.3273) 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, 30 Aug 2017 23:22:49 -0000 On 2017-Aug-30, at 4:00 AM, Mark Linimon wrote: > On Wed, Aug 30, 2017 at 03:09:40AM -0700, Mark Millard wrote: >> It appears that qemu-ppc64-static and qemu-ppc-static from >> emulators/qemu-user-static are broken. >=20 > Correct, and known for some time. (fwiw sparc64 hangs as well.) Looks like qemu-ppc64-static is stuck in a loop, calling repeatedly: do_freebsd_syscall (cpu_env=3D0x860ea3ac0, num=3D58, arg1=3D14, = arg2=3D35995509911, arg3=3D1024, arg4=3D268435904, arg5=3D281494784, = arg6=3D35985701568, arg7=3D515, arg8=3D35985668288) at = /wrkdirs/usr/ports/emulators/qemu-user-static/work/qemu-bsd-user-17977d0/b= sd-user/syscall.c:210 210 = /wrkdirs/usr/ports/emulators/qemu-user-static/work/qemu-bsd-user-17977d0/b= sd-user/syscall.c: No such file or directory. Which is for: 58 AUE_READLINK STD { ssize_t readlink(char *path, char = *buf, \ size_t count); } As confirmed by (note the "callq 0x60207360 " ): (gdb)=20 lock_user_string (guest_addr=3D14) at = /wrkdirs/usr/ports/emulators/qemu-user-static/work/qemu-bsd-user-17977d0/b= sd-user/qemu.h:508 508 = /wrkdirs/usr/ports/emulators/qemu-user-static/work/qemu-bsd-user-17977d0/b= sd-user/qemu.h: No such file or directory. (gdb) x/64i 0x0000000060045d3e =3D> 0x60045d3e : callq 0x6004fd20 = 0x60045d43 : test %rax,%rax 0x60045d46 : js 0x6004b99c = 0x60045d4c : inc %rax 0x60045d4f : mov $0x1,%edx 0x60045d54 : mov %rbx,%rdi 0x60045d57 : mov %rax,%rsi 0x60045d5a : callq 0x6003c430 = 0x60045d5f : test %eax,%eax 0x60045d61 : jne 0x6004bce4 = 0x60045d67 : add = 0x26d91b2(%rip),%rbx # 0x6271ef20 0x60045d6e : je 0x6004bce4 = 0x60045d74 : mov $0x3,%edx 0x60045d79 : mov -0x2a8(%rbp),%r14 0x60045d80 : mov %r14,%rdi 0x60045d83 : mov %r12,%rsi 0x60045d86 : callq 0x6003c430 = 0x60045d8b : test %eax,%eax 0x60045d8d : jne 0x6004bce4 = 0x60045d93 : add = 0x26d9186(%rip),%r14 # 0x6271ef20 0x60045d9a : mov = -0x294(%rbp),%r10d 0x60045da1 : mov = $0xfffffffffffffff2,%r13 0x60045da8 : je 0x6004bcf2 = 0x60045dae : mov $0x602b93da,%esi 0x60045db3 : mov %rbx,%rdi 0x60045db6 : callq 0x60230af0 = 0x60045dbb : test %eax,%eax 0x60045dbd : je 0x6004c566 = 0x60045dc3 : mov %rbx,%rdi 0x60045dc6 : callq 0x60158660 0x60045dcb : mov %rax,%rdi 0x60045dce : mov %r14,%rsi 0x60045dd1 : mov %r12,%rdx 0x60045dd4 : callq 0x60207360 = But note that the "lock_user_string (guest_addr=3D14)" and "do_freebsd_syscall (cpu_env=3D0x860ea3ac0, num=3D58, arg1=3D14," indicate that the "readlink(char *path," is using a really small address for the path string. I've not figured a way for poudriere bulk builds to leave behind the source code automatically. So far I've not looked at the qemu-bsd-user source code. I do build with both debug and optimization turned on via bsd.port.mk having: STRIP_CMD=3D ${TRUE} .endif DEBUG_FLAGS?=3D -g +.if defined(ALLOW_OPTIMIZATIONS_FOR_WITH_DEBUG) +CFLAGS:=3D ${CFLAGS} ${DEBUG_FLAGS} +.else CFLAGS:=3D ${CFLAGS:N-O*:N-fno-strict*} ${DEBUG_FLAGS} +.endif .if defined(INSTALL_TARGET) INSTALL_TARGET:=3D ${INSTALL_TARGET:S/^install-strip$/install/g} .endif mixed with make.conf indicating to use the new alternative: WANT_QT_VERBOSE_CONFIGURE=3D1 # DEFAULT_VERSIONS+=3Dperl5=3D5.24 gcc=3D7 # # =46rom a local /usr/ports/Mk/bsd.port.mk extension: ALLOW_OPTIMIZATIONS_FOR_WITH_DEBUG=3D # .if ${.CURDIR:M*/devel/llvm*} #WITH_DEBUG=3D .elif ${.CURDIR:M*/www/webkit-qt5*} #WITH_DEBUG=3D .else WITH_DEBUG=3D .endif MALLOC_PRODUCTION=3D I got as much information as I report above via use of: /usr/local/bin/gdb /usr/local/bin/qemu-user-static and then: run = /usr/obj/DESTDIRs/clang-powerpc64-installworld-dist-from-src/rescue/id and then interrupting it and exploring. =3D=3D=3D Mark Millard markmi at dsl-only.net