Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 2 Dec 2016 20:38:52 -0700
From:      Kevin Bowling <kevin.bowling@kev009.com>
To:        Mark Millard <markmi@dsl-only.net>
Cc:        FreeBSD Toolchain <freebsd-toolchain@freebsd.org>,  FreeBSD PowerPC ML <freebsd-ppc@freebsd.org>, Dimitry Andric <dim@freebsd.org>, Justin Hibbits <chmeeedalf@gmail.com>
Subject:   Re: 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:  <CAK7dMtA1ydTJhZC5r=f3rWiXUz_3FLHW5z%2B7KQkb9qpzLA_-rw@mail.gmail.com>
In-Reply-To: <0BC8D9FA-2822-41CA-8CAE-89DCF9C4918F@dsl-only.net>
References:  <0BC8D9FA-2822-41CA-8CAE-89DCF9C4918F@dsl-only.net>

next in thread | previous in thread | raw e-mail | index | archive | help
Interesting, that is quite a lot of progress if it boots with a
crossbuild.  I wonder if editing
/usr/src/contrib/llvm/lib/Support/Atomic.cpp so the GNU_ATOMICS path is
taken will work around these errors until someone more knowledgeable can
comment.

On Mon, Nov 28, 2016 at 4:02 AM, Mark Millard <markmi@dsl-only.net> wrote:

> [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=powerpc64 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.powerpc64/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/tmp/usr/src/usr.bin/clang/clang-tblgen/clang-tblgen.full
> > --- clang-tblgen.full ---
> > /usr/obj/powerpc64vtsc_clang_altbinutils_world/powerpc.
> powerpc64/usr/src/tmp/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
> >
> > make[3]: stopped in /usr/src/usr.bin/clang/clang-tblgen
> > .ERROR_TARGET='clang-tblgen.full'
> > .ERROR_META_FILE='/usr/obj/powerpc64vtsc_clang_
> altbinutils_world/powerpc.powerpc64/usr/src/tmp/usr/src/
> usr.bin/clang/clang-tblgen/clang-tblgen.full.meta'
> > .MAKE.LEVEL='3'
> > MAKEFILE=''
> > .MAKE.MODE='meta missing-filemon=yes missing-meta=yes silent=yes verbose'
> > .CURDIR='/usr/src/usr.bin/clang/clang-tblgen'
> > .MAKE='make'
> > .OBJDIR='/usr/obj/powerpc64vtsc_clang_altbinutils_world/powerpc.
> powerpc64/usr/src/tmp/usr/src/usr.bin/clang/clang-tblgen'
> > .TARGETS='all'
> > DESTDIR=''
> > LD_LIBRARY_PATH=''
> > MACHINE='powerpc'
> > MACHINE_ARCH='powerpc64'
> > MAKEOBJDIRPREFIX='/usr/obj/powerpc64vtsc_clang_
> altbinutils_world/powerpc.powerpc64/usr/src/tmp'
> > MAKESYSPATH='/usr/src/share/mk'
> > MAKE_VERSION='20160818'
> > PATH='/usr/obj/powerpc64vtsc_clang_altbinutils_world/
> powerpc.powerpc64/usr/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='/usr/src'
> > OBJTOP='/usr/obj/powerpc64vtsc_clang_altbinutils_world/powerpc.
> powerpc64/usr/src/tmp/usr/src'
> > .MAKE.MAKEFILES='/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='. /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/tmp/usr/src/usr.bin/clang/clang-tblgen/
> clang-tblgen.full.meta
> > # Meta data file /usr/obj/powerpc64vtsc_clang_altbinutils_world/powerpc.
> powerpc64/usr/src/tmp/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=\
> "powerpc64-unknown-freebsd12.0\" -DLLVM_HOST_TRIPLE=\"
> powerpc64-unknown-freebsd12.0\" -DDEFAULT_SYSROOT=\"/usr/obj/
> powerpc64vtsc_clang_altbinutils_world/powerpc.powerpc64/usr/src/tmp\" -g
> -Qunused-arguments -I/usr/obj/powerpc64vtsc_clang_altbinutils_world/
> powerpc.powerpc64/usr/src/tmp/legacy/usr/include -std=c++11
> -fno-exceptions -fno-rtti -stdlib=libc++ -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 ClangCommentHTMLTagsEmit
>  ter.o ClangDiagnosticsEmitter.o ClangSACheckersEmitter.o NeonEmitter.o
> TableGen.o /usr/obj/powerpc64vtsc_clang_altbinutils_world/powerpc.
> powerpc64/usr/src/tmp/usr/src/lib/clang/libllvmminimal/libllvmminimal.a
> -lncursesw  -lpthread -legacy
> > CWD /usr/obj/powerpc64vtsc_clang_altbinutils_world/powerpc.
> powerpc64/usr/src/tmp/usr/src/usr.bin/clang/clang-tblgen
> > TARGET clang-tblgen.full
> > -- command output --
> > /usr/obj/powerpc64vtsc_clang_altbinutils_world/powerpc.
> powerpc64/usr/src/tmp/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
>
>
> ===
> Mark Millard
> markmi at dsl-only.net
>
> _______________________________________________
> freebsd-ppc@freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-ppc
> To unsubscribe, send any mail to "freebsd-ppc-unsubscribe@freebsd.org"
>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAK7dMtA1ydTJhZC5r=f3rWiXUz_3FLHW5z%2B7KQkb9qpzLA_-rw>