
On Wed, 19 May 2021, 12:00 am Ronald Oussoren via capi-sig, < capi-sig@python.org> wrote:
On 18 May 2021, at 15:08, Petr Viktorin <encukou@gmail.com> wrote:
On 18. 05. 21 14:20, Marc-Andre Lemburg wrote:
Right, but if you want to use the stable ABI, the compiler would not see the needed Py_FrozenMain() definition to link against -- if you remove it from the stable ABI. So overall, it's probably not such a good idea to remove that particular API from the stable ABI list.
Yeah, the more I dig, the more I'm convinced that Py_FrozenMain should be on the list.
That means it should always be available, though -- even in static builds.
I don’t understand why this is so. Py_FrozenMain must only be present in the dynamic library, including the stable ABI on Windows (because AFAIK it already is). In a staticly linked python executable the symbol is not necessary because it will (and can) never be used.
It's an edge case in the stable ABI guarantees - a module that uses the stable ABI should work from a statically linked Python, even if it does something odd like report the address of a symbol that isn't useful in a statically linked Python.
Cheers, Nick.