Tried to emerge gnat-gcc-4.3.2, which resulted in the following error: configure: error: GNAT is required to build ada >>> Unpacking source... >>> Unpacking gcc-core-4.3.2.tar.bz2 to /var/tmp/portage/dev-lang/gnat-gcc-4.3.2/work >>> Unpacking gcc-ada-4.3.2.tar.bz2 to /var/tmp/portage/dev-lang/gnat-gcc-4.3.2/work >>> Unpacking gnatboot-4.1-i386.tar.bz2 to /var/tmp/portage/dev-lang/gnat-gcc-4.3.2/work * PT PaX marking -E * /var/tmp/portage/dev-lang/gnat-gcc-4.3.2/work/usr/bin/gnat1 * Replacing obsolete head/tail with POSIX compliant ones * - fixed fixincludes/configure * - fixed gcc/configure * - fixed gnattools/configure * - fixed intl/configure * - fixed libada/configure * - fixed libcpp/configure * - fixed libdecnumber/configure * - fixed libgcc/configure * - fixed libgomp/configure * - fixed libiberty/configure * - fixed libmudflap/configure * - fixed libssp/configure * Running elibtoolize in: gcc-4.3.2 * Applying install-sh-1.5.4.patch ... * Applying portage-2.2.patch ... * Applying sed-1.5.6.patch ... * Using GNU config files from /usr/share/libtool * Updating config.sub [ ok ] * Updating config.guess [ ok ] * Fixing misc issues in configure files * Running autoconf ... [ ok ] >>> Source unpacked. >>> Compiling source in /var/tmp/portage/dev-lang/gnat-gcc-4.3.2/work/gcc-4.3.2 ... checking build system type... i686-pc-linux-gnu checking host system type... i686-pc-linux-gnu checking target system type... i686-pc-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether ln works... yes checking whether ln -s works... yes checking for i686-pc-linux-gnu-gcc... /var/tmp/portage/dev-lang/gnat-gcc-4.3.2/work/usr/bin/gnatgcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether /var/tmp/portage/dev-lang/gnat-gcc-4.3.2/work/usr/bin/gnatgcc accepts -g... yes checking for /var/tmp/portage/dev-lang/gnat-gcc-4.3.2/work/usr/bin/gnatgcc option to accept ANSI C... none needed checking for i686-pc-linux-gnu-g++... i686-pc-linux-gnu-g++ checking whether we are using the GNU C++ compiler... yes checking whether i686-pc-linux-gnu-g++ accepts -g... yes checking for i686-pc-linux-gnu-gnatbind... no checking for gnatbind... gnatbind checking for i686-pc-linux-gnu-gnatmake... no checking for gnatmake... gnatmake checking whether compiler driver understands Ada... no checking how to compare bootstrapped objects... cmp --ignore-initial=16 $$f1 $$f2 checking for correct version of gmp.h... yes checking for correct version of mpfr.h... yes configure: error: GNAT is required to build ada * * ERROR: dev-lang/gnat-gcc-4.3.2 failed. * Call stack: * ebuild.sh, line 49: Called src_compile * environment, line 3627: Called gnatbuild_src_compile 'src_compile' 'src_compile' 'configure' * environment, line 2528: Called die * The specific snippet of code: * CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" "${S}"/configure --prefix=${PREFIX} --bindir=${BINPATH} --includedir=${INCLUDEPATH} --libdir="${LIBPATH}" --libexecdir="${LIBEXECPATH}" --datadir=${DATAPATH} --mandir=${DATAPATH}/man --infodir=${DATAPATH}/info --program-prefix=gnat --enable-languages="c,ada" --with-gcc --enable-threads=posix --enable-shared --with-system-zlib ${confgcc} || die "configure failed" * The die message: * configure failed Portage 2.1.4.5 (hardened/x86/2.6, gcc-3.4.6-hardenednossp, glibc-2.6.1-r0, 2.6.26-hardened-r2 i686) ================================================================= System uname: 2.6.26-hardened-r2 i686 Intel(R) Pentium(R) M processor 1600MHz Timestamp of tree: Thu, 20 Nov 2008 19:15:01 +0000 ccache version 2.4 [enabled] app-shells/bash: 3.2_p17 dev-java/java-config: 1.3.7, 2.1.6 dev-lang/python: 2.5.2-r6 dev-python/pycrypto: 2.0.1-r6 dev-util/ccache: 2.4-r7 sys-apps/baselayout: 2.0.0 sys-apps/openrc: 0.3.0-r1 sys-apps/sandbox: 1.2.18.1-r2 sys-devel/autoconf: 2.13, 2.61-r2 sys-devel/automake: 1.5, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.1 sys-devel/binutils: 2.18-r1 sys-devel/gcc-config: 1.4.0-r4 sys-devel/libtool: 1.5.26 virtual/os-headers: 2.6.22-r2 ACCEPT_KEYWORDS="x86" CBUILD="i686-pc-linux-gnu" CFLAGS="-mtune=i686 -O2 -pipe -fforce-addr -msse2" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/terminfo /etc/texmf/web2c /etc/udev/rules.d" CXXFLAGS="-mtune=i686 -O2 -pipe -fforce-addr -msse2" DISTDIR="/usr/portage/distfiles" FEATURES="ccache collision-detect distlocks metadata-transfer parallel-fetch sandbox sfperms strict test unmerge-orphans userfetch" It failed with both gcc-3.4.6-r2 and gcc-4.2.3
As discussed on irc, please check portage tree consistency and that you do not have stray ovelrays/eclasses and please attach config.log as generated by this configure.
dmesg shows the following that every time ./configure fails: PAX: execution attempt in: <anonymous mapping>, 5ee48000-5ee60000 bffe8000 PAX: terminating task: /var/tmp/portage/dev-lang/gnat-gcc-4.3.2/work/usr/bin/gnat1(gnat1):16614, uid/euid: 0/0, PC: 5ee5bdd4, SP: 5ee5bd4c This can be avoided by doing emulating trampolines via pax-mark E (this is already done in gnatbuild.eclass, in gnatbuild_src_unpack()) (Help in kernel configuration says that emulating trampolines is necessary to make certain programs work when CONFIG_PAX_PAGEEXEC or CONFIG_PAX_SEGMEXEC is enabled) However, this doesn't work if CONFIG_PAX_EMUTRAMP is disabled. In that case PAGEEXEC and SEGMEXEC must be disabled. My experiments showed that pax-mark E must be changed to pax-mark pmsE
Thanks for tracing that. The change is in the tree, closing the bug now..
This problem is back with gnat-gcc-4.2.3 (and also 4.3.2, which I don't actually need but tried installing as an alternative while debugging this problem). Unfortunately it's also necessary to mark the intermediate gnat1 builds between stages (like work/build/prev-gcc/gnat1), which I'm not sure how to do.