Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 28 Nov 2016 03:02:18 -0800
From:      Mark Millard <markmi@dsl-only.net>
To:        FreeBSD Toolchain <freebsd-toolchain@freebsd.org>, FreeBSD PowerPC ML <freebsd-ppc@freebsd.org>
Cc:        Dimitry Andric <dim@freebsd.org>, Ed Maste <emaste@freebsd.org>, Justin Hibbits <chmeeedalf@gmail.com>, Nathan Whitehorn <nwhitehorn@freebsd.org>
Subject:   Cross built head -r309179 TARGET_ARCH=powerpc64 with clang 3.9.0/powerpc64-binutils based buildworld operates; but fails "self-hosted buildworld" for undefined references
Message-ID:  <0BC8D9FA-2822-41CA-8CAE-89DCF9C4918F@dsl-only.net>

next in thread | raw e-mail | index | archive | help
[The powerpc64 self-hosted buildworld failure is for undefined
references to llvm::sys::CompareAndSwap and
llvm::sys::MemoryFence. See later below.]


I cross built TARGET_ARCH=3Dpowerpc64 head -r309179 via . . .
(has workaround matching -r309201 and my PowerMac G5 booting hack)

buildworld via clang 3.9.0 and it using powerpc64-binutils
buildkernel via powerpc-xtoolchain-gcc (and so powerpc64-binutils)

and installed and booted the combination:

> # uname -apKU
> FreeBSD FBSDG5L 12.0-CURRENT FreeBSD 12.0-CURRENT #1 r309179M: Mon Nov =
28 01:23:26 PST 2016     =
markmi@FreeBSDx64:/usr/obj/powerpc64vtsc_xtoolchain_kernel/powerpc.powerpc=
64/usr/src/sys/GENERIC64vtsc-NODBG  powerpc powerpc64 1200017 1200017


> # clang --version
> FreeBSD clang version 3.9.0 (tags/RELEASE_390/final 280324) (based on =
LLVM 3.9.0)
> Target: powerpc64-unknown-freebsd12.0
> Thread model: posix
> InstalledDir: /usr/bin


I then attempted a self-hosted buildworld but it failed with:

> Building =
/usr/obj/powerpc64vtsc_clang_altbinutils_world/powerpc.powerpc64/usr/src/t=
mp/usr/src/usr.bin/clang/clang-tblgen/clang-tblgen.full
> --- clang-tblgen.full ---
> =
/usr/obj/powerpc64vtsc_clang_altbinutils_world/powerpc.powerpc64/usr/src/t=
mp/usr/src/lib/clang/libllvmminimal/libllvmminimal.a(ManagedStatic.o): =
In function `getManagedStaticMutex()':
> /usr/src/contrib/llvm/lib/Support/ManagedStatic.cpp:(.text+0x1c4): =
undefined reference to `llvm::sys::CompareAndSwap(unsigned int =
volatile*, unsigned int, unsigned int)'
> /usr/src/contrib/llvm/lib/Support/ManagedStatic.cpp:(.text+0x1d8): =
undefined reference to `llvm::sys::MemoryFence()'
> /usr/src/contrib/llvm/lib/Support/ManagedStatic.cpp:(.text+0x220): =
undefined reference to `llvm::sys::MemoryFence()'
> clang++: error: linker command failed with exit code 1 (use -v to see =
invocation)
> *** [clang-tblgen.full] Error code 1
>=20
> make[3]: stopped in /usr/src/usr.bin/clang/clang-tblgen
> .ERROR_TARGET=3D'clang-tblgen.full'
> =
.ERROR_META_FILE=3D'/usr/obj/powerpc64vtsc_clang_altbinutils_world/powerpc=
.powerpc64/usr/src/tmp/usr/src/usr.bin/clang/clang-tblgen/clang-tblgen.ful=
l.meta'
> .MAKE.LEVEL=3D'3'
> MAKEFILE=3D''
> .MAKE.MODE=3D'meta missing-filemon=3Dyes missing-meta=3Dyes silent=3Dyes=
 verbose'
> .CURDIR=3D'/usr/src/usr.bin/clang/clang-tblgen'
> .MAKE=3D'make'
> =
.OBJDIR=3D'/usr/obj/powerpc64vtsc_clang_altbinutils_world/powerpc.powerpc6=
4/usr/src/tmp/usr/src/usr.bin/clang/clang-tblgen'
> .TARGETS=3D'all'
> DESTDIR=3D''
> LD_LIBRARY_PATH=3D''
> MACHINE=3D'powerpc'
> MACHINE_ARCH=3D'powerpc64'
> =
MAKEOBJDIRPREFIX=3D'/usr/obj/powerpc64vtsc_clang_altbinutils_world/powerpc=
.powerpc64/usr/src/tmp'
> MAKESYSPATH=3D'/usr/src/share/mk'
> MAKE_VERSION=3D'20160818'
> =
PATH=3D'/usr/obj/powerpc64vtsc_clang_altbinutils_world/powerpc.powerpc64/u=
sr/src/tmp/legacy/usr/sbin:/usr/obj/powerpc64vtsc_clang_altbinutils_world/=
powerpc.powerpc64/usr/src/tmp/legacy/usr/bin:/usr/obj/powerpc64vtsc_clang_=
altbinutils_world/powerpc.powerpc64/usr/src/tmp/legacy/bin:/sbin:/bin:/usr=
/sbin:/usr/bin'
> SRCTOP=3D'/usr/src'
> =
OBJTOP=3D'/usr/obj/powerpc64vtsc_clang_altbinutils_world/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-clang_altbinutils-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/usr.bin/clang/clang-tblgen/Makefile =
/usr/src/usr.bin/clang/llvm.prog.mk /usr/src/lib/clang/llvm.pre.mk =
/usr/src/lib/clang/llvm.build.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/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/usr.bin/clang/clang-tblgen/../Makefile.inc =
/usr/src/usr.bin/clang/clang-tblgen/../../Makefile.inc =
/usr/src/share/mk/bsd.own.mk /usr/src/share/mk/bsd.compiler.mk =
/usr/src/share/mk/bsd.compiler.mk /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/usr.bin/clang/clang-tblgen =
/usr/src/contrib/llvm/tools/clang/utils/TableGen'
> 1 error

. . .




> # less =
/usr/obj/powerpc64vtsc_clang_altbinutils_world/powerpc.powerpc64/usr/src/t=
mp/usr/src/usr.bin/clang/clang-tblgen/clang-tblgen.full.meta
> # Meta data file =
/usr/obj/powerpc64vtsc_clang_altbinutils_world/powerpc.powerpc64/usr/src/t=
mp/usr/src/usr.bin/clang/clang-tblgen/clang-tblgen.full.meta
> CMD /usr/bin/clang++ -B /usr/local/powerpc64-freebsd/bin/ -O2 -pipe =
-I/usr/obj/powerpc64vtsc_clang_altbinutils_world/powerpc.powerpc64/usr/src=
/tmp/usr/src/lib/clang/libllvm -I/usr/src/lib/clang/include =
-I/usr/src/contrib/llvm/include -DLLVM_ON_UNIX -DLLVM_ON_FREEBSD =
-D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS =
-DLLVM_DEFAULT_TARGET_TRIPLE=3D\"powerpc64-unknown-freebsd12.0\" =
-DLLVM_HOST_TRIPLE=3D\"powerpc64-unknown-freebsd12.0\" =
-DDEFAULT_SYSROOT=3D\"/usr/obj/powerpc64vtsc_clang_altbinutils_world/power=
pc.powerpc64/usr/src/tmp\" -g -Qunused-arguments =
-I/usr/obj/powerpc64vtsc_clang_altbinutils_world/powerpc.powerpc64/usr/src=
/tmp/legacy/usr/include -std=3Dc++11 -fno-exceptions -fno-rtti =
-stdlib=3Dlibc++ -Wno-c++11-extensions  -static =
-L/usr/obj/powerpc64vtsc_clang_altbinutils_world/powerpc.powerpc64/usr/src=
/tmp/legacy/usr/lib -o clang-tblgen.full  ClangASTNodesEmitter.o =
ClangAttrEmitter.o ClangCommentCommandInfoEmitter.o =
ClangCommentHTMLNamedCharacterReferenceEmitter.o =
ClangCommentHTMLTagsEmitter.o ClangDiagnosticsEmitter.o =
ClangSACheckersEmitter.o NeonEmitter.o TableGen.o =
/usr/obj/powerpc64vtsc_clang_altbinutils_world/powerpc.powerpc64/usr/src/t=
mp/usr/src/lib/clang/libllvmminimal/libllvmminimal.a  -lncursesw  =
-lpthread -legacy
> CWD =
/usr/obj/powerpc64vtsc_clang_altbinutils_world/powerpc.powerpc64/usr/src/t=
mp/usr/src/usr.bin/clang/clang-tblgen
> TARGET clang-tblgen.full
> -- command output --
> =
/usr/obj/powerpc64vtsc_clang_altbinutils_world/powerpc.powerpc64/usr/src/t=
mp/usr/src/lib/clang/libllvmminimal/libllvmminimal.a(ManagedStatic.o): =
In function `getManagedStaticMutex()':
> /usr/src/contrib/llvm/lib/Support/ManagedStatic.cpp:(.text+0x1c4): =
undefined reference to `llvm::sys::CompareAndSwap(unsigned int =
volatile*, unsigned int, unsigned int)'
> /usr/src/contrib/llvm/lib/Support/ManagedStatic.cpp:(.text+0x1d8): =
undefined reference to `llvm::sys::MemoryFence()'
> /usr/src/contrib/llvm/lib/Support/ManagedStatic.cpp:(.text+0x220): =
undefined reference to `llvm::sys::MemoryFence()'
> clang++: error: linker command failed with exit code 1 (use -v to see =
invocation)
> *** Error code 1
. . .



> # svnlite info /usr/src/ | grep "Re[lpv]"
> Relative URL: ^/head
> Repository Root: https://svn0.us-west.freebsd.org/base
> Repository UUID: ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
> Revision: 309179
> Last Changed Rev: 309179


=3D=3D=3D
Mark Millard
markmi at dsl-only.net




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?0BC8D9FA-2822-41CA-8CAE-89DCF9C4918F>