powerpc64 10.0-STABLE uses -mlongcall , -mcall-aixdesc , and -Wa, -many --none of which does clang 3.4.1 support
Mark Millard
markmi at dsl-only.net
Mon Jun 30 07:55:10 UTC 2014
buildworld uses -mlongcall for /usr/src/lib/csu/powerpc64/ and so clang 3.4.1 stops there.
buildkernel uses -mcall-aixdesc and -Wa,-many for /usr/obj/usr/src/sys/GENERIC64/ and so clang stops there as well.
Technique of discovery: Starting from
FreeBSD-10.0-STABLE-powerpc-powerpc64-20140622-r267746-disk1.iso
[with /usr/ports/Mk/Uses/compiler.mk still reverted so it does not avoid clang so much --but I'v not gotten to devel/boost-all testing yet]
and with /etc/make.conf being:
CPP=clang-cpp
CC=clang
CXX=clang++
then following script tries buildworld and buildkernel:
#!/bin/sh
rm -fr /usr/obj/*
#
# Presume a free-standing clang c++ is available for bootstrapping:
# One is in 10.0-STABLE for the specifics here.
#
# Convert to having hosted implementation material in place.
#
cd /usr/src/lib/libcxxrt
make clean
make
make install
#
cd /usr/src/lib/libc++
make clean
make
make install
#
# Then with the hosted implementation in place...
#
make buildworld
make buildkernel
In essence: it bootstraps from a freestanding clang based c++ implementation to a hosted c++ implementation before any other possible other uses of the c++ compiler (including before llvm and/or clang are rebuilt: They require a hosted implementation.).
libcxxrt and libc++ built without reporting errors. The lack of && between make buildworld and make buildkernel allowed the script file to show where both stopped: I was more interested in that information than continuing to build without starting over.
I will probably see what happens if I repeat my boost-all experiment: rebuild all the prerequisites in this context and then retry boost-all (if it it gets that far). That would mean that icu had been built by clang (if it is successful).
===
Mark Millard
markmi at dsl-only.net
More information about the freebsd-ppc
mailing list