--- a/sys-libs/glibc/glibc-2.20.ebuild +++ b/sys-libs/glibc/glibc-2.20.ebuild @@ -4,7 +4,7 @@ EAPI="4" -inherit eutils versionator toolchain-funcs flag-o-matic gnuconfig multilib systemd unpacker multiprocessing +inherit eutils versionator toolchain-funcs flag-o-matic gnuconfig multilib systemd unpacker multiprocessing linux-info DESCRIPTION="GNU libc6 (also called glibc2) C library" HOMEPAGE="http://www.gnu.org/software/libc/libc.html" @@ -103,6 +103,17 @@ ) SRC_URI+=" ${GCC_BOOTSTRAP_VER:+multilib? ( $(gentoo_uris gcc-${GCC_BOOTSTRAP_VER}-multilib-bootstrap.tar.bz2) )}" +# ABI-specific checks, but run only if the right target+destination conditions are met. +if [[ ${CATEGORY} != cross-* ]] +then + # In a cross-compile situation we cannot (easily) probe the kernel that glibc will be running on. Skip the check + use amd64 && use multilib && { + # IA32 Emulation MUST be enabled on amd64 kernels: + CONFIG_CHECK="IA32_EMULATION ${CONFIG_CHECK}" + ERROR_CONFIG_IA32_EMULATION="CONFIG_IA32_EMULATION must be enabled on amd64 kernels to compile glibc" + } +fi + # eblit-include [--skip] [version] eblit-include() { local skipable=false @@ -138,6 +149,7 @@ eblit-run-maybe eblit-$1-post } +pkg_pretend() { check_extra_config ; } src_unpack() { eblit-run src_unpack ; } src_prepare() { eblit-run src_prepare ; } src_configure() { eblit-run src_configure ; }