version 1.3, 2017/12/31 13:52:57
|
version 1.6, 2018/11/07 06:48:32
|
Line 1
|
Line 1
|
This page explains how to use clang with the NetBSD base system. |
This page explains how to use clang with the NetBSD base system. |
See also [how to use clang to build packages](../pkgsrc/clang/). |
See also [how to use clang to build packages](../pkgsrc/clang/). |
|
|
\todo: review this entire page. |
|
|
|
Since NetBSD 6, the base system has included clang, but it is not |
Since NetBSD 6, the base system has included clang, but it is not |
built or used by default. |
built or used by default. To use it, set in mk.conf |
|
|
\todo Explain if there are or aren't plans to enable it by default, or |
|
to switch, keeping in mind that compiler support varies by architecture. |
|
|
|
There are three steps that can be taken with clang; each depends on the previous. |
|
|
|
# Building clang |
|
|
|
To build clang as part of the build, set |
|
|
|
|
MKGCC=no |
MKLLVM=yes |
MKLLVM=yes |
|
HAVE_LLVM=yes |
|
CLANGBASE=/usr |
|
|
in mk.conf before running "build.sh release". |
And run "build.sh release". This will apply for both pkgsrc and base. |
|
|
This will build clang, which will appear in /usr/bin/clang and also |
|
build libraries that clang needs. NetBSD itself will not be built |
|
with clang, but you will be able to use clang to build programs. |
|
|
|
# Using clang to build the NetBSD base system |
This will work on ARM, PowerPC, x86, and possibly SPARC64. |
|
|
In addition, set |
# Explanation |
|
|
HAVE_LLVM=yes |
MKGCC=no needed as building GCC alongside is not maintained. |
|
MKLLVM=yes builds LLVM libraries. |
|
HAVE_LLVM=yes controls clang being built |
|
CLANGBASE=/usr instructs pkgsrc where to look for the compiler |
|
|
to cause clang to be used instead of gcc. |
# status |
|
|
# Not building gcc |
On NetBSD-current, clang builds successfully on several architectures. |
|
These builds are with all three of the above flags enabled. |
|
|
On a system that builds clang and uses it to build the base system, |
https://releng.netbsd.org/builds/HEAD-llvm/ |
you can refrain from building gcc, by additionally adding: |
|
|
|
MKGCC=no |
|