aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin Hibbits <jhibbits@FreeBSD.org>2019-12-27 03:54:27 +0000
committerJustin Hibbits <jhibbits@FreeBSD.org>2019-12-27 03:54:27 +0000
commit678da4a274472392c240f53306e7d06644077c61 (patch)
tree1d982875b032f3b07e085ecfb0758a3066802213
parentff5ce8a7a57298dc4b5adea7bf2d06bae950b9c9 (diff)
downloadsrc-678da4a27447.tar.gz
src-678da4a27447.zip
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
Notes
Notes: svn path=/head/; revision=356111
-rw-r--r--share/man/man7/arch.78
-rw-r--r--share/mk/src.opts.mk7
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