да, с ccache дружит. Собрал мир и ядро с помощью clang. Мир стал работать на порядок шустрее, а ядро похудело.
Из локальных хаков в дополнение к llvm-bmake использую
Код: Выделить всё
Index: lib/libthr/Makefile
===================================================================
--- lib/libthr/Makefile (revision 189969)
+++ lib/libthr/Makefile (working copy)
@@ -13,6 +13,10 @@
.include <bsd.own.mk>
MK_SSP= no
+.if ${MK_CLANG_IS_CC} != "no" && ${CC} == "cc"
+CC= gcc
+.endif
+
LIB=thr
SHLIB_MAJOR= 3
WARNS?= 3
Index: sys/boot/zfs/Makefile
===================================================================
--- sys/boot/zfs/Makefile (revision 189969)
+++ sys/boot/zfs/Makefile (working copy)
@@ -3,6 +3,10 @@
LIB= zfsboot
INTERNALLIB=
+.if ${MK_CLANG_IS_CC} != "no" && ${CC} == "cc"
+CC= gcc
+.endif
+
SRCS+= zfs.c
CFLAGS+= -I${.CURDIR}/../common -I${.CURDIR}/../.. -I.
Index: sys/conf/kern.post.mk
===================================================================
--- sys/conf/kern.post.mk (revision 189969)
+++ sys/conf/kern.post.mk (working copy)
@@ -153,9 +153,9 @@
.depend: .PRECIOUS ${SRCS}
rm -f .newdep
${MAKE} -V CFILES -V SYSTEM_CFILES -V GEN_CFILES | \
- MKDEP_CPP="${CC} -E" CC="${CC}" xargs mkdep -a -f .newdep ${CFLAGS}
+ MKDEP_CPP="gcc -E" CC="${CC}" xargs mkdep -a -f .newdep ${CFLAGS}
${MAKE} -V SFILES | \
- MKDEP_CPP="${CC} -E" xargs mkdep -a -f .newdep ${ASM_CFLAGS}
+ MKDEP_CPP="gcc -E" xargs mkdep -a -f .newdep ${ASM_CFLAGS}
rm -f .depend
mv .newdep .depend