classification
Title: python3.lib in Python3.9.0 Windows distribution does not contain PyObject_CallNoArgs symbol
Type: compile error Stage: patch review
Components: C API, Extension Modules, Windows Versions: Python 3.10, Python 3.9
process
Status: open Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: David Hewitt, ZackerySpytz, alex, paul.moore, steve.dower, tim.golden, zach.ware
Priority: normal Keywords: patch

Created on 2020-11-19 22:47 by David Hewitt, last changed 2020-11-20 05:56 by ZackerySpytz.

Pull Requests
URL Status Linked Edit
PR 23415 open ZackerySpytz, 2020-11-20 05:56
Messages (3)
msg381458 - (view) Author: David Hewitt (David Hewitt) Date: 2020-11-19 22:47
I'm unsure if this is a packaging error or a misunderstanding by me.

I'm trying to link a binary on windows with Py_LIMITED_API set. According to https://www.python.org/dev/peps/pep-0384/#linkage I _think_ I'm supposed to be linking against python3.lib (instead of python39.lib).

However my build fails because the PyObject_CallNoArgs symbol is not present in python3.lib

I see that the symbol is indeed present in python39.lib

Is this a misunderstanding on my part? I was under the impression that python3.lib will only contain symbols available in the limited api, and that (since 3.9) PyObject_CallNoArgs is part of the limited api.
msg381459 - (view) Author: Alex Gaynor (alex) * (Python committer) Date: 2020-11-19 23:19
This looks like a bug to me. While https://github.com/python/cpython/commit/2ff58a24e8a1c7e290d025d69ebaea0bbead3b8c added it to the header, it did not add it to https://github.com/python/cpython/blob/master/PC/python3dll.c which is required.
msg381460 - (view) Author: Steve Dower (steve.dower) * (Python committer) Date: 2020-11-20 00:51
Yeah, this will be our fault.

Someone is looking into automatically generating the .def file so that this stops happening. Last time we tried that there was a lot of pushback because "too many APIs will become stable", but this time I think we're just going to force those devs to care for their APIs properly.

(I'm blanking right now on who was working on this... anyone remember?)
History
Date User Action Args
2020-11-20 05:56:16ZackerySpytzsetkeywords: + patch
nosy: + ZackerySpytz

pull_requests: + pull_request22308
stage: patch review
2020-11-20 01:01:11alexsetversions: + Python 3.10
2020-11-20 01:01:02alexsetcomponents: + C API
2020-11-20 00:51:49steve.dowersetmessages: + msg381460
2020-11-19 23:19:31alexsetnosy: + alex
messages: + msg381459
components: + Extension Modules
2020-11-19 22:47:45David Hewittcreate