summaryrefslogtreecommitdiff
path: root/eclass
diff options
context:
space:
mode:
Diffstat (limited to 'eclass')
-rw-r--r--eclass/Manifest.gzbin37637 -> 37640 bytes
-rw-r--r--eclass/apache-2.eclass15
-rw-r--r--eclass/cargo.eclass2
-rw-r--r--eclass/check-reqs.eclass4
-rw-r--r--eclass/cuda.eclass113
-rw-r--r--eclass/meson.eclass12
-rw-r--r--eclass/mozconfig-v6.60.eclass98
-rw-r--r--eclass/mozcoreconf-v6.eclass6
-rw-r--r--eclass/multilib.eclass3
-rw-r--r--eclass/perl-module.eclass4
-rw-r--r--eclass/toolchain-funcs.eclass7
-rw-r--r--eclass/udev.eclass14
12 files changed, 175 insertions, 103 deletions
diff --git a/eclass/Manifest.gz b/eclass/Manifest.gz
index f96e3bf0f332..707fa5c59dac 100644
--- a/eclass/Manifest.gz
+++ b/eclass/Manifest.gz
Binary files differ
diff --git a/eclass/apache-2.eclass b/eclass/apache-2.eclass
index 3195d03a395e..26f3d2d28913 100644
--- a/eclass/apache-2.eclass
+++ b/eclass/apache-2.eclass
@@ -10,7 +10,7 @@
# This eclass handles apache-2.x ebuild functions such as LoadModule generation
# and inter-module dependency checking.
-inherit autotools eutils flag-o-matic multilib ssl-cert user toolchain-funcs eapi7-ver
+inherit autotools flag-o-matic multilib ssl-cert user toolchain-funcs eapi7-ver
[[ ${CATEGORY}/${PN} != www-servers/apache ]] \
&& die "Do not use this eclass with anything else than www-servers/apache ebuilds!"
@@ -293,7 +293,7 @@ setup_modules() {
if ver_test ${PV} -ge 2.4.34 ; then
MY_CONF+=( $(use_with !suexec-syslog suexec-logfile "${SUEXEC_LOGFILE:-${EPREFIX}/var/log/apache2/suexec_log}") )
MY_CONF+=( $(use_with suexec-syslog) )
- MY_CONF+=( $(use_with suexec-caps suexec-capabilities) )
+ MY_CONF+=( $(usex suexec-syslog $(usex suexec-caps --enable-suexec-capabilities '') '') )
else
MY_CONF+=( --with-suexec-logfile="${SUEXEC_LOGFILE:-${EPREFIX}/var/log/apache2/suexec_log}" )
fi
@@ -627,10 +627,13 @@ apache-2_src_install() {
# set some sane permissions for suexec
if use suexec ; then
- fowners 0:${SUEXEC_CALLER:-apache} /usr/sbin/suexec
- fperms 4710 /usr/sbin/suexec
- # provide legacy symlink for suexec, bug 177697
- dosym /usr/sbin/suexec /usr/sbin/suexec2
+ local needs_adjustment="$(ver_test ${PV} -ge 2.4.34 && { { ! use suexec-syslog || ! use suexec-caps ; } && echo true || echo false ; } || echo true)"
+ if ${needs_adjustment} ; then
+ fowners 0:${SUEXEC_CALLER:-apache} /usr/sbin/suexec
+ fperms 4710 /usr/sbin/suexec
+ # provide legacy symlink for suexec, bug 177697
+ dosym /usr/sbin/suexec /usr/sbin/suexec2
+ fi
fi
# empty dirs
diff --git a/eclass/cargo.eclass b/eclass/cargo.eclass
index a15dfa9f30ce..bb27aa315ee2 100644
--- a/eclass/cargo.eclass
+++ b/eclass/cargo.eclass
@@ -39,7 +39,7 @@ cargo_crate_uris() {
local name version url pretag
name="${crate%-*}"
version="${crate##*-}"
- pretag="[a-zA-Z]+"
+ pretag="^[a-zA-Z]+"
if [[ $version =~ $pretag ]]; then
version="${name##*-}-${version}"
name="${name%-*}"
diff --git a/eclass/check-reqs.eclass b/eclass/check-reqs.eclass
index d1ed395c8b13..689944c87700 100644
--- a/eclass/check-reqs.eclass
+++ b/eclass/check-reqs.eclass
@@ -7,7 +7,7 @@
# @AUTHOR:
# Bo Ørsted Andresen <zlin@gentoo.org>
# Original Author: Ciaran McCreesh <ciaranm@gentoo.org>
-# @SUPPORTED_EAPIS: 0 1 2 3 4 5 6
+# @SUPPORTED_EAPIS: 0 1 2 3 4 5 6 7
# @BLURB: Provides a uniform way of handling ebuild which have very high build requirements
# @DESCRIPTION:
# This eclass provides a uniform way of handling ebuilds which have very high
@@ -63,7 +63,7 @@ if [[ ! ${_CHECK_REQS_ECLASS_} ]]; then
EXPORT_FUNCTIONS pkg_setup
case "${EAPI:-0}" in
0|1|2|3) ;;
- 4|5|6) EXPORT_FUNCTIONS pkg_pretend ;;
+ 4|5|6|7) EXPORT_FUNCTIONS pkg_pretend ;;
*) die "EAPI=${EAPI} is not supported" ;;
esac
diff --git a/eclass/cuda.eclass b/eclass/cuda.eclass
index 688251f3a306..f1c09ca2e453 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 <jlec@gentoo.org>
-# @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,13 +144,46 @@ cuda_sanitize() {
export NVCCFLAGS
}
-# @FUNCTION: cuda_pkg_setup
+# @FUNCTION: cuda_add_sandbox
+# @USAGE: [-w]
+# @DESCRIPTION:
+# Add nvidia dev nodes to the sandbox predict list.
+# with -w, add to the sandbox write list.
+cuda_add_sandbox() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ local i
+ for i in /dev/nvidia*; do
+ if [[ $1 == '-w' ]]; then
+ addwrite $i
+ else
+ addpredict $i
+ fi
+ done
+}
+
+# @FUNCTION: cuda_toolkit_version
# @DESCRIPTION:
-# Call cuda_src_prepare for EAPIs not supporting src_prepare
-cuda_pkg_setup() {
+# echo the installed version of dev-util/nvidia-cuda-toolkit
+cuda_toolkit_version() {
debug-print-function ${FUNCNAME} "$@"
- cuda_src_prepare
+ local v
+ v="$(best_version dev-util/nvidia-cuda-toolkit)"
+ v="${v##*cuda-toolkit-}"
+ ver_cut 1-2 "${v}"
+}
+
+# @FUNCTION: cuda_cudnn_version
+# @DESCRIPTION:
+# echo the installed version of dev-libs/cudnn
+cuda_cudnn_version() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ local v
+ v="$(best_version dev-libs/cudnn)"
+ v="${v##*cudnn-}"
+ ver_cut 1-2 "${v}"
}
# @FUNCTION: cuda_src_prepare
@@ -134,13 +195,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
diff --git a/eclass/meson.eclass b/eclass/meson.eclass
index ebc2c02ca8ec..3d8865363307 100644
--- a/eclass/meson.eclass
+++ b/eclass/meson.eclass
@@ -1,11 +1,11 @@
-# Copyright 2017 Gentoo Foundation
+# Copyright 2017-2018 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# @ECLASS: meson.eclass
# @MAINTAINER:
# William Hubbs <williamh@gentoo.org>
# Mike Gilbert <floppym@gentoo.org>
-# @SUPPORTED_EAPIS: 6
+# @SUPPORTED_EAPIS: 6 7
# @BLURB: common ebuild functions for meson-based packages
# @DESCRIPTION:
# This eclass contains the default phase functions for packages which
@@ -35,7 +35,7 @@
# @CODE
case ${EAPI:-0} in
- 6) ;;
+ 6|7) ;;
*) die "EAPI=${EAPI} is not supported" ;;
esac
@@ -70,7 +70,11 @@ MESON_DEPEND=">=dev-util/meson-0.45.1
# their own DEPEND string.
: ${MESON_AUTO_DEPEND:=yes}
if [[ ${MESON_AUTO_DEPEND} != "no" ]] ; then
- DEPEND=${MESON_DEPEND}
+ if [[ ${EAPI:-0} == [0123456] ]]; then
+ DEPEND=${MESON_DEPEND}
+ else
+ BDEPEND=${MESON_DEPEND}
+ fi
fi
__MESON_AUTO_DEPEND=${MESON_AUTO_DEPEND} # See top of eclass
diff --git a/eclass/mozconfig-v6.60.eclass b/eclass/mozconfig-v6.60.eclass
index cadc3dba81c1..b86fa2a0dc62 100644
--- a/eclass/mozconfig-v6.60.eclass
+++ b/eclass/mozconfig-v6.60.eclass
@@ -1,7 +1,7 @@
# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
#
-# @ECLASS: mozconfig-v6.58.eclass
+# @ECLASS: mozconfig-v6.60.eclass
# @MAINTAINER:
# mozilla team <mozilla@gentoo.org>
# @SUPPORTED_EAPIS: 5 6 7
@@ -74,18 +74,8 @@ inherit flag-o-matic toolchain-funcs mozcoreconf-v6
# Set the variable to "enabled" if the use flag should be enabled by default.
# Set the variable to any value if the use flag should exist but not be default-enabled.
-# @ECLASS-VARIABLE: MOZCONFIG_OPTIONAL_QT5
-# @DESCRIPTION:
-# Set this variable before the inherit line, when an ebuild can provide
-# optional qt5 support via IUSE="qt5". Currently this would include
-# ebuilds for firefox, but thunderbird and seamonkey could follow in the future.
-#
-# Leave the variable UNSET if qt5 support should not be available.
-# Set the variable to "enabled" if the use flag should be enabled by default.
-# Set the variable to any value if the use flag should exist but not be default-enabled.
-
# use-flags common among all mozilla ebuilds
-IUSE="${IUSE} dbus debug neon pulseaudio selinux startup-notification system-harfbuzz
+IUSE="${IUSE} clang dbus debug neon pulseaudio selinux startup-notification system-harfbuzz
system-icu system-jpeg system-libevent system-sqlite system-libvpx"
# some notes on deps:
@@ -123,7 +113,7 @@ RDEPEND=">=app-text/hunspell-1.5.4:=
system-icu? ( >=dev-libs/icu-59.1:= )
system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 )
system-libevent? ( >=dev-libs/libevent-2.0:0= )
- system-sqlite? ( >=dev-db/sqlite-3.20.1:3[secure-delete,debug=] )
+ system-sqlite? ( >=dev-db/sqlite-3.23.1:3[secure-delete,debug=] )
system-libvpx? ( >=media-libs/libvpx-1.5.0:0=[postproc] )
system-harfbuzz? ( >=media-libs/harfbuzz-1.4.2:0= >=media-gfx/graphite2-1.3.9-r1 )
"
@@ -163,17 +153,21 @@ fi
DEPEND="app-arch/zip
app-arch/unzip
- >=sys-devel/binutils-2.16.1
+ >=sys-devel/binutils-2.30
sys-apps/findutils
+ clang? (
+ >=sys-devel/llvm-4.0.1[gold]
+ >=sys-devel/lld-4.0.1
+ )
pulseaudio? ( media-sound/pulseaudio )
- elibc_glibc? ( || (
- ( >=dev-lang/rust-1.24.0[-extended(-)] >=dev-util/cargo-0.25.0 )
- >=dev-lang/rust-1.24.0[extended]
- ( >=dev-lang/rust-bin-1.24.0 >=dev-util/cargo-0.25.0 )
- ) )
- elibc_musl? ( || ( >=dev-lang/rust-1.24.0
- >=dev-util/cargo-0.25.0
- ) )
+ elibc_glibc? (
+ virtual/cargo
+ virtual/rust
+ )
+ elibc_musl? (
+ virtual/cargo
+ virtual/rust
+ )
${RDEPEND}"
RDEPEND+="
@@ -199,6 +193,20 @@ RDEPEND+="
# }
mozconfig_config() {
+ if use clang && ! tc-is-clang ; then
+ # Force clang
+ einfo "Enforcing the use of clang due to USE=clang ..."
+ CC=${CHOST}-clang
+ CXX=${CHOST}-clang++
+ strip-unsupported-flags
+ elif ! use clang && ! tc-is-gcc ; then
+ # Force gcc
+ einfo "Enforcing the use of gcc due to USE=-clang ..."
+ CC=${CHOST}-gcc
+ CXX=${CHOST}-gcc++
+ strip-unsupported-flags
+ fi
+
# Migrated from mozcoreconf-2
mozconfig_annotate 'system_libs' \
--with-system-zlib \
@@ -207,14 +215,20 @@ mozconfig_config() {
# Stylo is only broken on x86 builds
use x86 && mozconfig_annotate 'Upstream bug 1341234' --disable-stylo
+ # Stylo is horribly broken on arm, renders GUI unusable
+ use arm && mozconfig_annotate 'breaks UI on arm' --disable-stylo
+
# Must pass release in order to properly select linker
mozconfig_annotate 'Enable by Gentoo' --enable-release
- # Must pass --enable-gold if using ld.gold
- if tc-ld-is-gold ; then
- mozconfig_annotate 'tc-ld-is-gold=true' --enable-gold
+ # Avoid auto-magic on linker
+ if use clang ; then
+ # This is upstream's default
+ mozconfig_annotate "forcing ld=lld due to USE=clang" --enable-linker=lld
+ elif tc-ld-is-gold ; then
+ mozconfig_annotate "linker is set to gold" --enable-linker=gold
else
- mozconfig_annotate 'tc-ld-is-gold=false' --disable-gold
+ mozconfig_annotate "linker is set to bfd" --enable-linker=bfd
fi
if has bindist ${IUSE}; then
@@ -295,21 +309,6 @@ mozconfig_config() {
toolkit_comment="gtk2 use flag"
fi
fi
- if [[ -n ${MOZCONFIG_OPTIONAL_QT5} ]]; then
- if use qt5; then
- toolkit="cairo-qt"
- toolkit_comment="qt5 use flag"
- # need to specify these vars because the qt5 versions are not found otherwise,
- # and setting --with-qtdir overrides the pkg-config include dirs
- local i
- for i in qmake moc rcc; do
- echo "export HOST_${i^^}=\"$(qt5_get_bindir)/${i}\"" \
- >> "${S}"/.mozconfig || die
- done
- echo 'unset QTDIR' >> "${S}"/.mozconfig || die
- mozconfig_annotate '+qt5' --disable-gio
- fi
- fi
mozconfig_annotate "${toolkit_comment}" --enable-default-toolkit=${toolkit}
# Instead of the standard --build= and --host=, mozilla uses --host instead
@@ -325,9 +324,6 @@ mozconfig_config() {
mozconfig_annotate '-pulseaudio' --enable-alsa
fi
- # For testing purpose only
- mozconfig_annotate 'Sandbox' --enable-content-sandbox
-
mozconfig_use_enable system-sqlite
mozconfig_use_with system-jpeg
mozconfig_use_with system-icu
@@ -335,13 +331,21 @@ mozconfig_config() {
mozconfig_use_with system-harfbuzz
mozconfig_use_with system-harfbuzz system-graphite2
+ if use arm ; then
+ mozconfig_annotate 'elf-hack is broken on arm' --disable-elf-hack
+ fi
+
# Modifications to better support ARM, bug 553364
if use neon ; then
mozconfig_annotate '' --with-fpu=neon
- mozconfig_annotate '' --with-thumb=yes
- mozconfig_annotate '' --with-thumb-interwork=no
+
+ if ! tc-is-clang ; then
+ # thumb options aren't supported when using clang, bug 666966
+ mozconfig_annotate '' --with-thumb=yes
+ mozconfig_annotate '' --with-thumb-interwork=no
+ fi
fi
- if [[ ${CHOST} == armv* ]] ; then
+ if [[ ${CHOST} == armv*h* ]] ; then
mozconfig_annotate '' --with-float-abi=hard
if ! use system-libvpx ; then
sed -i -e "s|softfp|hard|" \
diff --git a/eclass/mozcoreconf-v6.eclass b/eclass/mozcoreconf-v6.eclass
index 930122fc886f..571f195b8e46 100644
--- a/eclass/mozcoreconf-v6.eclass
+++ b/eclass/mozcoreconf-v6.eclass
@@ -16,12 +16,6 @@
if [[ ! ${_MOZCORECONF} ]]; then
-# for compatibility with packages prior to v1
-if [[ -z ${PYTHON_COMPAT[@]} ]]; then
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE='ncurses,sqlite,ssl,threads'
-fi
-
inherit multilib toolchain-funcs flag-o-matic python-any-r1 versionator
IUSE="${IUSE} custom-cflags custom-optimization"
diff --git a/eclass/multilib.eclass b/eclass/multilib.eclass
index 350b6f949d12..393f0db073c3 100644
--- a/eclass/multilib.eclass
+++ b/eclass/multilib.eclass
@@ -351,9 +351,10 @@ multilib_env() {
;;
esac
;;
- mips64*)
+ mips64*|mipsisa64*)
export CFLAGS_o32=${CFLAGS_o32--mabi=32}
export CHOST_o32=${CTARGET/mips64/mips}
+ export CHOST_o32=${CHOST_o32/mipsisa64/mipsisa32}
export CTARGET_o32=${CHOST_o32}
export LIBDIR_o32="lib"
diff --git a/eclass/perl-module.eclass b/eclass/perl-module.eclass
index 2a3932b538b8..a6f56fe9e1b0 100644
--- a/eclass/perl-module.eclass
+++ b/eclass/perl-module.eclass
@@ -162,7 +162,7 @@ if [[ ${EAPI:-0} == 5 ]]; then
[[ -z "${SRC_URI}" && -n "${MODULE_AUTHOR}" ]] && \
SRC_URI="mirror://cpan/authors/id/${MODULE_AUTHOR:0:1}/${MODULE_AUTHOR:0:2}/${MODULE_AUTHOR}/${MODULE_SECTION:+${MODULE_SECTION}/}${MODULE_A}"
[[ -z "${HOMEPAGE}" ]] && \
- HOMEPAGE="http://search.cpan.org/dist/${MODULE_NAME}/"
+ HOMEPAGE="https://metacpan.org/release/${MODULE_NAME}"
SRC_TEST="skip"
else
@@ -175,7 +175,7 @@ else
[[ -z "${SRC_URI}" && -n "${DIST_AUTHOR}" ]] && \
SRC_URI="mirror://cpan/authors/id/${DIST_AUTHOR:0:1}/${DIST_AUTHOR:0:2}/${DIST_AUTHOR}/${DIST_SECTION:+${DIST_SECTION}/}${DIST_A}"
[[ -z "${HOMEPAGE}" ]] && \
- HOMEPAGE="http://search.cpan.org/dist/${DIST_NAME}/"
+ HOMEPAGE="http://metacpan.org/release/${DIST_NAME}"
[[ -z "${DIST_EXAMPLES}" ]] || IUSE+=" examples"
fi
diff --git a/eclass/toolchain-funcs.eclass b/eclass/toolchain-funcs.eclass
index 3fa32820151c..12ed132c48f1 100644
--- a/eclass/toolchain-funcs.eclass
+++ b/eclass/toolchain-funcs.eclass
@@ -231,6 +231,10 @@ tc-detect-is-softfloat() {
[[ $(tc-getTARGET_CPP) == "gcc -E" ]] && return 1
case ${CTARGET:-${CHOST}} in
+ # Avoid autodetection for bare-metal targets. bug #666896
+ *-newlib|*-elf|*-eabi)
+ return 1 ;;
+
# arm-unknown-linux-gnueabi is ambiguous. We used to treat it as
# hardfloat but we now treat it as softfloat like most everyone
# else. Check existing toolchains to respect existing systems.
@@ -269,6 +273,9 @@ tc-tuple-is-softfloat() {
echo "softfp" ;;
arm*-hardfloat-*|arm*eabihf)
echo "no" ;;
+ # bare-metal targets have their defaults. bug #666896
+ *-newlib|*-elf|*-eabi)
+ echo "no" ;;
arm*)
echo "yes" ;;
*)
diff --git a/eclass/udev.eclass b/eclass/udev.eclass
index 4f23c9ebbdf8..baf60584938f 100644
--- a/eclass/udev.eclass
+++ b/eclass/udev.eclass
@@ -1,10 +1,10 @@
-# Copyright 1999-2014 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# @ECLASS: udev.eclass
# @MAINTAINER:
# udev-bugs@gentoo.org
-# @SUPPORTED_EAPIS: 0 1 2 3 4 5 6
+# @SUPPORTED_EAPIS: 0 1 2 3 4 5 6 7
# @BLURB: Default eclass for determining udev directories.
# @DESCRIPTION:
# Default eclass for determining udev directories.
@@ -34,12 +34,16 @@ _UDEV_ECLASS=1
inherit toolchain-funcs
case ${EAPI:-0} in
- 0|1|2|3|4|5|6) ;;
+ 0|1|2|3|4|5|6|7) ;;
*) die "${ECLASS}.eclass API in EAPI ${EAPI} not yet established."
esac
-RDEPEND=""
-DEPEND="virtual/pkgconfig"
+if [[ ${EAPI:-0} == [0123456] ]]; then
+ RDEPEND=""
+ DEPEND="virtual/pkgconfig"
+else
+ BDEPEND="virtual/pkgconfig"
+fi
# @FUNCTION: _udev_get_udevdir
# @INTERNAL