Message392205
I cannot merge my PR 25685 because the mandatory ABI CI job fails:
---------------
abidiff "libpython3.9.so" ./Doc/data/python3.9.abi --drop-private-types --no-architecture --no-added-syms
Functions changes summary: 0 Removed, 1 Changed, 0 Added function
Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
1 function with some indirect sub-type change:
[C]'function int _PyInterpreterState_IDIncref(PyInterpreterState*)' at pystate.c:497:1 has some indirect sub-type changes:
return type changed:
type name changed from 'int' to 'void'
type size changed from 32 to 0 (in bits)
---------------
It is correct that my PR changes an internal C API on purpose.
Pablo suggests me to regenerate the ABI file but I don't know how to do that.
In Python 3.9, the GitHub Action uses:
---
check_abi:
name: 'Check if the ABI has changed'
runs-on: ubuntu-20.04
needs: check_source
if: needs.check_source.outputs.run_tests == 'true'
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
- name: Install Dependencies
run: |
sudo ./.github/workflows/posix-deps-apt.sh
sudo apt-get install -yq abigail-tools
- name: Build CPython
env:
CFLAGS: -g3 -O0
run: |
# Build Python with the libpython dynamic library
./configure --enable-shared
make -j4
- name: Check for changes in the ABI
run: make check-abidump
---
I'm using Fedora 33 with "gcc (GCC) 11.0.1 20210324 (Red Hat 11.0.1-0)".
On Fedora, I used:
---
$ sudo dnf install -y libabigail
$ ./configure --enable-shared CFLAGS="-g3 -O0" && make -j10
$ make regen-abidump
$ git diff --stat
Doc/data/python3.9.abi | 28478 +++++++++++++++++++++++++++++++++-------------------
1 file changed, 18306 insertions(+), 10172 deletions(-)
---
There are tons of changes!
Also, "make check-abidump" lists many changes:
---
abidiff "libpython3.9.so" ./Doc/data/python3.9.abi --drop-private-types --no-architecture --no-added-syms
Functions changes summary: 0 Removed, 13 Changed (171 filtered out), 0 Added functions
Variables changes summary: 0 Removed, 6 Changed (2 filtered out), 0 Added variables
13 functions with some indirect sub-type change:
(...)
[C] 'function PyStatus _PyInterpreterState_Enable(_PyRuntimeState*)' at pystate.c:171:1 has some indirect sub-type changes:
[C] 'function int _Py_DecodeLocaleEx(const char*, wchar_t**, size_t*, const char**, int, _Py_error_handler)' at fileutils.c:574:1 has some indirect sub-type changes:
parameter 6 of type 'typedef _Py_error_handler' has sub-type changes:
[C] 'const unsigned char _Py_ctype_tolower[256]' was changed to 'const unsigned char[256] const _Py_ctype_tolower' at pyctype.h:26:1:
type of variable changed:
entity changed from 'const unsigned char[256]' to 'const unsigned char[256] const'
(...)
--- |
|
Date |
User |
Action |
Args |
2021-04-28 14:36:47 | vstinner | set | recipients:
+ vstinner, gregory.p.smith, christian.heimes, ned.deily, petr.viktorin, lukasz.langa, steve.dower, pablogsal |
2021-04-28 14:36:47 | vstinner | set | messageid: <1619620607.74.0.800696776487.issue43725@roundup.psfhosted.org> |
2021-04-28 14:36:47 | vstinner | link | issue43725 messages |
2021-04-28 14:36:47 | vstinner | create | |
|