Skip to content

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 #63083

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
mmokrejs mannequin opened this issue Aug 30, 2013 · 11 comments
Labels
build The build process and cross-build

Comments

@mmokrejs
Copy link
Mannequin

mmokrejs mannequin commented Aug 30, 2013

BPO 18883
Nosy @bitdancer, @skrah
Files
  • build.log
  • Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.

    Show more details

    GitHub fields:

    assignee = None
    closed_at = <Date 2013-08-30.13:57:35.332>
    created_at = <Date 2013-08-30.13:27:32.337>
    labels = ['build']
    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'
    updated_at = <Date 2013-08-30.15:07:01.138>
    user = 'https://bugs.python.org/mmokrejs'

    bugs.python.org fields:

    activity = <Date 2013-08-30.15:07:01.138>
    actor = 'r.david.murray'
    assignee = 'none'
    closed = True
    closed_date = <Date 2013-08-30.13:57:35.332>
    closer = 'skrah'
    components = []
    creation = <Date 2013-08-30.13:27:32.337>
    creator = 'mmokrejs'
    dependencies = []
    files = ['31520']
    hgrepos = []
    issue_num = 18883
    keywords = []
    message_count = 11.0
    messages = ['196534', '196541', '196542', '196543', '196544', '196547', '196549', '196550', '196552', '196553', '196556']
    nosy_count = 3.0
    nosy_names = ['mmokrejs', 'r.david.murray', 'skrah']
    pr_nums = []
    priority = 'normal'
    resolution = 'works for me'
    stage = None
    status = 'closed'
    superseder = None
    type = 'compile error'
    url = 'https://bugs.python.org/issue18883'
    versions = ['Python 3.3']

    @mmokrejs
    Copy link
    Mannequin Author

    mmokrejs mannequin commented Aug 30, 2013

    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.3.2/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.3.2/Modules/xxlimited.o
    In file included from /mnt/1TB/var/tmp/portage/dev-lang/python-3.3.2-r2/work/Python-3.3.2/Include/Python.h:68:0,
    from /mnt/1TB/var/tmp/portage/dev-lang/python-3.3.2-r2/work/Python-3.3.2/Modules/xxlimited.c:17:
    /mnt/1TB/var/tmp/portage/dev-lang/python-3.3.2-r2/work/Python-3.3.2/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.

    @mmokrejs mmokrejs mannequin added the build The build process and cross-build label Aug 30, 2013
    @skrah
    Copy link
    Mannequin

    skrah mannequin commented Aug 30, 2013

    A similar issue was closed, see msg157249. The error looks deliberate
    to me, so let's close this, too.

    @skrah skrah mannequin closed this as completed Aug 30, 2013
    @mmokrejs
    Copy link
    Mannequin Author

    mmokrejs mannequin commented Aug 30, 2013

    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.

    @bitdancer
    Copy link
    Member

    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.

    @mmokrejs
    Copy link
    Mannequin Author

    mmokrejs mannequin commented Aug 30, 2013

    See for what I did to Gentoo: http://bugs.python.org/issue18843#msg196520

    @skrah
    Copy link
    Mannequin

    skrah mannequin commented Aug 30, 2013

    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.]

    @mmokrejs
    Copy link
    Mannequin Author

    mmokrejs mannequin commented Aug 30, 2013

    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?

    @skrah
    Copy link
    Mannequin

    skrah mannequin commented Aug 30, 2013

    Well, these look like Gentoo build flags. Did you or "emerge" or
    anything else export CFLAGS in the shell?

    @skrah
    Copy link
    Mannequin

    skrah mannequin commented Aug 30, 2013

    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".

    @mmokrejs
    Copy link
    Mannequin Author

    mmokrejs mannequin commented Aug 30, 2013

    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.

    @bitdancer
    Copy link
    Member

    Python2 doesn't support the limited ABI, so that flag is a noop for 2.7.

    @ezio-melotti ezio-melotti transferred this issue from another repository Apr 10, 2022
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Labels
    build The build process and cross-build
    Projects
    None yet
    Development

    No branches or pull requests

    1 participant