I think we are ready to switch. The procedure is the same as with previous switches. Apply the diff below, run make install in /usr/src/share/mk, and create the following hard links:
# ln -f /usr/bin/clang /usr/bin/cc # ln -f /usr/bin/clang++ /usr/bin/c++ # ln -f /usr/bin/clang-cpp /usr/libexec/cpp Note that between installing new shared libraries and installing new binaries, sshd won't work, so you won't be able to log in remotely. Existing connection will stay alive and you can log in on the serial console. The problem here is that some of our shared libraries re-export libgcc symbols that disappear when you compile with clang. This means that some ports will also stop working, and will have to be re-built. Can the ports people deal with that? ok? Index: share/mk/bsd.own.mk =================================================================== RCS file: /cvs/src/share/mk/bsd.own.mk,v retrieving revision 1.187 diff -u -p -r1.187 bsd.own.mk --- share/mk/bsd.own.mk 26 Oct 2017 19:08:33 -0000 1.187 +++ share/mk/bsd.own.mk 18 Jan 2018 17:46:28 -0000 @@ -16,7 +16,7 @@ SKEY?= yes YP?= yes CLANG_ARCH=aarch64 amd64 arm i386 -GCC4_ARCH=alpha arm hppa mips64 mips64el powerpc sh sparc64 +GCC4_ARCH=alpha hppa mips64 mips64el powerpc sh sparc64 GCC3_ARCH=m88k # m88k: ? @@ -38,7 +38,7 @@ BUILD_GCC3?=yes BUILD_GCC3?=no .endif .if !empty(GCC4_ARCH:M${_arch}) || ${MACHINE_ARCH} == "amd64" || \ - ${MACHINE_ARCH} == "i386" + ${MACHINE_ARCH} == "arm" || ${MACHINE_ARCH} == "i386" BUILD_GCC4?=yes .else BUILD_GCC4?=no