Skip to content

6.6.1 fails to build on 32-bit platforms #1225

Closed
@fossdd

Description

@fossdd

Hi, upgrading the py3-multidict package in Alpine Linux from 6.6.0 to 6.6.1 fails on 32-bit platforms (armhf, armv7, x86) due to:

2025-06-28 12:30:06,932 gpep517 INFO Building wheel via backend setuptools.build_meta
2025-06-28 12:30:06,962 root INFO running bdist_wheel
2025-06-28 12:30:07,068 root INFO running build
2025-06-28 12:30:07,068 root INFO running build_py
2025-06-28 12:30:07,074 root INFO creating build/lib.linux-i686-cpython-312/multidict
2025-06-28 12:30:07,075 root INFO copying multidict/__init__.py -> build/lib.linux-i686-cpython-312/multidict
2025-06-28 12:30:07,075 root INFO copying multidict/_abc.py -> build/lib.linux-i686-cpython-312/multidict
2025-06-28 12:30:07,075 root INFO copying multidict/_multidict_py.py -> build/lib.linux-i686-cpython-312/multidict
2025-06-28 12:30:07,076 root INFO copying multidict/_compat.py -> build/lib.linux-i686-cpython-312/multidict
2025-06-28 12:30:07,076 root INFO copying multidict/py.typed -> build/lib.linux-i686-cpython-312/multidict
2025-06-28 12:30:07,077 root INFO running build_ext
*********************
* Accelerated build *
*********************
2025-06-28 12:30:07,254 root INFO building 'multidict._multidict' extension
2025-06-28 12:30:07,255 root INFO creating build/temp.linux-i686-cpython-312/multidict
2025-06-28 12:30:07,255 root INFO cc -Os -fstack-clash-protection -Wformat -Werror=format-security -fPIC -I/usr/include/python3.12 -c multidict/_multidict.c -o build/temp.linux-i686-cpython-312/multidict/_multidict.o -O3 -std=c11 -Wall -Wsign-compare -Wconversion -fno-strict-aliasing -Wno-conversion -Werror
In file included from multidict/_multidict.c:5:
multidict/_multilib/hashtable.h: In function '_md_dump':
multidict/_multilib/hashtable.h:1965:24: error: format '%ld' expects argument of type 'long int', but argument 3 has type 'Py_ssize_t' {aka 'int'} [-Werror=format=]
 1965 |     printf("Dump %p [%ld from %ld usable %ld nentries %ld]\n",
      |                      ~~^
      |                        |
      |                        long int
      |                      %d
 1966 |            (void *)md,
 1967 |            md->used,
      |            ~~~~~~~~     
      |              |
      |              Py_ssize_t {aka int}
multidict/_multilib/hashtable.h:1965:33: error: format '%ld' expects argument of type 'long int', but argument 4 has type 'Py_ssize_t' {aka 'int'} [-Werror=format=]
 1965 |     printf("Dump %p [%ld from %ld usable %ld nentries %ld]\n",
      |                               ~~^
      |                                 |
      |                                 long int
      |                               %d
......
 1968 |            htkeys_nslots(keys),
      |            ~~~~~~~~~~~~~~~~~~~   
      |            |
      |            Py_ssize_t {aka int}
multidict/_multilib/hashtable.h:1965:44: error: format '%ld' expects argument of type 'long int', but argument 5 has type 'Py_ssize_t' {aka 'int'} [-Werror=format=]
 1965 |     printf("Dump %p [%ld from %ld usable %ld nentries %ld]\n",
      |                                          ~~^
      |                                            |
      |                                            long int
      |                                          %d
......
 1969 |            keys->usable,
      |            ~~~~~~~~~~~~                     
      |                |
      |                Py_ssize_t {aka int}
multidict/_multilib/hashtable.h:1965:57: error: format '%ld' expects argument of type 'long int', but argument 6 has type 'Py_ssize_t' {aka 'int'} [-Werror=format=]
 1965 |     printf("Dump %p [%ld from %ld usable %ld nentries %ld]\n",
      |                                                       ~~^
      |                                                         |
      |                                                         long int
      |                                                       %d
......
 1970 |            keys->nentries);
      |            ~~~~~~~~~~~~~~                                
      |                |
      |                Py_ssize_t {aka int}
multidict/_multilib/hashtable.h:1973:21: error: format '%ld' expects argument of type 'long int', but argument 2 has type 'Py_ssize_t' {aka 'int'} [-Werror=format=]
 1973 |         printf("  %ld -> %ld\n", i, ix);
      |                   ~~^            ~
      |                     |            |
      |                     long int     Py_ssize_t {aka int}
      |                   %d
multidict/_multilib/hashtable.h:1973:28: error: format '%ld' expects argument of type 'long int', but argument 3 has type 'Py_ssize_t' {aka 'int'} [-Werror=format=]
 1973 |         printf("  %ld -> %ld\n", i, ix);
      |                          ~~^        ~~
      |                            |        |
      |                            long int Py_ssize_t {aka int}
      |                          %d
multidict/_multilib/hashtable.h:1982:25: error: format '%ld' expects argument of type 'long int', but argument 2 has type 'Py_ssize_t' {aka 'int'} [-Werror=format=]
 1982 |             printf("  %ld [deleted]\n", i);
      |                       ~~^               ~
      |                         |               |
      |                         long int        Py_ssize_t {aka int}
      |                       %d
multidict/_multilib/hashtable.h:1984:25: error: format '%ld' expects argument of type 'long int', but argument 2 has type 'Py_ssize_t' {aka 'int'} [-Werror=format=]
 1984 |             printf("  %ld h=%20ld, i=\'", i, entry->hash);
      |                       ~~^                 ~
      |                         |                 |
      |                         long int          Py_ssize_t {aka int}
      |                       %d
multidict/_multilib/hashtable.h:1984:33: error: format '%ld' expects argument of type 'long int', but argument 3 has type 'Py_hash_t' {aka 'int'} [-Werror=format=]
 1984 |             printf("  %ld h=%20ld, i=\'", i, entry->hash);
      |                             ~~~~^            ~~~~~~~~~~~
      |                                 |                 |
      |                                 long int          Py_hash_t {aka int}
      |                             %20d
cc1: all warnings being treated as errors
error: command '/usr/bin/cc' failed with exit code 1

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions