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 C6909138334 for ; Wed, 20 Jun 2018 17:51:36 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id DCF4FE0B04; Wed, 20 Jun 2018 17:49:32 +0000 (UTC) Received: from atfriesa01.ssi-schaefer.com (atfriesa01.ssi-schaefer.com [193.186.16.100]) (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 28C77E0AFE for ; Wed, 20 Jun 2018 17:49:31 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.51,248,1526335200"; d="scan'208";a="16090389" X-IPAS-Result: =?us-ascii?q?A2GGAgBDkypb/+shHKxbGwEBAQEDAQEBCQEBAYQrmioBAQE?= =?us-ascii?q?BAQaXbUYTEAuHWTgUAQIBAQEBAQECAgKBBQyCZARLLDABAQEBAQEBAQEBAQEBA?= =?us-ascii?q?QEaAg1kBnkQUVeDPgGBchyqFBGDPIRbg2hoBYlggQeDZoM2FwKCLYUJApkkCYV?= =?us-ascii?q?9iQgLiAaFO4odh0KBWIF0fQg7gmiFfIpUkFYBAQ?= Received: from samail03.wamas.com (HELO mailhost.salomon.at) ([172.28.33.235]) by atfriesa01.ssi-schaefer.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 20 Jun 2018 19:49:32 +0200 Received: from [172.28.42.244] (helo=fril0049.wamas.com) by mailhost.salomon.at with smtp (Exim 4.77) (envelope-from ) id 1fVhEZ-0004Fh-BM; Wed, 20 Jun 2018 19:49:31 +0200 Received: (nullmailer pid 22880 invoked by uid 249); Wed, 20 Jun 2018 17:49:31 -0000 From: Michael Haubenwallner To: gentoo-dev@lists.gentoo.org Cc: Michael Haubenwallner Subject: [gentoo-dev] [PATCH 5/5] toolchain.eclass: support gcc patches from cygwinports Date: Wed, 20 Jun 2018 19:49:05 +0200 Message-Id: <20180620174905.7733-6-haubi@gentoo.org> X-Mailer: git-send-email 2.16.1 In-Reply-To: <20180620174905.7733-1-haubi@gentoo.org> References: <20180620174905.7733-1-haubi@gentoo.org> Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-dev@lists.gentoo.org Reply-to: gentoo-dev@lists.gentoo.org X-Archives-Salt: c111a00d-725c-4045-a6eb-23705489a164 X-Archives-Hash: c0195004fd823ffeea665e88010ab56b Download and apply patches found in Cygwin's gcc.cygport, maintained at github/cygwinports/gcc, for a compiler running on cygwin. The ebuild can define the cygwinports' git commit id as CYGWINPORTS_GITREV. --- eclass/toolchain.eclass | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/eclass/toolchain.eclass b/eclass/toolchain.eclass index faf96d2a41f..a16bfadc301 100644 --- a/eclass/toolchain.eclass +++ b/eclass/toolchain.eclass @@ -309,6 +309,14 @@ gentoo_urls() { # ten Brugge's bounds-checking patches. If you want to use a patch # for an older gcc version with a new gcc, make sure you set # HTB_GCC_VER to that version of gcc. +# +# CYGWINPORTS_GITREV +# If set, this variable signals that we should apply additional patches +# maintained by upstream Cygwin developers at github/cygwinports/gcc, +# using the specified git commit id there. The list of patches to +# apply is extracted from gcc.cygport, maintained there as well. +# This is done for compilers running on Cygwin, not for cross compilers +# with a Cygwin target. get_gcc_src_uri() { export PATCH_GCC_VER=${PATCH_GCC_VER:-${GCC_RELEASE_VER}} export UCLIBC_GCC_VER=${UCLIBC_GCC_VER:-${PATCH_GCC_VER}} @@ -375,6 +383,10 @@ get_gcc_src_uri() { fi fi + # Cygwin patches from https://github.com/cygwinports/gcc + [[ -n ${CYGWINPORTS_GITREV} ]] && \ + GCC_SRC_URI+=" elibc_Cygwin? ( https://github.com/cygwinports/gcc/archive/${CYGWINPORTS_GITREV}.zip )" + echo "${GCC_SRC_URI}" } @@ -481,6 +493,8 @@ gcc_quick_unpack() { use_if_iuse boundschecking && unpack "bounds-checking-gcc-${HTB_GCC_VER}-${HTB_VER}.patch.bz2" + [[ -n ${CYGWINPORTS_GITREV} ]] && use elibc_Cygwin && unpack "${CYGWINPORTS_GITREV}.zip" + popd > /dev/null } @@ -505,6 +519,7 @@ toolchain_src_prepare() { fi do_gcc_HTB_patches do_gcc_PIE_patches + do_gcc_CYGWINPORTS_patches epatch_user if ( tc_version_is_at_least 4.8.2 || use_if_iuse hardened ) && ! use vanilla ; then @@ -645,6 +660,19 @@ do_gcc_PIE_patches() { BRANDING_GCC_PKGVERSION="${BRANDING_GCC_PKGVERSION}, pie-${PIE_VER}" } +do_gcc_CYGWINPORTS_patches() { + [[ -n ${CYGWINPORTS_GITREV} ]] || return 0 + use elibc_Cygwin || return 0 + + local p d="${WORKDIR}/gcc-${CYGWINPORTS_GITREV}" + for p in $( + eval "$(sed -ne '/PATCH_URI="/,/"/p' < "${d}"/gcc.cygport)" + echo ${PATCH_URI} + ); do + epatch "${d}/${p}" + done +} + # configure to build with the hardened GCC specs as the default make_gcc_hard() { -- 2.16.1