The problem appears to be * specific to 2.5.2 (doesn't happen with 2.5.1 or 2.4.4) * specific to osx (doesn't happen on amd64-linux So this is what happens: WIth VER=2.5.2-r8, running cd "${EPREFIX}"/usr/portage/dev-lang/python export MAKEOPTS= ebuild python-${VER}.ebuild clean compile && clear || echo failed to compile fgrep 'fatal error' \ "${EPREFIX}"/var/tmp/portage/dev-lang/python-${VER}/temp/build.log yields an error on ~x86-darwin (both on heiko's and my box). Here's the error: /Users/pipping/gentoo/var/tmp/portage/dev-lang/python-2.5.2-r8/work/Python-2.5.2/Modules/_ctypes/_ctypes.c:4877: fatal error: error writing to -: Broken pipe
matt sent me a copy of his python-gentoo-patches-2.5.1-r3.tar.bz2 so I was able to restore the last known 2.5.1. Not sure what the implications of this bug are. We might need to go back to 2.5.1, do nothing, or wait for 2.6 (scheduled to come out October 1st, see also http://www.python.org/dev/peps/pep-0361/)
But python still works as far as you know?
Right. I haven't looked at what Modules/_ctypes/_ctypes.c is good for. But whatever it is is broken. Depending on whether that file is important we're in trouble or not :)
OK so we're breaking it ourselves. We're passing -Wa,--noexecstack, which as(1) doesn't understand. we need to drop this on osx: python-2.5.2-r8/work/2.5.2/21_all_ctypes-execstack.patch
Created attachment 166432 [details, diff] patch against the ebuild this works for me. I don't know what conditional we should use. I went with 'use prefix' but that'll probably break ~x86-linux or whatever it was added for in the first place. Any ideas?
we were apparently hit by someone taking the easy way out of http://www.gentoo.org/proj/en/hardened/gnu-stack.xml#doc_chap5 :D
make it conditional for hosts that do not use the GNU linker.
should be fixed now, thanks!