On Wed, Mar 15, 2017 at 09:53:41PM +0100, Mark Kettenis wrote:
> It's currently a bit of a pain to install clang and ld.lld, but keep
> gcc and ld.bfd as the default compiler/linker. You can't rebuild
> clang with base gcc and you really want to rebuild it with clang
> instead of the ports gcc after boostrapping. And overwriting the
> default compiler/linker links is annoying. Especially on platforms
> where lld doesn't work yet. The diff below would make my life easier
> and hopefully get more people involved.
>
> This partly reverts the changes made by jsg@ in Brisbane, but I think
> we need this if we want clang/lld on more platforms than just arm64.
>
> ok?
>
>
> Index: gnu/usr.bin/clang/Makefile.inc
> ===================================================================
> RCS file: /cvs/src/gnu/usr.bin/clang/Makefile.inc,v
> retrieving revision 1.4
> diff -u -p -u -p -r1.4 Makefile.inc
> --- gnu/usr.bin/clang/Makefile.inc 16 Feb 2017 02:08:42 -0000 1.4
> +++ gnu/usr.bin/clang/Makefile.inc 15 Mar 2017 20:21:06 -0000
> @@ -6,6 +6,9 @@ BOOTSTRAP_CLANG?=no
> .if ${BOOTSTRAP_CLANG} == "yes"
> CC= egcc
> CXX= eg++
> +.else
> +CC= clang
> +CXX= clang++
> .endif
This entire block should be just
.if ${COMPILER_VERSION:L} == "gcc4"
CC= clang
CXX= clang++
.endif
A list of compilers that don't handle the latest c++ standard.
>
> DEBUG=
> Index: gnu/usr.bin/clang/clang/Makefile
> ===================================================================
> RCS file: /cvs/src/gnu/usr.bin/clang/clang/Makefile,v
> retrieving revision 1.6
> diff -u -p -u -p -r1.6 Makefile
> --- gnu/usr.bin/clang/clang/Makefile 24 Jan 2017 08:44:47 -0000 1.6
> +++ gnu/usr.bin/clang/clang/Makefile 15 Mar 2017 20:21:06 -0000
> @@ -13,15 +13,18 @@ LDADD+= -ltermlib
> DPADD+= ${LIBTERMLIB}
>
> LINKS= ${BINDIR}/clang ${BINDIR}/clang++ \
> - ${BINDIR}/clang ${BINDIR}/clang-cpp \
> - ${BINDIR}/clang ${BINDIR}/cc \
> + ${BINDIR}/clang ${BINDIR}/clang-cpp
> +MLINKS= clang.1 clang++.1 \
> + clang.1 clang-cpp.1
> +
> +.if ${COMPILER_VERSION:L} == "clang"
> +LINKS+= ${BINDIR}/clang ${BINDIR}/cc \
> ${BINDIR}/clang ${BINDIR}/c++ \
> ${BINDIR}/clang ${LIBEXECDIR}/cpp
> -MLINKS= clang.1 clang++.1 \
> - clang.1 clang-cpp.1 \
> - clang.1 cc.1 \
> +MLINKS+=clang.1 cc.1 \
> clang.1 c++.1 \
> clang.1 cpp.1
> +.endif
>
> CPPFLAGS+= -I${.CURDIR}/../../../llvm/tools/clang/include
>
> Index: gnu/usr.bin/clang/lld/Makefile
> ===================================================================
> RCS file: /cvs/src/gnu/usr.bin/clang/lld/Makefile,v
> retrieving revision 1.6
> diff -u -p -u -p -r1.6 Makefile
> --- gnu/usr.bin/clang/lld/Makefile 24 Jan 2017 08:44:47 -0000 1.6
> +++ gnu/usr.bin/clang/lld/Makefile 15 Mar 2017 20:21:07 -0000
> @@ -10,7 +10,9 @@ NOMAN=
> LDADD+= -ltermlib
> DPADD+= ${LIBTERMLIB}
>
> +.if ${COMPILER_VERSION:L} == "clang"
> LINKS= ${BINDIR}/ld.lld ${BINDIR}/ld
> +.endif
>
> CPPFLAGS+= ${CLANG_INCLUDES}
> CPPFLAGS+= -I${.CURDIR}/../../../llvm/tools/lld/include
>