classification
Title: python-3.3.2-r2: Modules/xxlimited.c:17:error: #error Py_LIMITED_API is incompatible with Py_DEBUG, Py_TRACE_REFS, and Py_REF_DEBUG
Type: compile error Stage:
Components: Versions: Python 3.3
process
Status: closed Resolution: works for me
Dependencies: Superseder:
Assigned To: Nosy List: mmokrejs, r.david.murray, skrah
Priority: normal Keywords:

Created on 2013-08-30 13:27 by mmokrejs, last changed 2013-08-30 15:07 by r.david.murray. This issue is now closed.

Files
File name Uploaded Description Edit
build.log mmokrejs, 2013-08-30 13:27
Messages (11)
msg196534 - (view) Author: Martin Mokrejs (mmokrejs) Date: 2013-08-30 13:27
Looks I cannot compile when python-3.3 was configured with --with-pydebug. I use Gentoo Linux, the -r2 shows they added some patches but should not matter I think.

building 'xxlimited' extension
x86_64-pc-linux-gnu-gcc -pthread -fPIC -Wno-unused-result -DDYNAMIC_ANNOTATIONS_ENABLED=1 -O2 -pipe -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -msse4 -mavx -maes -mpclmul -mpopcnt -march=corei7-avx -fstack-protector-all -fwrapv -DPy_LIMITED_API=1 -IInclude -I. -I/mnt/1TB/var/tmp/portage/dev-lang/python-3.3.2-r2/work/Python-3.3.2/Include -I/mnt/1TB/var/tmp/portage/dev-lang/python-3.3.2-r2/work/x86_64-pc-linux-gnu -c /mnt/1TB/var/tmp/portage/dev-lang/python-3.3.2-r2/work/Python-3.Modules/xxlimited.c -o build/temp.linux-x86_64-3.3-pydebug/mnt/1TB/var/tmp/portage/dev-lang/python-3.3.2-r2/work/Python-3.Modules/xxlimited.o
In file included from /mnt/1TB/var/tmp/portage/dev-lang/python-3.3.2-r2/work/Python-3.Include/Python.h:68:0,
                 from /mnt/1TB/var/tmp/portage/dev-lang/python-3.3.2-r2/work/Python-3.Modules/xxlimited.c:17:
/mnt/1TB/var/tmp/portage/dev-lang/python-3.3.2-r2/work/Python-3.Include/object.h:65:2: error: #error Py_LIMITED_API is incompatible with Py_DEBUG, Py_TRACE_REFS, and Py_REF_DEBUG


I think make should ignore this error unless you fix xxlimited.c sources.
msg196541 - (view) Author: Stefan Krah (skrah) * (Python committer) Date: 2013-08-30 13:57
A similar issue was closed, see msg157249. The error looks deliberate
to me, so let's close this, too.
msg196542 - (view) Author: Martin Mokrejs (mmokrejs) Date: 2013-08-30 14:06
Uh. I don't understand. So did you want to say I should not run configure --with-pydebug in python 3.3 or what? I am fine if you fix the Makefile not to exit on this particular file. I am missing something.
msg196543 - (view) Author: R. David Murray (r.david.murray) * (Python committer) Date: 2013-08-30 14:08
I'm curious how this error gets triggered.  I build python --with-pydebug on Gentoo all the time, albeit from a checkout, and I've never seen it.  I'm imagining that means it is a Gentoo bug.  Well, not even really a bug, since Gentoo doesn't itself support emerging python in debug mode.
msg196544 - (view) Author: Martin Mokrejs (mmokrejs) Date: 2013-08-30 14:10
See for what I did to Gentoo: http://bugs.python.org/issue18843#msg196520
msg196547 - (view) Author: Stefan Krah (skrah) * (Python committer) Date: 2013-08-30 14:19
Martin, msg196534 shows that you are building with -DPy_LIMITED_API=1.
You can either use the limited API or --with-pydebug, but not both.

[As I said in the other issue, IMHO it is better to use a minimal set
of build options when reporting bugs.]
msg196549 - (view) Author: Martin Mokrejs (mmokrejs) Date: 2013-08-30 14:34
Hmm, but I did not add -DPy_LIMITED_API=1. Python 2.7.5 can be compiled using same configuration. Going back to the build.log file I see:

configure --prefix=/usr --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --libdir=/usr/lib64 --with-fpectl --enable-shared --disable-ipv6 --with-threads --infodir=${prefix}/share/info --mandir=${prefix}/share/man --with-computed-gotos --with-dbmliborder=gdbm --with-libc= --enable-loadable-sqlite-extensions --with-system-expat --with-system-ffi --with-pydebug --without-pymalloc --with-valgrind


I specified only "--with-pydebug --without-pymalloc --with-valgrind". So where does the limited API come from? Bug in configure.ac?
msg196550 - (view) Author: Stefan Krah (skrah) * (Python committer) Date: 2013-08-30 14:39
Well, these look like Gentoo build flags. Did you or "emerge" or
anything else export CFLAGS in the shell?
msg196552 - (view) Author: Stefan Krah (skrah) * (Python committer) Date: 2013-08-30 14:49
I think I understand now: If you used the strategy from msg196520,
of course you get the Gentoo flags.

What you really should do is download a release or get a checkout
from hg.python.org and build that _without_ using "emerge".
msg196553 - (view) Author: Martin Mokrejs (mmokrejs) Date: 2013-08-30 14:54
So I conclude that you want to say that some of the configure flags is wrong? Which? I can surely report that at Gentoo. I still think Makefile should be changed so that it make does not even try to compile xxlimited.c if -DPy_LIMITED_API=1 is in CFLAGS regardless how that happened.

http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/dev-lang/python/

Look into the python-3.3.2-r2.ebuild file for what it does, and how does differ from 3.7.5-r2.ebuild which can be compiled fine through emerge abd thsoe 3 configure arguments I requested.
msg196556 - (view) Author: R. David Murray (r.david.murray) * (Python committer) Date: 2013-08-30 15:07
Python2 doesn't support the limited ABI, so that flag is a noop for 2.7.
History
Date User Action Args
2013-08-30 15:07:01r.david.murraysetmessages: + msg196556
2013-08-30 14:54:55mmokrejssetmessages: + msg196553
2013-08-30 14:49:52skrahsetmessages: + msg196552
2013-08-30 14:39:59skrahsetmessages: + msg196550
2013-08-30 14:34:04mmokrejssetmessages: + msg196549
2013-08-30 14:19:07skrahsetmessages: + msg196547
2013-08-30 14:10:31mmokrejssetmessages: + msg196544
2013-08-30 14:08:23r.david.murraysetnosy: + r.david.murray
messages: + msg196543
2013-08-30 14:06:15mmokrejssetmessages: + msg196542
2013-08-30 13:57:35skrahsetstatus: open -> closed

nosy: + skrah
messages: + msg196541

resolution: works for me
2013-08-30 13:27:32mmokrejscreate