Skip to content

Commit

Permalink
universe: Permit requesting a specific version of GCC
Browse files Browse the repository at this point in the history
If USE_GCC_TOOLCHAINS is set to a value matching the pattern 'gcc*',
use that as the GCC version.  For example, USE_GCC_TOOLCHAINS=gcc16
would use amd64-gcc16 for amd64, etc.  If the variable is set to a
value that doesn't match that pattern, use the default version.

Reviewed by:	imp, emaste
Differential Revision:	https://reviews.freebsd.org/D48418
  • Loading branch information
bsdjhb committed Jan 11, 2025
1 parent b2b974f commit 550137e
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 8 deletions.
16 changes: 9 additions & 7 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -531,13 +531,15 @@ TARGET_ARCHES_${target}= ${MACHINE_ARCH_LIST_${target}}
.endfor

.if defined(USE_GCC_TOOLCHAINS)
TOOLCHAINS_amd64= amd64-gcc12
TOOLCHAINS_arm= armv7-gcc12
TOOLCHAINS_arm64= aarch64-gcc12
TOOLCHAINS_i386= i386-gcc12
TOOLCHAINS_powerpc= powerpc-gcc12 powerpc64-gcc12
TOOLCHAIN_powerpc64= powerpc64-gcc12
TOOLCHAINS_riscv= riscv64-gcc12
_DEFAULT_GCC_VERSION= gcc12
_GCC_VERSION= ${"${USE_GCC_TOOLCHAINS:Mgcc*}" != "":?${USE_GCC_TOOLCHAINS}:${_DEFAULT_GCC_VERSION}}
TOOLCHAINS_amd64= amd64-${_GCC_VERSION}
TOOLCHAINS_arm= armv7-${_GCC_VERSION}
TOOLCHAINS_arm64= aarch64-${_GCC_VERSION}
TOOLCHAINS_i386= i386-${_GCC_VERSION}
TOOLCHAINS_powerpc= powerpc-${_GCC_VERSION} powerpc64-${_GCC_VERSION}
TOOLCHAIN_powerpc64= powerpc64-${_GCC_VERSION}
TOOLCHAINS_riscv= riscv64-${_GCC_VERSION}
.endif

# If a target is using an external toolchain, set MAKE_PARAMS to enable use
Expand Down
7 changes: 6 additions & 1 deletion share/man/man7/build.7
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.Dd November 13, 2024
.Dd January 10, 2025
.Dt BUILD 7
.Os
.Sh NAME
Expand Down Expand Up @@ -879,6 +879,11 @@ This variable implies
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.
.Pp
A specific version of GCC can be used by setting the value of this variable
to the desired version
.Pq for example, Dq gcc14 ;
otherwise a default version of GCC is used.
.It Va TARGETS
Only build the listed targets instead of each supported architecture.
.It Va EXTRA_TARGETS
Expand Down

0 comments on commit 550137e

Please sign in to comment.