From owner-freebsd-ppc@freebsd.org Mon Dec 30 17:34:07 2019 Return-Path: Delivered-To: freebsd-ppc@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 536011E5333 for ; Mon, 30 Dec 2019 17:34:07 +0000 (UTC) (envelope-from marklmi@yahoo.com) Received: from sonic313-20.consmr.mail.gq1.yahoo.com (sonic313-20.consmr.mail.gq1.yahoo.com [98.137.65.83]) (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 47ml0Z0kqyz4Gys for ; Mon, 30 Dec 2019 17:34:05 +0000 (UTC) (envelope-from marklmi@yahoo.com) X-YMail-OSG: E_mb3tEVM1lyz9fqYqm060OdxwRryHZJq3Dwv0AsefCX3HND0XpnesM_og69okk jTayQ4iZ3PykwQqJCV1zaTXa2ksY.BVvf_wRcIWnYM0juZ1cWq8bG0TMuES_aaZnXmv3cpts7mfe hd3QB5iDOmV4bJeLBYCiqIqHxjy6dMSt.7.CAhyRjaNgB11_FkPogKYPQl4aV739d2erdZ.gwghJ KeQVASE2rE6MTmuE7CVATlrH2ALDk58RLiKRkRnnsTT25D_Sjd9KIIiEPmVUDukDECOCH.6JCiQT V.Gc_RmbureqKICe3PC9Renl4Z65Nyjtx9CVOo1sXMGMGbCpg4JLeEU.kBLqxWE5hph0kC6Z4la2 TMYcNeNjygGuZLfE98GEDgeK8x.lFDRkFzYG_UbMo2HSaHbvwxx6oiP2XGLac_0lC0UquUEI2WBt HCFVvYVgpNuUlw1SFPTLgT2X3lrhgkkEyGo4nU_zdiIc.jIbLgv_iA3CGJR778wcXwsYeT34oCeB 2HKDXNh.NsbNElBy3J8l_P5.AcUSwAOhnl.h7hAfUaRcBpNSpE1CaWF3_HH.I8J_Y_qgnFW2YDxb MNzJWDYwDXWiSDYrmxZ04halJuvJAz0x3aF2XfutIftJp_po8rv.BtBVV2XTiJ0cMiZ8edrWDIT8 2u2hPk7ZZoDJeX49f2i5l7pUZRVPXcPXer637XeJ5Yl9N0vxd.kQYyI5CqdH.O_OI1O9P63SKz0C iYgZL3xYHJd1iTty0fjYx_um6Pn0MxIhE3y_IpLh0Bl8DZSdo8V.vJusYXdZ34MCs00BNNY91APK 7MwoJCAhPq2kA2_I.0dgKHK3X_ZjkISKRhOhah4eEN4kxIvHF8k6QH79YhIfP.tPWF0FQVtC2JVO 1wDiXuLUPumPytViqYe5fM.t8mRzYcXXdxxUEDElT6wXM5GkYhV.VZ0nyISIyMGEUU9owBsWbA3K d3XjGw46SVEMKhSMMvDFurc1mkt2s_mcXGTRbXdlhUXxTWUg8yzrz89WdbuuDbFXgeO2.asyRjFP O3737w.navUrOK4ftDBOGgfIzQ7nPYb4hCoat7kiR7SP431i8AUBFKdWcUirNZXML2IDpst.vX05 vRcj5jBbrGBsRj_lNi6RltuhiARP89mfiFK0neYaEvRzOLrAjY4lB7_HrWNSR1KvSFSqoBJDtPxe lds3XG6QnjttXtZIv_zdKxBmLvb7pnGcEUiE.jtfvR5D_ZpLpDsiRtLmEQgG3ymXhax5FsFulKMX 3A.jYIe0biVBJvOZa4L3ysj59nD7BWfQM2q9WPQPs0RV4OlZc9zSfZGKQ8UL3V5URmM7YsFGGwnf M0I9AmYFbz7a.dsN_UTA2yIPgyV_6IbPTC.2OMQ208KE5Mb1t4tOqRbeKLwf5YuuB_1xfXSRk2go mjPBGa_Ng4my4ebTCod20pPcSTEZDtxDy Received: from sonic.gate.mail.ne1.yahoo.com by sonic313.consmr.mail.gq1.yahoo.com with HTTP; Mon, 30 Dec 2019 17:34:04 +0000 Received: by smtp432.mail.bf1.yahoo.com (Oath Hermes SMTP Server) with ESMTPA ID 49b1b93ced353c3513b83c00a3cf9930; Mon, 30 Dec 2019 17:33:58 +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 13.0 \(3608.40.2.2.4\)) Subject: Building head -r356187 for powerpc64 via devel/freebsd-gcc9 fails: powerpc64-unknown-freebsd13.0-ld: over 480 cpu minutes on ThreadRipper 1950X Message-Id: <7CAD1629-A16F-4D7E-898A-5C06CAC4E0AF@yahoo.com> Date: Mon, 30 Dec 2019 09:33:56 -0800 To: FreeBSD PowerPC ML , FreeBSD Toolchain X-Mailer: Apple Mail (2.3608.40.2.2.4) References: <7CAD1629-A16F-4D7E-898A-5C06CAC4E0AF.ref@yahoo.com> X-Rspamd-Queue-Id: 47ml0Z0kqyz4Gys X-Spamd-Bar: - X-Spamd-Result: default: False [-1.74 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-0.34)[-0.339,0]; R_DKIM_ALLOW(-0.20)[yahoo.com:s=s2048]; FROM_HAS_DN(0.00)[]; R_SPF_ALLOW(-0.20)[+ptr:yahoo.com]; FREEMAIL_FROM(0.00)[yahoo.com]; MIME_GOOD(-0.10)[text/plain]; MV_CASE(0.50)[]; NEURAL_HAM_LONG(-0.91)[-0.905,0]; RCVD_COUNT_TWO(0.00)[2]; IP_SCORE_FREEMAIL(0.00)[]; TO_MATCH_ENVRCPT_SOME(0.00)[]; TO_DN_ALL(0.00)[]; DKIM_TRACE(0.00)[yahoo.com:+]; RCPT_COUNT_TWO(0.00)[2]; RCVD_IN_DNSWL_NONE(0.00)[83.65.137.98.list.dnswl.org : 127.0.5.0]; DMARC_POLICY_ALLOW(-0.50)[yahoo.com,reject]; RCVD_TLS_LAST(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; FREEMAIL_ENVFROM(0.00)[yahoo.com]; ASN(0.00)[asn:36647, ipnet:98.137.64.0/21, country:US]; MID_RHS_MATCH_FROM(0.00)[]; IP_SCORE(0.00)[ip: (3.96), ipnet: 98.137.64.0/21(0.89), asn: 36647(0.71), country: US(-0.05)]; DWL_DNSWL_NONE(0.00)[yahoo.com.dwl.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: Mon, 30 Dec 2019 17:34:07 -0000 There are two nearly 100% cpu usage instances of powerpc64-unknown-freebsd13.0-ld , each with over 480 cpu minutes, one for clang.full and one for lld.full . (amd64->powerpc64 cross build.) The below shows the file system view of the status after all that time: 0 size .full files. # ls -ldTt = /usr/obj/powerpc64vtsc_xtoolchain-gcc/powerpc.powerpc64/usr/src/powerpc.po= werpc64/usr.bin/clang/clang/clang.full* | head -rw-r--r-- 1 root wheel 3071 Dec 30 00:30:02 2019 = /usr/obj/powerpc64vtsc_xtoolchain-gcc/powerpc.powerpc64/usr/src/powerpc.po= werpc64/usr.bin/clang/clang/clang.full.meta -rw-r--r-- 1 root wheel 0 Dec 30 00:29:32 2019 = /usr/obj/powerpc64vtsc_xtoolchain-gcc/powerpc.powerpc64/usr/src/powerpc.po= werpc64/usr.bin/clang/clang/clang.full # ls -ldTt = /usr/obj/powerpc64vtsc_xtoolchain-gcc/powerpc.powerpc64/usr/src/powerpc.po= werpc64/usr.bin/clang/clang/clang.full* | head -rw-r--r-- 1 root wheel 3071 Dec 30 00:30:02 2019 = /usr/obj/powerpc64vtsc_xtoolchain-gcc/powerpc.powerpc64/usr/src/powerpc.po= werpc64/usr.bin/clang/clang/clang.full.meta -rw-r--r-- 1 root wheel 0 Dec 30 00:29:32 2019 = /usr/obj/powerpc64vtsc_xtoolchain-gcc/powerpc.powerpc64/usr/src/powerpc.po= werpc64/usr.bin/clang/clang/clang.full Attaching to one of them with gdb shows (I build ports optimized but with symbols generally): (gdb) bt #0 0x000000000035431d in ppc64_elf_inline_plt (info=3D) = at elf64-ppc.c:7473 #1 0x000000000032acb0 in ppc_before_allocation () at = eelf64ppc_fbsd.c:370 #2 0x0000000000319651 in lang_process () at ldlang.c:7678 #3 0x00000000003208d8 in main (argc=3D, argv=3D) at ./ldmain.c:441 ppc64_elf_inline_plt does not return (finish does not stop on its own). Using step shows: (gdb) step 7471 in elf64-ppc.c (gdb)=20 7473 in elf64-ppc.c (gdb)=20 7471 in elf64-ppc.c (gdb)=20 7473 in elf64-ppc.c . . . Looking at the instruction level: (gdb) display/i $pc 1: x/i $pc =3D> 0x35431d : jne 0x354310 = (gdb) nexti 7471 in elf64-ppc.c 1: x/i $pc =3D> 0x354310 : mov 0x8(%r13),%r12 (gdb)=20 7473 in elf64-ppc.c 1: x/i $pc =3D> 0x354314 : mov %r12d,%eax (gdb)=20 0x0000000000354317 7473 in elf64-ppc.c 1: x/i $pc =3D> 0x354317 : or $0x2,%eax (gdb)=20 0x000000000035431a 7473 in elf64-ppc.c 1: x/i $pc =3D> 0x35431a : cmp $0x7a,%eax (gdb)=20 0x000000000035431d 7473 in elf64-ppc.c 1: x/i $pc =3D> 0x35431d : jne 0x354310 = (gdb)=20 7471 in elf64-ppc.c 1: x/i $pc =3D> 0x354310 : mov 0x8(%r13),%r12 (gdb)=20 7473 in elf64-ppc.c 1: x/i $pc =3D> 0x354314 : mov %r12d,%eax (gdb)=20 0x0000000000354317 7473 in elf64-ppc.c 1: x/i $pc =3D> 0x354317 : or $0x2,%eax (gdb)=20 0x000000000035431a 7473 in elf64-ppc.c 1: x/i $pc =3D> 0x35431a : cmp $0x7a,%eax (gdb)=20 0x000000000035431d 7473 in elf64-ppc.c 1: x/i $pc =3D> 0x35431d : jne 0x354310 = . . . To do the experiment I built devel/freebsd-gcc9 based on: ( ports at -r520539 ) # svnlite diff /usr/ports/devel/freebsd-gcc9/ Index: /usr/ports/devel/freebsd-gcc9/Makefile =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- /usr/ports/devel/freebsd-gcc9/Makefile (revision 520539) +++ /usr/ports/devel/freebsd-gcc9/Makefile (working copy) @@ -53,6 +53,10 @@ --with-as=3D${LOCALBASE}/bin/${BU_PREFIX}-as \ --with-ld=3D${LOCALBASE}/bin/${BU_PREFIX}-ld =20 +.if ${TARGETARCH} =3D=3D powerpc64 +CONFIGURE_ARGS+=3D --with-abi=3Delfv2 +.endif + ALL_TARGET=3D all-gcc INSTALL_TARGET=3D install-gcc =20 (So I forced elfv2 for powerpc64.) I'm also using WITHOUT_LIB32 to avoid the the forced bss-plt that ends up involved: It stops the build: # svnlite diff /usr/src/share/mk/bsd.cpu.mk=20 Index: /usr/src/share/mk/bsd.cpu.mk =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- /usr/src/share/mk/bsd.cpu.mk (revision 356187) +++ /usr/src/share/mk/bsd.cpu.mk (working copy) @@ -421,7 +421,7 @@ # normal builds works when CROSS_BINUTILS_PREFIX and could be removed # when LLD PowerPC 32 bit support is completed .if defined(CROSS_BINUTILS_PREFIX) -LD_BFD=3D${LOCALBASE}/bin/${CROSS_BINUTILS_PREFIX}-ld.bfd +LD_BFD=3D${CROSS_BINUTILS_PREFIX}ld.bfd .else LD_BFD=3D${OBJTOP}/tmp/usr/bin/ld.bfd .endif (The above change used a working file path.) I used: # more ~/src.configs/src.conf.powerpc64-xtoolchain-gcc.amd64-host=20 GCCVERSION=3D9 TO_TYPE=3Dpowerpc64 TOOLS_TO_TYPE=3D${TO_TYPE} VERSION_CONTEXT=3D13.0 # KERNCONF=3DGENERIC64vtsc-NODBG TARGET=3Dpowerpc .if ${.MAKE.LEVEL} =3D=3D 0 TARGET_ARCH=3D${TO_TYPE} .export TARGET_ARCH .endif # WITHOUT_CROSS_COMPILER=3D WITHOUT_SYSTEM_COMPILER=3D WITHOUT_SYSTEM_LINKER=3D # WITH_LLVM_LIBUNWIND=3D WITH_LIBCPLUSPLUS=3D WITHOUT_LLD_BOOTSTRAP=3D WITHOUT_BINUTILS_BOOTSTRAP=3D WITHOUT_ELFTOOLCHAIN_BOOTSTRAP=3D WITHOUT_LLVM_TARGET_ALL=3D WITHOUT_CLANG_BOOTSTRAP=3D WITH_CLANG=3D WITH_CLANG_IS_CC=3D WITH_CLANG_FULL=3D WITH_CLANG_EXTRAS=3D WITH_LLD=3D WITH_LLD_IS_LD=3D WITHOUT_BINUTILS=3D #WITH_PORT_BASE_BINUTILS=3D # Note: LLDB fails to build (link). WITHOUT_LLDB=3D # WITH_BOOT=3D # # Fails to build because of forced bss-plt use. WITHOUT_LIB32=3D # LOADER_DEFAULT_INTERP=3D4th # WITHOUT_GCC_BOOTSTRAP=3D WITHOUT_GCC=3D WITHOUT_GCC_IS_CC=3D WITHOUT_GNUCXX=3D # NO_WERROR=3D # #WERROR=3D MALLOC_PRODUCTION=3D # # Avoid stripping but do not control host -g status as well: DEBUG_FLAGS+=3D # WITH_REPRODUCIBLE_BUILD=3D WITH_DEBUG_FILES=3D # #XCFLAGS+=3D -gdwarf-2 # # For TO (so-called "cross") stages . . . # So-called-cross via freebsd-gcc${GCCVERSION}@${TO_TYPE} # TOOLS_TO_TYPE based on freebsd-gcc${GCCVERSION}@${TO_TYPE} related = binutils. . . # CROSS_TOOLCHAIN=3D${TO_TYPE}-gcc${GCCVERSION} X_COMPILER_TYPE=3Dgcc = CROSS_BINUTILS_PREFIX=3D/usr/local/${TOOLS_TO_TYPE}-unknown-freebsd${VERSI= ON_CONTEXT}/bin/ .if ${.MAKE.LEVEL} =3D=3D 0 = XCC=3D/usr/local/bin/${TOOLS_TO_TYPE}-unknown-freebsd${VERSION_CONTEXT}-gc= c${GCCVERSION} = XCXX=3D/usr/local/bin/${TOOLS_TO_TYPE}-unknown-freebsd${VERSION_CONTEXT}-g= ++${GCCVERSION} = XCPP=3D/usr/local/bin/${TOOLS_TO_TYPE}-unknown-freebsd${VERSION_CONTEXT}-c= pp${GCCVERSION} .export XCC .export XCXX .export XCPP XAS=3D/usr/local/${TOOLS_TO_TYPE}-unknown-freebsd${VERSION_CONTEXT}/bin/as= XAR=3D/usr/local/${TOOLS_TO_TYPE}-unknown-freebsd${VERSION_CONTEXT}/bin/ar= XLD=3D/usr/local/${TOOLS_TO_TYPE}-unknown-freebsd${VERSION_CONTEXT}/bin/ld= XNM=3D/usr/local/${TOOLS_TO_TYPE}-unknown-freebsd${VERSION_CONTEXT}/bin/nm= = XOBJCOPY=3D/usr/local/${TOOLS_TO_TYPE}-unknown-freebsd${VERSION_CONTEXT}/b= in/objcopy = XOBJDUMP=3D/usr/local/${TOOLS_TO_TYPE}-unknown-freebsd${VERSION_CONTEXT}/b= in/objdump = XRANLIB=3D/usr/local/${TOOLS_TO_TYPE}-unknown-freebsd${VERSION_CONTEXT}/bi= n/ranlib = XSIZE=3D/usr/local/${TOOLS_TO_TYPE}-unknown-freebsd${VERSION_CONTEXT}/bin/= size #NO-SUCH: = XSTRINGS=3D/usr/local/${TOOLS_TO_TYPE}-unknown-freebsd${VERSION_CONTEXT}/b= in/strings = XSTRINGS=3D/usr/local/bin/${TOOLS_TO_TYPE}-unknown-freebsd${VERSION_CONTEX= T}-strings .export XAS .export XAR .export XLD .export XNM .export XOBJCOPY .export XOBJDUMP .export XRANLIB .export XSIZE .export XSTRINGS .endif # # # =46rom based on clang (via system). . . # .if ${.MAKE.LEVEL} =3D=3D 0 CC=3D/usr/bin/clang CXX=3D/usr/bin/clang++ CPP=3D/usr/bin/clang-cpp .export CC .export CXX .export CPP .endif By contrast, cross-building powerpc64 using system-clang and devel/binutils@powerpc64 ran to completion, as did the default system-clang/lld use. Using ELFv2 for devel/freebsd-gcc9 did avoid the internal plt template error report that I got earlier when targeting a ELFv1 context. 32-bit powerpc side note: For 32-bit powerpc, the only combination to complete buildworld buildkernel was system-clang with devel/binutils@powerpc . The default system linker failed with acl_nfs4.kld(.text+0x234): R_PPC_PLTREL24=20 reloc against local symbol. Using devel/freebsd-gcc9@powerpc with devel/binutils@powerpc resulted in forced bss-plt use stopping the build. =3D=3D=3D Mark Millard marklmi at yahoo.com ( dsl-only.net went away in early 2018-Mar)