From 60b9e2fac13ad381518acd253dd33a680dc7a0c8 Mon Sep 17 00:00:00 2001 From: John Baldwin Date: Tue, 1 Aug 2023 14:01:58 -0700 Subject: build.7: Document several toolchain make variables. Document CROSS_TOOLCHAIN, UNIVERSE_TOOLCHAIN, and USE_GCC_TOOLCHAINS. Differential Revision: https://reviews.freebsd.org/D40778 (cherry picked from commit 21ef3591b6119f6972896e6c00cbf9ffb759646e) --- share/man/man7/build.7 | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) (limited to 'share') diff --git a/share/man/man7/build.7 b/share/man/man7/build.7 index 0c352c9f3547..57280f967a38 100644 --- a/share/man/man7/build.7 +++ b/share/man/man7/build.7 @@ -509,7 +509,23 @@ Additionally, builds in are influenced by the following .Xr make 1 variables: -.Bl -tag -width ".Va SUBDIR_OVERRIDE" +.Bl -tag -width ".Va LOCAL_MODULES_DIR" +.It Va CROSS_TOOLCHAIN +Requests use of an external toolchain to build either the world or kernel. +This value of this variable can either be the full path to a file, +or the base name of a file in +.Pa ${LOCALBASE}/share/toolchains . +The file should be a make file which sets variables to request an external +toolchain such as +.Va XCC . +.Pp +External toolchains are available in ports for both LLVM and GCC/binutils. +For external toolchains available in ports, +.Va CROSS_TOOLCHAIN +should be set to the name of the package. +LLVM toolchain packages use the name llvm. +GCC toolchains provide separate packages for each architecture and use the +name ${MACHINE_ARCH}-gcc. .It Va KERNCONF Overrides which kernel to build and install for the various kernel make targets. @@ -705,7 +721,7 @@ using the .Fl D option of .Xr make 1 : -.Bl -tag -width ".Va -DNO_KERNELCONFIG" +.Bl -tag -width ".Va LOADER_DEFAULT_INTERP" .It Va LOADER_DEFAULT_INTERP Defines what interpreter the default loader program will have. Valid values include @@ -775,6 +791,10 @@ If set, the libraries phase will be skipped. If set, no object directories will be created. This should only be used if object directories were created in a previous build and no new directories are connected. +.It Va UNIVERSE_TOOLCHAIN +Requests use of the toolchain built as part of the +.Cm universe +target as an external toolchain. .It Va WORLDFAST If set, the build target .Cm buildworld @@ -804,7 +824,7 @@ Builds using the and related targets are influenced by the following .Xr make 1 variables: -.Bl -tag -width ".Va MAKE_JUST_KERNELS" +.Bl -tag -width ".Va USE_GCC_TOOLCHAINS" .It Va JFLAG Pass the value of this variable to each .Xr make 1 @@ -826,6 +846,10 @@ target for each supported architecture instead of the default action of building a world and one or more kernels. This variable implies .Va WITHOUT_KERNELS . +.It Va USE_GCC_TOOLCHAINS +Use external GCC toolchains to build the requested targets. +If the required toolchain package for a supported architecture is not installed, +the build for that architecture is skipped. .It Va TARGETS Only build the listed targets instead of each supported architecture. .It Va EXTRA_TARGETS -- cgit v1.2.3