sys-libs/glibc: Test for IA32 emulation before building amd64 multilib glibc, bug...
authorAndreas K. Hüttel <dilfridge@gentoo.org>
Sat, 20 Jan 2018 17:35:27 +0000 (18:35 +0100)
committerAndreas K. Hüttel <dilfridge@gentoo.org>
Sat, 20 Jan 2018 17:36:07 +0000 (18:36 +0100)
Based on the patch by Steven Presser.

Closes: https://bugs.gentoo.org/326693
Package-Manager: Portage-2.3.19, Repoman-2.3.6

sys-libs/glibc/glibc-9999.ebuild

index 522a3674fe0cee308ce12630d400eb6d438975c7..81dadb177948864ef7d3dbb42ff641ac40017ecc 100644 (file)
@@ -701,6 +701,23 @@ pkg_pretend() {
                        fi
                done
        fi
+
+       # ABI-specific checks follow here. Hey, we have a lot more specific conditions that
+       # we test for...
+       if ! is_crosscompile ; then
+
+               if use amd64 && use multilib ; then
+                       ebegin "Checking that IA32 emulation is enabled in the running kernel"
+                       echo 'int main(){return 0;}' > "${T}/check-ia32-emulation.c"
+                       "${CC-${CHOST}-gcc}" ${CFLAGS_x86} "${T}/check-ia32-emulation.c" -o "${T}/check-ia32-emulation.elf32"
+                       "${T}/check-ia32-emulation.elf32"
+                       local STAT=$?
+                       rm -f "${T}/check-ia32-emulation.elf32"
+                       eend $STAT
+                       [ $STAT -eq 0 ] || die "CONFIG_IA32_EMULATION must be enabled in the kernel to compile a multilib glibc."
+               fi
+
+       fi
 }
 # todo: shouldn't most of these checks be called also in src_configure again?
 # (since consistency is not guaranteed between pkg_ and src_)