From 678da4a274472392c240f53306e7d06644077c61 Mon Sep 17 00:00:00 2001 From: Justin Hibbits Date: Fri, 27 Dec 2019 03:54:27 +0000 Subject: Use LLVM as default toolchain for all PowerPC targets This enables LLVM as the default compiler for powerpc, powerpc64, and powerpcspe, as well as LLD as the default linker for powerpc64. LLD is not yet ready for prime time for powerpc and powerpcspe, but work is continuing on it. Submitted by: alfredo.junior_eldorado.org.br Relnotes: YES Differential Revision: https://reviews.freebsd.org/D20378 --- share/man/man7/arch.7 | 8 ++++---- share/mk/src.opts.mk | 7 ++++--- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/share/man/man7/arch.7 b/share/man/man7/arch.7 index 4e9039520973..c7c7a004475a 100644 --- a/share/man/man7/arch.7 +++ b/share/man/man7/arch.7 @@ -323,9 +323,9 @@ This table shows the default tool chain for each architecture. .It mips64el Ta GCC 4.2.1 Ta GNU ld 2.17.50 .It mips64elhf Ta GCC 4.2.1 Ta GNU ld 2.17.50 .It mips64hf Ta GCC 4.2.1 Ta GNU ld 2.17.50 -.It powerpc Ta GCC 4.2.1 Ta GNU ld 2.17.50 -.It powerpcspe Ta GCC 4.2.1 Ta GNU ld 2.17.50 -.It powerpc64 Ta GCC 4.2.1 Ta GNU ld 2.17.50 +.It powerpc Ta Clang Ta GNU ld 2.17.50 +.It powerpcspe Ta Clang Ta GNU ld 2.17.50 +.It powerpc64 Ta Clang Ta lld .It riscv64 Ta GCC(1) Ta GNU ld(1) .It riscv64sf Ta GCC(1) Ta GNU ld(1) .It sparc64 Ta GCC 4.2.1 Ta GNU ld 2.17.50 @@ -339,7 +339,7 @@ Any CPU architectures not migrated by then may be removed from the tree after that date. Unless the make variable .Dv MAKE_OBSOLETE_GCC -is defined, make universe will not build mips, powerpc, nor sparc64 +is defined, make universe will not build mips or sparc64 architectures unless the xtoolchain binaries have been installed for the architecture. .Ss MACHINE_ARCH vs MACHINE_CPUARCH vs MACHINE diff --git a/share/mk/src.opts.mk b/share/mk/src.opts.mk index 950965a93e0c..18bc2a8afc55 100644 --- a/share/mk/src.opts.mk +++ b/share/mk/src.opts.mk @@ -305,7 +305,8 @@ __DEFAULT_NO_OPTIONS+=LLVM_TARGET_BPF # build Clang without using an external compiler. .if ${COMPILER_FEATURES:Mc++11} && (${__T} == "aarch64" || \ - ${__T} == "amd64" || ${__TT} == "arm" || ${__T} == "i386") + ${__T} == "amd64" || ${__TT} == "arm" || ${__T} == "i386" || \ + ${__TT} == "powerpc") # Clang is enabled, and will be installed as the default /usr/bin/cc. __DEFAULT_YES_OPTIONS+=CLANG CLANG_BOOTSTRAP CLANG_IS_CC LLD __DEFAULT_NO_OPTIONS+=GCC GCC_BOOTSTRAP GNUCXX GPL_DTC @@ -328,13 +329,13 @@ BROKEN_OPTIONS+=BINUTILS BINUTILS_BOOTSTRAP GCC GCC_BOOTSTRAP GDB BROKEN_OPTIONS+=OFED .endif .if ${__T} == "aarch64" || ${__T} == "amd64" || ${__T} == "i386" || \ - ${__T:Mriscv*} != "" || ${__TT} == "mips" + ${__TT} == "powerpc" || ${__T:Mriscv*} != "" || ${__TT} == "mips" __DEFAULT_YES_OPTIONS+=LLVM_LIBUNWIND .else __DEFAULT_NO_OPTIONS+=LLVM_LIBUNWIND .endif .if ${__T} == "aarch64" || ${__T} == "amd64" || ${__T} == "armv6" || \ - ${__T} == "armv7" || ${__T} == "i386" + ${__T} == "armv7" || ${__T} == "i386" || ${__T} == "powerpc64" __DEFAULT_YES_OPTIONS+=LLD_BOOTSTRAP LLD_IS_LD .else __DEFAULT_NO_OPTIONS+=LLD_BOOTSTRAP LLD_IS_LD -- cgit v1.2.3