summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichał Górny <mgorny@gentoo.org>2017-03-17 17:53:38 +0100
committerMichał Górny <mgorny@gentoo.org>2017-03-24 17:32:29 +0100
commitf1c4804b6007f512fb5de7cc1ec14696b7737e46 (patch)
tree4c3d9c3a8501e4d7afb6f9646559cb6874a2c3e0 /eclass/eutils.eclass
parentnet-misc/tigervnc-1.7.1-r2: ia64 stable, bug 612632 (diff)
downloadgentoo-f1c4804b6007f512fb5de7cc1ec14696b7737e46.tar.gz
gentoo-f1c4804b6007f512fb5de7cc1ec14696b7737e46.tar.bz2
gentoo-f1c4804b6007f512fb5de7cc1ec14696b7737e46.zip
epunt-cxx.eclass: Split C++ check punting code out of eutils
Split the epunt_cxx (plus internal code) to a dedicated eclass. This is rarely needed, usually indicates a dead upstream and requires the ELT-patches framework. The patches are going to be split to a separate package, and the new eclass will therefore need to DEPEND on it. We do not want the dependency to apply to all eutils users though.
Diffstat (limited to 'eclass/eutils.eclass')
-rw-r--r--eclass/eutils.eclass44
1 files changed, 2 insertions, 42 deletions
diff --git a/eclass/eutils.eclass b/eclass/eutils.eclass
index c932d685c0e9..ea2a76200f09 100644
--- a/eclass/eutils.eclass
+++ b/eclass/eutils.eclass
@@ -20,7 +20,8 @@ _EUTILS_ECLASS=1
# implicitly inherited (now split) eclasses
case ${EAPI:-0} in
0|1|2|3|4|5|6)
- inherit epatch estack ltprune multilib toolchain-funcs
+ # note: we want to remove epunt-cxx retroactively for #566424
+ inherit epatch epunt-cxx estack ltprune multilib toolchain-funcs
;;
esac
@@ -740,47 +741,6 @@ built_with_use() {
[[ ${opt} = "-a" ]]
}
-# If an overlay has eclass overrides, but doesn't actually override the
-# libtool.eclass, we'll have ECLASSDIR pointing to the active overlay's
-# eclass/ dir, but libtool.eclass is still in the main Gentoo tree. So
-# add a check to locate the ELT-patches/ regardless of what's going on.
-# Note: Duplicated in libtool.eclass.
-_EUTILS_ECLASSDIR_LOCAL=${BASH_SOURCE[0]%/*}
-eutils_elt_patch_dir() {
- local d="${ECLASSDIR}/ELT-patches"
- if [[ ! -d ${d} ]] ; then
- d="${_EUTILS_ECLASSDIR_LOCAL}/ELT-patches"
- fi
- echo "${d}"
-}
-
-# @FUNCTION: epunt_cxx
-# @USAGE: [dir to scan]
-# @DESCRIPTION:
-# Many configure scripts wrongly bail when a C++ compiler could not be
-# detected. If dir is not specified, then it defaults to ${S}.
-#
-# https://bugs.gentoo.org/73450
-epunt_cxx() {
- local dir=$1
- [[ -z ${dir} ]] && dir=${S}
- ebegin "Removing useless C++ checks"
- local f p any_found
- while IFS= read -r -d '' f; do
- for p in "$(eutils_elt_patch_dir)"/nocxx/*.patch ; do
- if patch --no-backup-if-mismatch -p1 "${f}" "${p}" >/dev/null ; then
- any_found=1
- break
- fi
- done
- done < <(find "${dir}" -name configure -print0)
-
- if [[ -z ${any_found} ]]; then
- eqawarn "epunt_cxx called unnecessarily (no C++ checks to punt)."
- fi
- eend 0
-}
-
# @FUNCTION: make_wrapper
# @USAGE: <wrapper> <target> [chdir] [libpaths] [installpath]
# @DESCRIPTION: