building world and kernel without ebuilding ("bootstrap"?) clang?
Lev Serebryakov
lev at FreeBSD.org
Wed Apr 10 15:56:49 UTC 2013
Hello, Brooks.
You wrote 10 апреля 2013 г., 18:50:04:
BD> The key is to pass the --sysroot option to the compiler. I've got a not
BD> quite finished (mostly due to a complete lack of documentation) set of
BD> patches to Makefile.inc1 to do this:
BD> http://people.freebsd.org/~brooks/patches/xcc3.diff
BD> If you set XCC=/path/to/clang XCXX=/path/to/clang++ XCPP=clang-cpp then
BD> when building world and kernel you will use those compilers and not
BD> build a cross compiler. In that mode you will still build and use a
BD> cross binutils
I've checked this patch right now, it works for me for "buildworld"
and "buildkernel" but not for "installworld":
mkdir -p /tmp/install.FxqSvHpP
progs=$(for prog in [ awk cap_mkdb cat chflags chmod chown date echo egrep find grep id install ln lockf make mkdir mtree nmtree mv pwd_mkdb rm sed sh sysctl test true uname wc zic tzsetup; do if progpath=`which $prog`; then echo $progpath; else echo "Required tool $prog not found in PATH." >&2; exit 1; fi; done); libs=$(ldd -f "%o %p\n" -f "%o %p\n" $progs 2>/dev/null | sort -u | while read line; do $line; if [ "$2 $3" != "not found" ]; then echo $2; else echo "Required library $1 not found." >&2; exit 1; fi; done); cp $libs $progs /tmp/install.FxqSvHpP
cp -R ${PATH_LOCALE:-"/usr/share/locale"} /tmp/install.FxqSvHpP/locale
cd /data/src; MAKEOBJDIRPREFIX=/data/obj.nano/gateway.v2 MACHINE_ARCH=amd64 MACHINE=amd64 CPUTYPE= PATH=/data/obj.nano/gateway.v2/data/src/tmp/legacy/usr/sbin:/data/obj.nano/gateway.v2/data/src/tmp/legacy/usr/bin:/data/obj.nano/gateway.v2/data/src/tmp/legacy/usr/games:/data/obj.nano/gateway.v2/data/src/tmp/legacy/bin:/data/obj.nano/gateway.v2/data/src/tmp/usr/sbin:/data/obj.nano/gateway.v2/data/src/tmp/usr/bin:/data/obj.nano/gateway.v2/data/src/tmp/usr/games:/tmp/install.FxqSvHpP LD_LIBRARY_PATH=/tmp/install.FxqSvHpP PATH_LOCALE=/tmp/install.FxqSvHpP/locale /data/obj.nano/gateway.v2/data/src/make.amd64/make -f Makefile.inc1 __MAKE_SHELL=/tmp/install.FxqSvHpP/sh reinstall; MAKEOBJDIRPREFIX=/data/obj.nano/gateway.v2 MACHINE_ARCH=amd64 MACHINE=amd64 CPUTYPE= PATH=/data/obj.nano/gateway.v2/data/src/tmp/legacy/usr/sbin:/data/obj.nano/gateway.v2/data/src/tmp/legacy/usr/bin:/data/obj.nano/gateway.v2/data/src/tmp/legacy/usr/games:/data/obj.nano/gateway.v2/data/src/tmp/legacy/bin:/data/obj.nano/gateway.v2/data/src/tmp/usr/sbin:/data/obj.nano/gateway.v2/data/src/tmp/usr/bin:/data/obj.nano/gateway.v2/data/src/tmp/usr/games:/tmp/install.FxqSvHpP LD_LIBRARY_PATH=/tmp/install.FxqSvHpP PATH_LOCALE=/tmp/install.FxqSvHpP/locale rm -rf /tmp/install.FxqSvHpP
cc: not found
"/data/src/share/mk/bsd.compiler.mk", line 9: warning: "cc --version" returned non-zero status
"/data/src/share/mk/bsd.compiler.mk", line 17: Unable to determine compiler type for cc. Consider setting COMPILER_TYPE.
*** [installworld] Error code 1
1 error
*** [installworld] Error code 2
1 error
(sources is /data/src, OBJDIRPREFIX is /data/obj.nano/gateway.v2)
--
// Black Lion AKA Lev Serebryakov <lev at FreeBSD.org>
More information about the freebsd-hackers
mailing list