From owner-freebsd-toolchain@freebsd.org Sun Oct 8 04:46:05 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 D8D99E266F2 for ; Sun, 8 Oct 2017 04:46:05 +0000 (UTC) (envelope-from markmi@dsl-only.net) Received: from asp.reflexion.net (outbound-mail-210-18.reflexion.net [208.70.210.18]) (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 895797C327 for ; Sun, 8 Oct 2017 04:46:04 +0000 (UTC) (envelope-from markmi@dsl-only.net) Received: (qmail 7169 invoked from network); 8 Oct 2017 04:46:03 -0000 Received: from unknown (HELO rtc-sm-01.app.dca.reflexion.local) (10.81.150.1) by 0 (rfx-qmail) with SMTP; 8 Oct 2017 04:46:03 -0000 Received: by rtc-sm-01.app.dca.reflexion.local (Reflexion email security v8.40.3) with SMTP; Sun, 08 Oct 2017 00:46:03 -0400 (EDT) Received: (qmail 4364 invoked from network); 8 Oct 2017 04:46:02 -0000 Received: from unknown (HELO iron2.pdx.net) (69.64.224.71) by 0 (rfx-qmail) with (AES256-SHA encrypted) SMTP; 8 Oct 2017 04:46:02 -0000 Received: from [192.168.1.26] (c-76-115-7-162.hsd1.or.comcast.net [76.115.7.162]) by iron2.pdx.net (Postfix) with ESMTPSA id 333FBEC8FB8; Sat, 7 Oct 2017 21:46:02 -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.3 \(3273\)) Subject: powerpc64 /usr/bin/ld crashes during buildworld: ppc64_elf_tls_optimize gets signal 11 Message-Id: Date: Sat, 7 Oct 2017 21:46:01 -0700 To: FreeBSD Toolchain , FreeBSD PowerPC ML 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: Sun, 08 Oct 2017 04:46:06 -0000 Because of the following I've had to use a ports binutils (such as devel/powerpc64-binutils ) instead of the system binutils in order to have a clang-based powerpc64 world do a gcc 4.2.1 based "cross build" (buildworld buildkernel). This was from a clang-based buildworld buildkernel powerpc64 FreeBSD context. It was an attempt to do a gcc 4.2.1 "cross-compiler" based buildworld buildkernel. It did not get very far before (using one of several ld core files as an example): # /usr/libexec/gdb ld /var/crash/ld.26814.core=20 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 "powerpc64-marcel-freebsd"... Core was generated by `/usr/bin/ld --eh-frame-hdr -Bstatic -o gperf.full = /usr/lib/crt1.o /usr/lib/crti.'. Program terminated with signal 11, Segmentation fault. #0 0x000000001002e148 in ppc64_elf_tls_optimize (obfd=3D, info=3D) at = /usr/src/gnu/usr.bin/binutils/libbfd/../../../../contrib/binutils/bfd/elf6= 4-ppc.c:7172 7172 for (ent =3D = htab->tls_get_addr->elf.plt.plist; (gdb) bt #0 0x000000001002e148 in ppc64_elf_tls_optimize (obfd=3D, info=3D) at = /usr/src/gnu/usr.bin/binutils/libbfd/../../../../contrib/binutils/bfd/elf6= 4-ppc.c:7172 #1 0x0000000010001034 in ppc_before_allocation () at = eelf64ppc_fbsd.c:204 #2 0x0000000010009be4 in ldemul_before_allocation () at = /usr/src/gnu/usr.bin/binutils/ld/../../../../contrib/binutils/ld/ldemul.c:= 78 #3 0x0000000010017b00 in lang_process () at = /usr/src/gnu/usr.bin/binutils/ld/../../../../contrib/binutils/ld/ldlang.c:= 5785 #4 0x0000000010021ce0 in main (argc=3D0, argv=3D) = at = /usr/src/gnu/usr.bin/binutils/ld/../../../../contrib/binutils/ld/ldmain.c:= 459 #5 0x00000000100004a8 in _start (argc=3D0, argv=3D0x50a24fc0, = env=3D0x50f3feb8, obj=3D, cleanup=3D, ps_strings=3D) at /usr/src/lib/csu/powerpc64/crt1.c:94 Current language: auto; currently minimal The source is: if (expecting_tls_get_addr) { struct plt_entry *ent; for (ent =3D htab->tls_get_addr->elf.plt.plist; ent !=3D NULL; ent =3D ent->next) if (ent->addend =3D=3D 0) { if (ent->plt.refcount > 0) { ent->plt.refcount -=3D 1; expecting_tls_get_addr =3D 0; } break; } } (gdb) print htab->tls_get_addr $3 =3D (struct ppc_link_hash_entry *) 0x0 0x1002e124 : beq- 0x1002e4ec = 0x1002e128 : li r3,18 0x1002e12c : li r14,2 0x1002e130 : li r28,0 0x1002e134 : cmpwi r5,0 0x1002e138 : crnot 4*cr5+lt,eq 0x1002e13c : beq- cr2,0x1002e198 = 0x1002e140 : bge- cr5,0x1002e330 = 0x1002e144 : ld r4,544(r22) 0x1002e148 : ld r4,80(r4) 0x1002e14c : cmpldi r4,0 0x1002e150 : beq- 0x1002e16c = (gdb) info reg r5 r5 0x1 1 (I expect that means expecting_tls_get_addr=3D=3D1 .) (gdb) info reg r4 r4 0x0 0 --- _bootstrap-tools-gnu/usr.bin/gperf --- Building = /usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/src/tmp/usr/src/gnu/us= r.bin/gperf/version.o Building = /usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/src/tmp/usr/src/gnu/us= r.bin/gperf/getline.o Building = /usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/src/tmp/usr/src/gnu/us= r.bin/gperf/hash.o Building = /usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/src/tmp/usr/src/gnu/us= r.bin/gperf/gperf.full . . . --- _bootstrap-tools-gnu/usr.bin/gperf --- --- gperf.full --- c++: error: unable to execute command: Segmentation fault (core dumped) c++: error: linker command failed due to signal (use -v to see = invocation) *** [gperf.full] Error code 254 make[3]: stopped in /usr/src/gnu/usr.bin/gperf .ERROR_TARGET=3D'gperf.full' = .ERROR_META_FILE=3D'/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/sr= c/tmp/usr/src/gnu/usr.bin/gperf/gperf.full.meta' .MAKE.LEVEL=3D'3' MAKEFILE=3D'' .MAKE.MODE=3D'meta missing-filemon=3Dyes missing-meta=3Dyes silent=3Dyes = verbose' _ERROR_CMD=3D'c++ -O2 -pipe -g -Qunused-arguments = -I/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/src/tmp/legacy/usr/i= nclude -I/usr/src/contrib/gperf/lib -I/usr/src/gnu/usr.bin/gperf = -Wno-c++11-extensions -static = -L/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/src/tmp/legacy/usr/l= ib -o gperf.full bool-array.o hash-table.o input.o keyword-list.o = keyword.o main.o options.o output.o positions.o search.o version.o = getline.o hash.o -legacy;' .CURDIR=3D'/usr/src/gnu/usr.bin/gperf' .MAKE=3D'make' = .OBJDIR=3D'/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/src/tmp/usr= /src/gnu/usr.bin/gperf' .TARGETS=3D'all' DESTDIR=3D'' LD_LIBRARY_PATH=3D'' MACHINE=3D'powerpc' MACHINE_ARCH=3D'powerpc64' = MAKEOBJDIRPREFIX=3D'/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/sr= c/tmp' MAKESYSPATH=3D'/usr/src/share/mk' MAKE_VERSION=3D'20170720' = PATH=3D'/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/src/tmp/legacy= /usr/sbin:/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/src/tmp/lega= cy/usr/bin:/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/src/tmp/leg= acy/bin:/sbin:/bin:/usr/sbin:/usr/bin' SRCTOP=3D'/usr/src' = OBJTOP=3D'/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/src/tmp/usr/= src' .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-gcc421-bootstrap.powerpc64-host = /usr/src/share/mk/bsd.mkopt.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/gnu/usr.bin/gperf/Makefile /usr/src/share/mk/bsd.own.mk = /usr/src/share/mk/bsd.opts.mk /usr/src/share/mk/bsd.cpu.mk = /usr/src/share/mk/bsd.compiler.mk /usr/src/share/mk/bsd.linker.mk = /usr/src/tools/build/mk/bsd.prog.mk /usr/src/share/mk/bsd.prog.mk = /usr/src/share/mk/bsd.init.mk /usr/src/share/mk/local.init.mk = /usr/src/share/mk/src.init.mk /usr/src/gnu/usr.bin/gperf/../Makefile.inc = /usr/src/gnu/usr.bin/gperf/../../Makefile.inc = /usr/src/share/mk/bsd.libnames.mk /usr/src/share/mk/src.libnames.mk = /usr/src/share/mk/src.opts.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.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 /usr/src/tools/build/mk/Makefile.boot' .PATH=3D'. /usr/src/gnu/usr.bin/gperf /usr/src/contrib/gperf/src = /usr/src/contrib/gperf/lib /usr/src/contrib/gperf/doc' 1 error make[3]: stopped in /usr/src/gnu/usr.bin/gperf .ERROR_TARGET=3D'gperf.full' = .ERROR_META_FILE=3D'/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/sr= c/tmp/usr/src/gnu/usr.bin/gperf/gperf.full.meta' .MAKE.LEVEL=3D'3' MAKEFILE=3D'' .MAKE.MODE=3D'meta missing-filemon=3Dyes missing-meta=3Dyes silent=3Dyes = verbose' _ERROR_CMD=3D'c++ -O2 -pipe -g -Qunused-arguments = -I/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/src/tmp/legacy/usr/i= nclude -I/usr/src/contrib/gperf/lib -I/usr/src/gnu/usr.bin/gperf = -Wno-c++11-extensions -static = -L/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/src/tmp/legacy/usr/l= ib -o gperf.full bool-array.o hash-table.o input.o keyword-list.o = keyword.o main.o options.o output.o positions.o search.o version.o = getline.o hash.o -legacy;' .CURDIR=3D'/usr/src/gnu/usr.bin/gperf' .MAKE=3D'make' = .OBJDIR=3D'/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/src/tmp/usr= /src/gnu/usr.bin/gperf' .TARGETS=3D'all' DESTDIR=3D'' LD_LIBRARY_PATH=3D'' MACHINE=3D'powerpc' MACHINE_ARCH=3D'powerpc64' = MAKEOBJDIRPREFIX=3D'/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/sr= c/tmp' MAKESYSPATH=3D'/usr/src/share/mk' MAKE_VERSION=3D'20170720' = PATH=3D'/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/src/tmp/legacy= /usr/sbin:/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/src/tmp/lega= cy/usr/bin:/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/src/tmp/leg= acy/bin:/sbin:/bin:/usr/sbin:/usr/bin' SRCTOP=3D'/usr/src' = OBJTOP=3D'/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/src/tmp/usr/= src' .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-gcc421-bootstrap.powerpc64-host = /usr/src/share/mk/bsd.mkopt.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/gnu/usr.bin/gperf/Makefile /usr/src/share/mk/bsd.own.mk = /usr/src/share/mk/bsd.opts.mk /usr/src/share/mk/bsd.cpu.mk = /usr/src/share/mk/bsd.compiler.mk /usr/src/share/mk/bsd.linker.mk = /usr/src/tools/build/mk/bsd.prog.mk /usr/src/share/mk/bsd.prog.mk = /usr/src/share/mk/bsd.init.mk /usr/src/share/mk/local.init.mk = /usr/src/share/mk/src.init.mk /usr/src/gnu/usr.bin/gperf/../Makefile.inc = /usr/src/gnu/usr.bin/gperf/../../Makefile.inc = /usr/src/share/mk/bsd.libnames.mk /usr/src/share/mk/src.libnames.mk = /usr/src/share/mk/src.opts.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.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 /usr/src/tools/build/mk/Makefile.boot' .PATH=3D'. /usr/src/gnu/usr.bin/gperf /usr/src/contrib/gperf/src = /usr/src/contrib/gperf/lib /usr/src/contrib/gperf/doc' *** [_bootstrap-tools-gnu/usr.bin/gperf] Error code 2 make[2]: stopped in /usr/src .ERROR_TARGET=3D'_bootstrap-tools-gnu/usr.bin/gperf' .ERROR_META_FILE=3D'' .MAKE.LEVEL=3D'2' MAKEFILE=3D'' .MAKE.MODE=3D'meta missing-filemon=3Dyes missing-meta=3Dyes silent=3Dyes = verbose' _ERROR_CMD=3D'.PHONY' .CURDIR=3D'/usr/src' .MAKE=3D'make' = .OBJDIR=3D'/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/src/tmp/usr= /src' .TARGETS=3D'bootstrap-tools' DESTDIR=3D'' LD_LIBRARY_PATH=3D'' MACHINE=3D'powerpc' MACHINE_ARCH=3D'powerpc64' = MAKEOBJDIRPREFIX=3D'/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/sr= c/tmp' MAKESYSPATH=3D'/usr/src/share/mk' MAKE_VERSION=3D'20170720' = PATH=3D'/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/src/tmp/legacy= /usr/sbin:/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/src/tmp/lega= cy/usr/bin:/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/src/tmp/leg= acy/bin:/sbin:/bin:/usr/sbin:/usr/bin' SRCTOP=3D'/usr/src' = OBJTOP=3D'/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/tmp/usr/src/usr/= src' .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-gcc421-bootstrap.powerpc64-host = /usr/src/share/mk/bsd.mkopt.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/Makefile.inc1 = /usr/src/share/mk/bsd.compiler.mk /usr/src/share/mk/bsd.opts.mk = /usr/src/share/mk/bsd.cpu.mk /usr/src/share/mk/bsd.linker.mk = /usr/src/share/mk/src.opts.mk /usr/src/share/mk/bsd.own.mk = /usr/src/Makefile.libcompat /usr/src/share/mk/bsd.subdir.mk = /usr/src/share/mk/bsd.init.mk /usr/src/share/mk/local.init.mk = /usr/src/share/mk/src.init.mk' .PATH=3D'. /usr/src' 4 errors make[2]: stopped in /usr/src .ERROR_TARGET=3D'_bootstrap-tools-gnu/usr.bin/gperf' .ERROR_META_FILE=3D'' .MAKE.LEVEL=3D'2' MAKEFILE=3D'' .MAKE.MODE=3D'meta missing-filemon=3Dyes missing-meta=3Dyes silent=3Dyes = verbose' _ERROR_CMD=3D'.PHONY' .CURDIR=3D'/usr/src' .MAKE=3D'make' = .OBJDIR=3D'/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/src/tmp/usr= /src' .TARGETS=3D'bootstrap-tools' DESTDIR=3D'' LD_LIBRARY_PATH=3D'' MACHINE=3D'powerpc' MACHINE_ARCH=3D'powerpc64' = MAKEOBJDIRPREFIX=3D'/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/sr= c/tmp' MAKESYSPATH=3D'/usr/src/share/mk' MAKE_VERSION=3D'20170720' = PATH=3D'/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/src/tmp/legacy= /usr/sbin:/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/src/tmp/lega= cy/usr/bin:/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/src/tmp/leg= acy/bin:/sbin:/bin:/usr/sbin:/usr/bin' SRCTOP=3D'/usr/src' = OBJTOP=3D'/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/tmp/usr/src/usr/= src' .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-gcc421-bootstrap.powerpc64-host = /usr/src/share/mk/bsd.mkopt.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/Makefile.inc1 = /usr/src/share/mk/bsd.compiler.mk /usr/src/share/mk/bsd.opts.mk = /usr/src/share/mk/bsd.cpu.mk /usr/src/share/mk/bsd.linker.mk = /usr/src/share/mk/src.opts.mk /usr/src/share/mk/bsd.own.mk = /usr/src/Makefile.libcompat /usr/src/share/mk/bsd.subdir.mk = /usr/src/share/mk/bsd.init.mk /usr/src/share/mk/local.init.mk = /usr/src/share/mk/src.init.mk' .PATH=3D'. /usr/src' *** [_bootstrap-tools] Error code 2 Other examples include: Core was generated by `/usr/bin/ld --eh-frame-hdr -Bstatic -o = make-roken.full /usr/lib/crt1.o /usr/lib/'. Program terminated with signal 11, Segmentation fault. #0 0x000000001002e148 in ppc64_elf_tls_optimize (obfd=3D, info=3D) at = /usr/src/gnu/usr.bin/binutils/libbfd/../../../../contrib/binutils/bfd/elf6= 4-ppc.c:7172 7172 for (ent =3D = htab->tls_get_addr->elf.plt.plist; (gdb) bt #0 0x000000001002e148 in ppc64_elf_tls_optimize (obfd=3D, info=3D) at = /usr/src/gnu/usr.bin/binutils/libbfd/../../../../contrib/binutils/bfd/elf6= 4-ppc.c:7172 #1 0x0000000010001034 in ppc_before_allocation () at = eelf64ppc_fbsd.c:204 #2 0x0000000010009be4 in ldemul_before_allocation () at = /usr/src/gnu/usr.bin/binutils/ld/../../../../contrib/binutils/ld/ldemul.c:= 78 #3 0x0000000010017b00 in lang_process () at = /usr/src/gnu/usr.bin/binutils/ld/../../../../contrib/binutils/ld/ldlang.c:= 5785 #4 0x0000000010021ce0 in main (argc=3D0, argv=3D) = at = /usr/src/gnu/usr.bin/binutils/ld/../../../../contrib/binutils/ld/ldmain.c:= 459 #5 0x00000000100004a8 in _start (argc=3D0, argv=3D0x50a22400, = env=3D0x50bb3658, obj=3D, cleanup=3D, ps_strings=3D) at /usr/src/lib/csu/powerpc64/crt1.c:94 Current language: auto; currently minimal Core was generated by `/usr/bin/ld --eh-frame-hdr -Bstatic -o = strfile.full /usr/lib/crt1.o /usr/lib/crt'. Program terminated with signal 11, Segmentation fault. #0 0x000000001002e148 in ppc64_elf_tls_optimize (obfd=3D, info=3D) at = /usr/src/gnu/usr.bin/binutils/libbfd/../../../../contrib/binutils/bfd/elf6= 4-ppc.c:7172 7172 for (ent =3D = htab->tls_get_addr->elf.plt.plist; (gdb) bt #0 0x000000001002e148 in ppc64_elf_tls_optimize (obfd=3D, info=3D) at = /usr/src/gnu/usr.bin/binutils/libbfd/../../../../contrib/binutils/bfd/elf6= 4-ppc.c:7172 #1 0x0000000010001034 in ppc_before_allocation () at = eelf64ppc_fbsd.c:204 #2 0x0000000010009be4 in ldemul_before_allocation () at = /usr/src/gnu/usr.bin/binutils/ld/../../../../contrib/binutils/ld/ldemul.c:= 78 #3 0x0000000010017b00 in lang_process () at = /usr/src/gnu/usr.bin/binutils/ld/../../../../contrib/binutils/ld/ldlang.c:= 5785 #4 0x0000000010021ce0 in main (argc=3D0, argv=3D) = at = /usr/src/gnu/usr.bin/binutils/ld/../../../../contrib/binutils/ld/ldmain.c:= 459 #5 0x00000000100004a8 in _start (argc=3D0, argv=3D0x50a222c0, = env=3D0x50bdbfb8, obj=3D, cleanup=3D, ps_strings=3D) at /usr/src/lib/csu/powerpc64/crt1.c:94 Current language: auto; currently minimal It appears that clang 5 outputs something that the system ld does not expect, such that htab->tls_get_addr=3D=3DNULL is involved when expecting_tls_get_addr=3D=3D1 . Details for the failing build's context: # more = ~/sys_build_scripts.powerpc64-host/make_powerpc64vtsc_nodebug_gcc421_boots= trap-powerpc64-host.sh=20 kldload -n filemon && \ script = ~/sys_typescripts/typescript_make_powerpc64vtsc_nodebug_gcc421_bootstrap-p= owerpc64-host-$(date +%Y-%m-%d:%H:%M:%S) \ env __MAKE_CONF=3D"/root/src.configs/make.conf" \ SRCCONF=3D"/dev/null" = SRC_ENV_CONF=3D"/root/src.configs/src.conf.powerpc64-gcc421-bootstrap.powe= rpc64-host" \ WITH_META_MODE=3Dyes \ MAKEOBJDIRPREFIX=3D"/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64" \ make $* # more = /root/src.configs/src.conf.powerpc64-gcc421-bootstrap.powerpc64-host TO_TYPE=3Dpowerpc64 # KERNCONF=3DGENERIC64vtsc-NODBG TARGET=3Dpowerpc .if ${.MAKE.LEVEL} =3D=3D 0 TARGET_ARCH=3D${TO_TYPE} .export TARGET_ARCH .endif # #WITH_CROSS_COMPILER=3D WITH_SYSTEM_COMPILER=3D # WITHOUT_LIBCPLUSPLUS=3D WITH_BINUTILS_BOOTSTRAP=3D WITH_ELFTOOLCHAIN_BOOTSTRAP=3D WITHOUT_CLANG_BOOTSTRAP=3D WITHOUT_CLANG=3D WITHOUT_CLANG_IS_CC=3D WITHOUT_CLANG_FULL=3D WITHOUT_CLANG_EXTRAS=3D WITHOUT_LLD=3D WITHOUT_LLDB=3D # WITH_BOOT=3D WITH_LIB32=3D # WITH_GCC_BOOTSTRAP=3D WITH_GCC=3D WITH_GCC_IS_CC=3D WITH_GNUCXX=3D # NO_WERROR=3D #WERROR=3D MALLOC_PRODUCTION=3D # WITH_REPRODUCIBLE_BUILD=3D WITH_DEBUG_FILES=3D Making it work means adding (for example): TOOLS_TO_TYPE=3D${TO_TYPE} . . . # # # For TO (so-called "cross") stages . . . # So-called-cross via ${TO_TYPE}-xtoolchain-gcc/${TO_TYPE}-gcc. . . # TOOLS_TO_TYPE based on ${TO_TYPE}-xtoolchain-gcc related binutils. . . # CROSS_BINUTILS_PREFIX=3D/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/ .if ${.MAKE.LEVEL} =3D=3D 0 # CFLAGS.clang+=3D -B${CROSS_BINUTILS_PREFIX} CXXFLAGS.clang+=3D -B${CROSS_BINUTILS_PREFIX} .export CFLAGS.clang .export CXXFLAGS.clang AS=3D/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/as AR=3D/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/ar NM=3D/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/nm OBJCOPY=3D/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/objcopy OBJDUMP=3D/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/objdump RANLIB=3D/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/ranlib XSIZE=3D/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/size #NO-SUCH: STRINGS=3D/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/strings STRINGS=3D/usr/local/bin/${TOOLS_TO_TYPE}-freebsd-strings .export AS .export AR .export NM .export OBJCOPY .export OBJDUMP .export RANLIB .export SIZE .export STRINGS LD=3D/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/ld .export LD .endif As I remember, back in clang 4 days I did not have to do such a thing (or it would have been already be in place in my environment for these experiments). It may well be that 32-bit powerpc would not have this issue. =3D=3D=3D Mark Millard markmi at dsl-only.net