From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 51954138335 for ; Mon, 25 Jun 2018 08:34:38 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 4A729E097D; Mon, 25 Jun 2018 08:34:37 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 21B76E097D for ; Mon, 25 Jun 2018 08:34:37 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id D9E8D335C8C for ; Mon, 25 Jun 2018 08:34:35 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id C518D2E5 for ; Mon, 25 Jun 2018 08:34:33 +0000 (UTC) From: "Fabian Groffen" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Fabian Groffen" Message-ID: <1529915549.ab0b90331a2a4810eedb5cec4f50d7777ac9d848.grobian@gentoo> Subject: [gentoo-commits] proj/portage:prefix commit in: bin/, pym/portage/ X-VCS-Repository: proj/portage X-VCS-Files: bin/phase-helpers.sh pym/portage/const.py X-VCS-Directories: pym/portage/ bin/ X-VCS-Committer: grobian X-VCS-Committer-Name: Fabian Groffen X-VCS-Revision: ab0b90331a2a4810eedb5cec4f50d7777ac9d848 X-VCS-Branch: prefix Date: Mon, 25 Jun 2018 08:34:33 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: 289bda2f-e121-4d98-a872-c7f7724adb7c X-Archives-Hash: fef40b9f57e3fe6d1c95a6cb3202fa54 commit: ab0b90331a2a4810eedb5cec4f50d7777ac9d848 Author: Michael Haubenwallner gentoo org> AuthorDate: Tue Jun 19 14:39:12 2018 +0000 Commit: Fabian Groffen gentoo org> CommitDate: Mon Jun 25 08:32:29 2018 +0000 URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=ab0b9033 introduce the 'stacked-prefix' FEATURE When we merge into another EPREFIX, but not into some ROOT, and CHOST is equal to CBUILD, build tools found in EPREFIX perfectly work for the current build environment. In a "stacked prefix" we explicitly utilize this situation. This is useful during prefix bootstrap (#655414, #655326), but also to build packages for targets unable to support the full portage toolchain (native Windows, MinGW), but otherwise do not require a full cross compilation setup. Signed-off-by: Fabian Groffen gentoo.org> bin/phase-helpers.sh | 14 ++++++++++++++ pym/portage/const.py | 1 + 2 files changed, 15 insertions(+) diff --git a/bin/phase-helpers.sh b/bin/phase-helpers.sh index 75d92b407..c5a818db7 100644 --- a/bin/phase-helpers.sh +++ b/bin/phase-helpers.sh @@ -927,6 +927,20 @@ ___best_version_and_has_version_common() { fi ;; esac + if ___eapi_has_prefix_variables && + has "${root_arg}" '--host-root' '-b' && + has stacked-prefix ${FEATURES} && + [[ -z ${ROOT%/} ]] && + [[ ${CBUILD} == ${CHOST} ]] && + [[ ${EPREFIX} != ${BROOT-${PORTAGE_OVERRIDE_EPREFIX}} ]] && + :; then + # When we merge into another EPREFIX, but not into some ROOT, + # and CHOST is equal to CBUILD, build tools found in EPREFIX + # perfectly work for the current build environment. + # In a "stacked prefix" we explicitly utilize this situation. + "${FUNCNAME[1]}" "${atom}" && return 0 + fi + if [[ -n $PORTAGE_IPC_DAEMON ]] ; then cmd+=("${PORTAGE_BIN_PATH}"/ebuild-ipc "${FUNCNAME[1]}" "${root}" "${atom}") else diff --git a/pym/portage/const.py b/pym/portage/const.py index 3c23c85ed..342b09174 100644 --- a/pym/portage/const.py +++ b/pym/portage/const.py @@ -202,6 +202,7 @@ SUPPORTED_FEATURES = frozenset([ "splitdebug", "split-elog", "split-log", + "stacked-prefix", "strict", "strict-keepdir", "stricter",