Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 14 Oct 2019 21:22:42 +0000 (UTC)
From:      John Baldwin <jhb@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r353523 - head
Message-ID:  <201910142122.x9ELMgNj006103@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jhb
Date: Mon Oct 14 21:22:42 2019
New Revision: 353523
URL: https://svnweb.freebsd.org/changeset/base/353523

Log:
  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

Modified:
  head/Makefile

Modified: head/Makefile
==============================================================================
--- head/Makefile	Mon Oct 14 21:18:37 2019	(r353522)
+++ head/Makefile	Mon Oct 14 21:22:42 2019	(r353523)
@@ -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
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201910142122.x9ELMgNj006103>