aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorJohn Baldwin <jhb@FreeBSD.org>2019-10-14 21:22:42 +0000
committerJohn Baldwin <jhb@FreeBSD.org>2019-10-14 21:22:42 +0000
commitb411a285d9220c18faae12f7127294c45a43e0a5 (patch)
tree774a70c0f42a93385cf4e943b0ce0b05ad713d6f /Makefile
parent416a1d1e702553c0ff29c08b912d77b3d927184f (diff)
downloadsrc-b411a285d9220c18faae12f7127294c45a43e0a5.tar.gz
src-b411a285d9220c18faae12f7127294c45a43e0a5.zip
Disconnect powerpc from the default tinderbox for now.
The wrong toolchain was set in MAKE_PARAMS_powerpc, however, there are some other issues preventing powerpc from building in tinderbox: 1) There is no powerpc-gcc and powerpc-xtoolchain-gcc port that provides an external 32-bit powerpc GCC toolchain. 2) On other targets, the same toolchain can build all of the architectures for a given target. MIPS achieves this by always setting -mabi and -EB/-EL explicitly instead of relying on the compiler's default architecture. PowerPC might be able to do the same thing, but as of today, powerpc-gcc would be required for powerpc and powerpcspe and powerpc64-gcc would be required for powerpc64. Our existing logic for make universe does not permit per-MACHINE_ARCH toolchains. I tried hacking TARGETS_powerpc to only include powerpc64 when powerpc64-gcc was present, and while that skipped the 32-bit worlds, it tried to build all the kernels. Reported by: jeff Discussed with: imp
Notes
Notes: svn path=/head/; revision=353523
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile11
1 files changed, 7 insertions, 4 deletions
diff --git a/Makefile b/Makefile
index 03ff6a571a06..1d2cf4f67669 100644
--- a/Makefile
+++ b/Makefile
@@ -485,12 +485,15 @@ worlds: .PHONY
.if make(universe) || make(universe_kernels) || make(tinderbox) || \
make(targets) || make(universe-toolchain)
#
-# By default, build only the known-good clang-supporting platforms.
-# If MAKE_OBSOLETE_GCC is defined, built all the old GCC architectures.
+# Always build architectures supported by clang. Only build architectures
+# only supported by GCC if a suitable toolchain is present or enabled.
# In all cases, if the user specifies TARGETS on the command line,
# honor that most of all.
#
-_OBSOLETE_GCC_TARGETS=mips powerpc sparc64
+_OBSOLETE_GCC_TARGETS=mips sparc64
+.if defined(MAKE_OBSOLETE_GCC)
+_OBSOLETE_GCC_TARGETS+=powerpc
+.endif
TARGETS?=amd64 arm arm64 i386 riscv ${_OBSOLETE_GCC_TARGETS}
_UNIVERSE_TARGETS= ${TARGETS}
TARGET_ARCHES_arm?= arm armv6 armv7
@@ -507,7 +510,7 @@ MAKE_PARAMS_riscv?= CROSS_TOOLCHAIN=riscv64-gcc
.if !defined(MAKE_OBSOLETE_GCC)
OBSOLETE_GCC_TARGETS=${_OBSOLETE_GCC_TARGETS}
MAKE_PARAMS_mips?= CROSS_TOOLCHAIN=mips-gcc
-MAKE_PARAMS_powerpc?= CROSS_TOOLCHAIN=powerpc-gcc
+MAKE_PARAMS_powerpc?= CROSS_TOOLCHAIN=powerpc64-gcc
MAKE_PARAMS_sparc64?= CROSS_TOOLCHAIN=sparc64-gcc
.endif