From owner-freebsd-ppc@freebsd.org Tue Mar 12 19:20:39 2019 Return-Path: Delivered-To: freebsd-ppc@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 86438153BC07 for ; Tue, 12 Mar 2019 19:20:39 +0000 (UTC) (envelope-from marklmi@yahoo.com) Received: from sonic310-24.consmr.mail.ne1.yahoo.com (sonic310-24.consmr.mail.ne1.yahoo.com [66.163.186.205]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 35F2E81EB5 for ; Tue, 12 Mar 2019 19:20:38 +0000 (UTC) (envelope-from marklmi@yahoo.com) X-YMail-OSG: if2hHZwVM1m5FZ.uqOJ5TxeIQVsh7ETa._abkGnR8qqHHagbfyJ2oJBDGEAXCrw zxkqEhlM2fwfgDuc0eQ6oBhiO9sztFiWfYkd3DOSOAFv.m.o991sYwNw6nIo1GkF0q0LkvtooU1b RY6C_hc1oa2QtvuFFoJhlhY5tRBNjrQ2MQoLNTpwjOlHkT8pa5SxOhUuBLgSOJ6ab7Rl2OTMzV6k iVw7CZQ7dxj7pnjUyuJdP0YwCR2FGd8O7CajcmgNrte1dHkq4g0Ix7QS40P0Om1WeMOJt2bR6G7_ 2g5Ghe4T_wRTY055MIBbYAiUDL_utpkrozH.Xip5YOlnCWNKDOSoKApxIbCRM5bB_KRIWUGxVYt4 GHKXQSZB77sJqKqeWmOpvhwEhkKQiMkXohBz8M8W6LSC7f3hHo5Q9fxcbGWpRLP67L63LIPmhoMY 8pDH5TRNHZCaWjLNrpdoQZVU08_tuKFDhTPK2l2asheRy3q2UUzmxYJqlbZyJSrnFNU..7iNV7dx 4TgmDqAi4HM_SBGcsBEtEJ2gW7kCr0Xd6u8uomni94Gi8_kDqhTDrILnsaTuXc.Hm19dHJYgdqnK KVKSUFicBchcsseE6Gy7ZNADS.kKfN701LhvNUWap7ZhcR.B9BWoV_SHMRx1leCG3ohHf6gAC2uN U7o8YmDqBfAqc9yB73frWwU_P5Kfjh_xdhS1p7nNOlklgagtfysPU_xyQijhOWTtyMybRK0RpJzj BZC97BzozxQ8ua2f4QLye19JhfvZskY1BBYfJTYzUxFI5tiiku_msDDd1Imk8R4Vnk2dBtFFYfKy saS2WzBWTJoYbqCJh.FcczR5ow5grwYsjdFk6WLPRpvaxQYr5Zwd00J0j5hz36Ayra_Ni44P7Mbh wGaoN0uyuh_jz0wdRFU83E636bGkpUA_CWmde7w2WaRs2_0r3OcTidIV.nfktPlSV42u3JNgQw_w 6f7csv3_OJX7xvf4nnwAQ4PQVthKlgijvdLVPO8CR8xQZ8liENjBDYRR7LZnWvkzzLs6gYwRmJr2 1WqnU57shEwi_XzOctSfxXIwWl.e.nLHMWWV1uIz_0TJDUXu7g.1YO05hv.PeQOnxTmg- Received: from sonic.gate.mail.ne1.yahoo.com by sonic310.consmr.mail.ne1.yahoo.com with HTTP; Tue, 12 Mar 2019 19:20:30 +0000 Received: from c-67-170-167-181.hsd1.or.comcast.net (EHLO [192.168.1.115]) ([67.170.167.181]) by smtp429.mail.ne1.yahoo.com (Oath Hermes SMTP Server) with ESMTPA ID a3f361f990b1a538e0ecfd35588740d2; Tue, 12 Mar 2019 19:20:29 +0000 (UTC) From: Mark Millard Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Mime-Version: 1.0 (Mac OS X Mail 12.2 \(3445.102.3\)) Subject: powerpc64 head -r345044: WITH_LLVM_LIBUNWIND= based buildworld leads to thrown C++ exceptions segmentation faulting Message-Id: <36A485AF-E786-4BDB-8DD8-863BAB38D359@yahoo.com> Date: Tue, 12 Mar 2019 12:20:28 -0700 To: FreeBSD PowerPC ML , FreeBSD Toolchain X-Mailer: Apple Mail (2.3445.102.3) X-Rspamd-Queue-Id: 35F2E81EB5 X-Spamd-Bar: -- X-Spamd-Result: default: False [-2.60 / 15.00]; RCVD_VIA_SMTP_AUTH(0.00)[]; R_SPF_ALLOW(-0.20)[+ptr:yahoo.com]; MV_CASE(0.50)[]; FREEMAIL_FROM(0.00)[yahoo.com]; RCVD_COUNT_THREE(0.00)[3]; TO_DN_ALL(0.00)[]; DKIM_TRACE(0.00)[yahoo.com:+]; MX_GOOD(-0.01)[cached: mta6.am0.yahoodns.net]; RCPT_COUNT_TWO(0.00)[2]; NEURAL_HAM_SHORT(-0.05)[-0.048,0]; DMARC_POLICY_ALLOW(-0.50)[yahoo.com,reject]; FROM_EQ_ENVFROM(0.00)[]; RCVD_TLS_LAST(0.00)[]; MIME_TRACE(0.00)[0:+]; FREEMAIL_ENVFROM(0.00)[yahoo.com]; ASN(0.00)[asn:36646, ipnet:66.163.184.0/21, country:US]; MID_RHS_MATCH_FROM(0.00)[]; DWL_DNSWL_NONE(0.00)[yahoo.com.dwl.dnswl.org : 127.0.5.0]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-0.98)[-0.978,0]; R_DKIM_ALLOW(-0.20)[yahoo.com:s=s2048]; FROM_HAS_DN(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[text/plain]; IP_SCORE(-0.07)[ip: (-2.47), ipnet: 66.163.184.0/21(1.23), asn: 36646(0.98), country: US(-0.07)]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[205.186.163.66.list.dnswl.org : 127.0.5.0] X-BeenThere: freebsd-ppc@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Porting FreeBSD to the PowerPC List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 12 Mar 2019 19:20:39 -0000 [I sometimes experiment with building powerpc64 (and 32-bit) via more modern toolchains, here a amd64->powerpc64 cross build via system-clang (so 8.0.0).] buildworld with WITH_LLVM_LIBUNWIND=3D completes for powerpc64 (but not 32-bit powerpc). However, for a system installed from such for pwoerpc64, the following program (for example) gets a segmentation fault: # more ~/c_tests/exception_test.cpp=20 #include int main(void) { try { throw std::exception(); } catch (std::exception& e) {} return 0; } (Note: the same a.out works under a WITHOUT_LLVM_LIBUNWIND=3D environment, that was patched for DW_CFA_remember_state and DW_CFA_restore_state handling, with the system built via devel/powerpc64-xtoolchain-gcc related materials. So the failure is on the system library does of things for the WITH_LLVM_LIBUNWIND=3D context.) Unfortunately: A) devel/gdb makes extensive use of thrown C++ exceptions and so does not work for a powerpc64 system based on WITH_LLVM_LIBUNWIND=3D . B) The world built is not using dwarf-2 so /usr/libexec/gdb is not handy/useful. C) CFLAGS+=3D-gdwarf-2 leads to system-clang having an Abort trap during buildworld's compile of gcrt1.s . (Reference material later, below.) D) lldb crashes in llvm_unreachable in lldb::RegisterContextSP FreeBSDThread::GetRegisterContext() on powerpc64. (Reference material later, below.) So I've not managed to check the backtrace for the segmentation fault in the short example. For reference . . . For (C) ( -gdwarf-2 use ): QUOTES (gdb) bt #0 thr_kill () at thr_kill.S:3 #1 0x000000000474afcf in __raise (s=3D6) at = /usr/src/lib/libc/gen/raise.c:52 #2 0x00000000046cd386 in abort () at = /usr/src/lib/libc/stdlib/abort.c:79 #3 0x00000000047394ba in __assert (func=3D, = file=3D, line=3D, failedexpr=3D) at /usr/src/lib/libc/gen/assert.c:51 #4 0x000000000429aa9f in resetRootFile () at = /usr/src/contrib/llvm/include/llvm/MC/MCDwarf.h:316 #5 parseDirectiveFile () at = /usr/src/contrib/llvm/lib/MC/MCParser/AsmParser.cpp:3377 #6 parseStatement () at = /usr/src/contrib/llvm/lib/MC/MCParser/AsmParser.cpp:2023 #7 0x000000000428cc12 in Run () at = /usr/src/contrib/llvm/lib/MC/MCParser/AsmParser.cpp:884 #8 0x000000000163c649 in ExecuteAssembler () at = /usr/src/contrib/llvm/tools/clang/tools/driver/cc1as_main.cpp:503 #9 cc1as_main () at = /usr/src/contrib/llvm/tools/clang/tools/driver/cc1as_main.cpp:589 #10 0x0000000001643d10 in ExecuteCC1Tool () at = /usr/src/contrib/llvm/tools/clang/tools/driver/driver.cpp:312 #11 main () at = /usr/src/contrib/llvm/tools/clang/tools/driver/driver.cpp:382 void resetRootFile() { assert(Header.MCDwarfFiles.empty()); Header.RootFile.Name.clear(); Header.resetMD5Usage(); Header.HasSource =3D false; } --- lib/csu__L --- cc: error: unable to execute command: Abort trap (core dumped) cc: error: clang integrated assembler command failed due to signal (use = -v to see invocation) FreeBSD clang version 8.0.0 (branches/release_80 355677) (based on LLVM = 8.0.0) Target: powerpc64-unknown-freebsd13.0 Thread model: posix InstalledDir: /usr/bin cc: note: diagnostic msg: PLEASE submit a bug report to = https://bugs.freebsd.org/submit/ and include the crash backtrace, = preprocessed source, and associated run script. cc: note: diagnostic msg: Error generating preprocessed source(s) - no = preprocessable inputs. *** [gcrt1.o] Error code 254 make[5]: stopped in /usr/src/lib/csu/powerpc64 .ERROR_TARGET=3D'gcrt1.o' = .ERROR_META_FILE=3D'/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.power= pc64/usr/src/powerpc.powerpc64/lib/csu/powerpc64/gcrt1.o.meta' .MAKE.LEVEL=3D'5' MAKEFILE=3D'' .MAKE.MODE=3D'meta missing-filemon=3Dyes missing-meta=3Dyes silent=3Dyes = verbose' _ERROR_CMD=3D'cc -gdwarf-2 -target powerpc64-unknown-freebsd13.0 = --sysroot=3D/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr= /src/powerpc.powerpc64/tmp = -B/usr/local/powerpc64-unknown-freebsd13.0/bin/ -O2 -pipe = -I/usr/src/lib/csu/common -I/usr/src/lib/libc/include -mlongcall = -DCRT_IRELOC_SUPPRESS -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 -Wredundant-decls = -Wold-style-definition -Wno-pointer-sign -Wthread-safety -Wno-empty-body = -Wno-string-plus-int -Wno-unused-const-variable -Qunused-arguments -c = -o gcrt1.o gcrt1.s;' .CURDIR=3D'/usr/src/lib/csu/powerpc64' .MAKE=3D'make' = .OBJDIR=3D'/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/= src/powerpc.powerpc64/lib/csu/powerpc64' .TARGETS=3D'all' = DESTDIR=3D'/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/= src/powerpc.powerpc64/tmp' LD_LIBRARY_PATH=3D'' MACHINE=3D'powerpc' MACHINE_ARCH=3D'powerpc64' MAKEOBJDIRPREFIX=3D'' MAKESYSPATH=3D'/usr/src/share/mk' MAKE_VERSION=3D'20181221' = PATH=3D'/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src= /powerpc.powerpc64/tmp/usr/sbin:/usr/obj/powerpc64vtsc_clang_altbinutils/p= owerpc.powerpc64/usr/src/powerpc.powerpc64/tmp/usr/bin:/usr/obj/powerpc64v= tsc_clang_altbinutils/powerpc.powerpc64/usr/src/powerpc.powerpc64/tmp/lega= cy/usr/sbin:/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr= /src/powerpc.powerpc64/tmp/legacy/usr/bin:/usr/obj/powerpc64vtsc_clang_alt= binutils/powerpc.powerpc64/usr/src/powerpc.powerpc64/tmp/legacy/bin::/sbin= :/bin:/usr/sbin:/usr/bin' SRCTOP=3D'/usr/src' = OBJTOP=3D'/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/s= rc/powerpc.powerpc64' .MAKE.MAKEFILES=3D'/usr/src/share/mk/sys.mk = /usr/src/share/mk/local.sys.env.mk /usr/src/share/mk/src.sys.env.mk = /root/src.configs/src.conf.powerpc64-clang_altbinutils-bootstrap.amd64-hos= t /usr/src/share/mk/bsd.mkopt.mk /usr/src/share/mk/src.sys.obj.mk = /usr/src/share/mk/auto.obj.mk /usr/src/share/mk/bsd.suffixes.mk = /root/src.configs/make.conf /usr/src/share/mk/local.sys.mk = /usr/src/share/mk/src.sys.mk /dev/null = /usr/src/lib/csu/powerpc64/Makefile /usr/src/share/mk/bsd.lib.mk = /usr/src/share/mk/bsd.init.mk /usr/src/share/mk/bsd.opts.mk = /usr/src/share/mk/bsd.cpu.mk /usr/src/share/mk/local.init.mk = /usr/src/share/mk/src.init.mk /usr/src/lib/csu/powerpc64/../Makefile.inc = /usr/src/share/mk/src.opts.mk /usr/src/share/mk/bsd.own.mk = /usr/src/share/mk/bsd.compiler.mk /usr/src/share/mk/bsd.linker.mk = /usr/src/lib/csu/powerpc64/../../Makefile.inc = /usr/src/share/mk/bsd.libnames.mk /usr/src/share/mk/src.libnames.mk = /usr/src/share/mk/bsd.symver.mk /usr/src/share/mk/bsd.nls.mk = /usr/src/share/mk/bsd.confs.mk /usr/src/share/mk/bsd.files.mk = /usr/src/share/mk/bsd.dirs.mk /usr/src/share/mk/bsd.incs.mk = /usr/src/share/mk/bsd.links.mk /usr/src/share/mk/bsd.dep.mk = /usr/src/share/mk/bsd.clang-analyze.mk /usr/src/share/mk/bsd.obj.mk = /usr/src/share/mk/bsd.subdir.mk /usr/src/share/mk/bsd.sys.mk' .PATH=3D'. /usr/src/lib/csu/powerpc64 /usr/src/lib/csu/common' 1 error END QUOTES For (D) (lldb): QUOTES CPU not supported UNREACHABLE executed at = /usr/src/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/FreeBSDThr= ead.cpp:192! Abort trap (core dumped) (gdb) bt #0 0x0000000813715208 in .__sys_thr_kill () at thr_kill.S:3 #1 0x00000008137147cc in __raise (s=3D) at = /usr/src/lib/libc/gen/raise.c:52 #2 0x000000081366b5d8 in abort () at = /usr/src/lib/libc/stdlib/abort.c:79 #3 0x0000000011df6fb8 in llvm::llvm_unreachable_internal () at = /usr/src/contrib/llvm/lib/Support/ErrorHandling.cpp:222 #4 0x00000000103aaaf8 in FreeBSDThread::GetRegisterContext () at = /usr/src/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/FreeBSDThr= ead.cpp:192 #5 0x00000000105807d4 in lldb_private::Thread::SetupForResume () at = /usr/src/contrib/llvm/tools/lldb/source/Target/Thread.cpp:613 #6 0x0000000010571bc8 in lldb_private::ThreadList::WillResume () at = /usr/src/contrib/llvm/tools/lldb/source/Target/ThreadList.cpp:541 #7 0x00000000105da23c in lldb_private::Process::PrivateResume () at = /usr/src/contrib/llvm/tools/lldb/source/Target/Process.cpp:3281 #8 0x00000000105a00c8 in lldb_private::Target::Launch () at = /usr/src/contrib/llvm/tools/lldb/source/Target/Target.cpp:2922 #9 0x000000001073f550 in CommandObjectProcessLaunch::DoExecute () at = /usr/src/contrib/llvm/tools/lldb/source/Commands/CommandObjectProcess.cpp:= 221 #10 0x00000000106c36c4 in lldb_private::CommandObjectParsed::Execute () = at = /usr/src/contrib/llvm/tools/lldb/source/Interpreter/CommandObject.cpp:975 #11 0x00000000106d8b44 in = lldb_private::CommandInterpreter::HandleCommand () at = /usr/src/contrib/llvm/tools/lldb/source/Interpreter/CommandInterpreter.cpp= :1761 #12 0x00000000106da0a0 in = lldb_private::CommandInterpreter::IOHandlerInputComplete () at = /usr/src/contrib/llvm/tools/lldb/source/Interpreter/CommandInterpreter.cpp= :2801 #13 0x00000000107c0a08 in lldb_private::IOHandlerEditline::Run () at = /usr/src/contrib/llvm/tools/lldb/source/Core/IOHandler.cpp:558 #14 0x0000000010346e5c in lldb_private::Debugger::ExecuteIOHandlers () = at /usr/src/contrib/llvm/tools/lldb/source/Core/Debugger.cpp:988 #15 0x00000000106c8ddc in = lldb_private::CommandInterpreter::RunCommandInterpreter () at = /usr/src/contrib/llvm/tools/lldb/source/Interpreter/CommandInterpreter.cpp= :3003 #16 0x000000001034feb4 in lldb::SBDebugger::RunCommandInterpreter () at = /usr/src/contrib/llvm/tools/lldb/source/API/SBDebugger.cpp:935 #17 0x00000000101de878 in Driver::MainLoop () at = /usr/src/contrib/llvm/tools/lldb/tools/driver/Driver.cpp:756 #18 0x00000000101a0088 in main () at = /usr/src/contrib/llvm/tools/lldb/tools/driver/Driver.cpp:936 lldb::RegisterContextSP FreeBSDThread::GetRegisterContext() { if (!m_reg_context_sp) { m_posix_thread =3D nullptr; RegisterInfoInterface *reg_interface =3D nullptr; const ArchSpec &target_arch =3D = GetProcess()->GetTarget().GetArchitecture(); switch (target_arch.GetMachine()) { case llvm::Triple::aarch64: reg_interface =3D new RegisterInfoPOSIX_arm64(target_arch); break; case llvm::Triple::arm: reg_interface =3D new RegisterInfoPOSIX_arm(target_arch); break; case llvm::Triple::ppc: #ifndef __powerpc64__ reg_interface =3D new = RegisterContextFreeBSD_powerpc32(target_arch); break; #endif case llvm::Triple::ppc64: reg_interface =3D new = RegisterContextFreeBSD_powerpc64(target_arch); break; case llvm::Triple::mips64: reg_interface =3D new RegisterContextFreeBSD_mips64(target_arch); break; case llvm::Triple::x86: reg_interface =3D new RegisterContextFreeBSD_i386(target_arch); break; case llvm::Triple::x86_64: reg_interface =3D new RegisterContextFreeBSD_x86_64(target_arch); break; default: llvm_unreachable("CPU not supported"); } END QUOTES. =3D=3D=3D Mark Millard marklmi at yahoo.com ( dsl-only.net went away in early 2018-Mar)