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

Reply via email to