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 E9811138334 for ; Tue, 18 Sep 2018 06:39:16 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id BD081E0E1A; Tue, 18 Sep 2018 06:39:12 +0000 (UTC) Received: from smtp.gentoo.org (dev.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (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 51AE7E0E04 for ; Tue, 18 Sep 2018 06:39:12 +0000 (UTC) Received: from localhost (unknown [IPv6:2404:e800:e600:402:a043:dee9:8fe1:5766]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: perfinion) by smtp.gentoo.org (Postfix) with ESMTPSA id 79B9C335C63; Tue, 18 Sep 2018 06:39:10 +0000 (UTC) From: Jason Zaman To: gentoo-dev@lists.gentoo.org Cc: Jason Zaman Subject: [gentoo-dev] [PATCH 2/3] cuda.eclass: update to EAPI7, remove 0-4 Date: Tue, 18 Sep 2018 14:38:16 +0800 Message-Id: <20180918063817.19338-2-perfinion@gentoo.org> X-Mailer: git-send-email 2.16.4 In-Reply-To: <20180918063817.19338-1-perfinion@gentoo.org> References: <20180918063817.19338-1-perfinion@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: afb1c42a-c1d7-4e2e-a646-7911824e4dd0 X-Archives-Hash: 11a71f7a3f59dc1765ef74c2b1f013eb cuda.eclass is only used from EAPI5,6 currently so remove support for older EAPIs. Updating to EAPI7 means removing versionator. It was only used to sort the cuda versions. Instead first try the current GCC version, if that fails try best_version, if that still fails just pick the last in the list that works. They are already sorted and hopefully stay that way so version_sort is not required. Signed-off-by: Jason Zaman --- eclass/cuda.eclass | 81 +++++++++++++++++++++++++++++++----------------------- 1 file changed, 47 insertions(+), 34 deletions(-) diff --git a/eclass/cuda.eclass b/eclass/cuda.eclass index 688251f3a30..3a6fc3a31d1 100644 --- a/eclass/cuda.eclass +++ b/eclass/cuda.eclass @@ -1,12 +1,21 @@ # Copyright 1999-2016 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -inherit flag-o-matic toolchain-funcs versionator +case "${EAPI:-0}" in + 0|1|2|3|4) + die "Unsupported EAPI=${EAPI:-0} (too old) for ${ECLASS}" + ;; + 5|6|7) + ;; + *) + die "Unsupported EAPI=${EAPI} (unknown) for ${ECLASS}" + ;; +esac # @ECLASS: cuda.eclass # @MAINTAINER: # Justin Lecher -# @SUPPORTED_EAPIS: 0 1 2 3 4 5 6 +# @SUPPORTED_EAPIS: 5 6 7 # @BLURB: Common functions for cuda packages # @DESCRIPTION: # This eclass contains functions to be used with cuda package. Currently it is @@ -18,6 +27,9 @@ inherit flag-o-matic toolchain-funcs versionator if [[ -z ${_CUDA_ECLASS} ]]; then +inherit flag-o-matic toolchain-funcs +[[ ${EAPI} == [56] ]] && inherit eapi7-ver + # @ECLASS-VARIABLE: NVCCFLAGS # @DESCRIPTION: # nvcc compiler flags (see nvcc --help), which should be used like @@ -44,15 +56,15 @@ if [[ -z ${_CUDA_ECLASS} ]]; then cuda_gccdir() { debug-print-function ${FUNCNAME} "$@" - local gcc_bindir ver args="" flag ret + local dirs gcc_bindir ver vers="" flag # Currently we only support the gnu compiler suite - if ! tc-is-gcc ; then + if ! tc-is-gcc ; then ewarn "Currently we only support the gnu compiler suite" return 2 fi - while [ "$1" ]; do + while [[ "$1" ]]; do case $1 in -f) flag="--compiler-bindir " @@ -63,34 +75,50 @@ cuda_gccdir() { shift done - if ! args=$(cuda-config -s); then + if ! vers="$(cuda-config -s)"; then eerror "Could not execute cuda-config" eerror "Make sure >=dev-util/nvidia-cuda-toolkit-4.2.9-r1 is installed" die "cuda-config not found" - else - args=$(version_sort ${args}) - if [[ -z ${args} ]]; then - die "Could not determine supported gcc versions from cuda-config" + fi + if [[ -z ${vers} ]]; then + die "Could not determine supported gcc versions from cuda-config" + fi + + # Try the current gcc version first + ver=$(gcc-version) + if [[ -n "${ver}" ]] && [[ ${vers} =~ ${ver} ]]; then + dirs=( ${EPREFIX}/usr/*pc-linux-gnu/gcc-bin/${ver}*/ ) + gcc_bindir="${dirs[${#dirs[@]}-1]}" + fi + + if [[ -z ${gcc_bindir} ]]; then + ver=$(best_version "sys-devel/gcc") + ver=$(ver_cut 1-2 "${ver##*sys-devel/gcc-}") + + if [[ -n "${ver}" ]] && [[ ${vers} =~ ${ver} ]]; then + dirs=( ${EPREFIX}/usr/*pc-linux-gnu/gcc-bin/${ver}*/ ) + gcc_bindir="${dirs[${#dirs[@]}-1]}" fi fi - for ver in ${args}; do - has_version "=sys-devel/gcc-${ver}*" && \ - gcc_bindir="$(ls -d ${EPREFIX}/usr/*pc-linux-gnu/gcc-bin/${ver}* | tail -n 1)" + for ver in ${vers}; do + if has_version "=sys-devel/gcc-${ver}*"; then + dirs=( ${EPREFIX}/usr/*pc-linux-gnu/gcc-bin/${ver}*/ ) + gcc_bindir="${dirs[${#dirs[@]}-1]}" + fi done if [[ -n ${gcc_bindir} ]]; then if [[ -n ${flag} ]]; then - ret="${flag}\"${gcc_bindir}\"" + echo "${flag}\"${gcc_bindir%/}\"" else - ret="${gcc_bindir}" + echo "${gcc_bindir%/}" fi - echo ${ret} return 0 else - eerror "Only gcc version(s) ${args} are supported," + eerror "Only gcc version(s) ${vers} are supported," eerror "of which none is installed" - die "Only gcc version(s) ${args} are supported" + die "Only gcc version(s) ${vers} are supported" return 1 fi } @@ -116,15 +144,6 @@ cuda_sanitize() { export NVCCFLAGS } -# @FUNCTION: cuda_pkg_setup -# @DESCRIPTION: -# Call cuda_src_prepare for EAPIs not supporting src_prepare -cuda_pkg_setup() { - debug-print-function ${FUNCNAME} "$@" - - cuda_src_prepare -} - # @FUNCTION: cuda_src_prepare # @DESCRIPTION: # Sanitise and export NVCCFLAGS by default @@ -134,13 +153,7 @@ cuda_src_prepare() { cuda_sanitize } -case "${EAPI:-0}" in - 0|1) - EXPORT_FUNCTIONS pkg_setup ;; - 2|3|4|5|6) - EXPORT_FUNCTIONS src_prepare ;; - *) die "EAPI=${EAPI} is not supported" ;; -esac +EXPORT_FUNCTIONS src_prepare _CUDA_ECLASS=1 fi -- 2.16.4