-
-
Notifications
You must be signed in to change notification settings - Fork 101
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
Unable to pip install multidict
with gcc-14
#926
Comments
Thanks for the report! Could you confirm this against I don't know what GCC version is used in CI but it doesn't error out. P.S. There's another issue tracking the release of wheels for py312. |
Yes, I'm seeing the same error with 68b080e. |
|
I would also guess that passing Oh. Since Python 3.12, the first int value was added. See python/cpython@6f6a4e6 -- hence the entire order of values here needs to be shifted. |
Perhaps initializing like this makes more sense? multidict/multidict/_multidict.c Lines 865 to 869 in 68b080e
|
The bit I don't understand is this: How did this ever work on Python 3.12 in the first place? |
This isn't limited to gcc-14; the same occurs building against Python |
One way to fix this, albeit with a performance penalty, is to extend the PR dropping use of METH_FASTCALL from Python 3.13 to drop it from 3.12 as well; I have a branch doing this as charles-dyfis-net/multidict@ad11386 |
Feel free to submit a PR, with maybe some tests that would show that it works as expected? Any idea why that is? Does the older GCC compile things differently? After all, the wheels being tested are built in the manylinux images with a GCC version that's hardly modern. The tests (except for the 3.13 job) don't recompile the project but install those wheels for testing. |
On gcc 13 / python 3.12, I see the same compiler messages, but they are only warnings, not errors. |
That's weird. I may consider #929, but would like to understand why or how this works right now. As @hroncok mentioned — this is a mystery, and I'd rather not make sudden mystery-driven hotfixing without understanding fully what's going now. Any ideas? P.S. @charles-dyfis-net @psss is this problematic under CPython 3.9 with clang 16.0.6 / GCC 14? |
One observation is that these compiler warnings/errors are about kwargs parsing, but (from a quick glance) the multidict methods such as |
Implemented as an extension of aio-libs#909, which disabled METH_FASTCALL on Python 3.13 and later. Fixes aio-libs#926.
Implemented as an extension of aio-libs#909, which disabled METH_FASTCALL on Python 3.13 and later. Fixes aio-libs#926.
Implemented as an extension of aio-libs#909, which made this change on Python 3.13 and later. Fixes aio-libs#926 (build failure observed with clang-16.0.6 and gcc-14).
@jonaslb any chance you could verify that guess? I think we need test coverage for such cases before the release. I was actually trying to come up with a way to measure coverage in the C code using gcovr, but wasn't successful — it just shows zero coverage. I can't figure out the compilation env vars to make it work.. If anybody has example repos implementing this (without |
Implemented as an extension of aio-libs#909, which made this change on Python 3.13 and later. Fixes aio-libs#926 (build failure observed with clang-16.0.6 and gcc-14).
Implemented as an extension of aio-libs#909, which made this change on Python 3.13 and later. Fixes aio-libs#926 (build failure observed with clang-16.0.6 and gcc-14).
Implemented as an extension of aio-libs#909, which made this change on Python 3.13 and later. Fixes aio-libs#926 (build failure observed with clang-16.0.6 and gcc-14).
Implemented as an extension of aio-libs#909, which made this change on Python 3.13 and later. Fixes aio-libs#926 (build failure observed with clang-16.0.6 and gcc-14).
Yeah it's verified, I get a segmentation fault when I run the test using kwargs (python 3.12/gcc13, but I think it's not really about gcc but about the change in Python linked further up). I have a branch where I used the named member syntax fix proposed in #926 (comment) throughout I can send a PR for it, if you prefer it. I should say though that I think that #929 seems a very reasonable solution, especially given that |
See also this (using the Fedora RPM package built with GCC 13):
|
Pyodide is also affected by this. |
Implemented as an extension of aio-libs#909, which made this change on Python 3.13 and later. Fixes aio-libs#926 (build failure observed with clang-16.0.6 and gcc-14).
Implemented as an extension of aio-libs#909, which made this change on Python 3.13 and later. Fixes aio-libs#926 (build failure observed with clang-16.0.6 and gcc-14). Co-authored-by: Sviatoslav Sydorenko (Святослав Сидоренко) <wk.cvs.github@sydorenko.org.ua>
Implemented as an extension of aio-libs#909, which made this change on Python 3.13 and later. Fixes aio-libs#926 (build failure observed with clang-16.0.6 and gcc-14). Co-authored-by: Sviatoslav Sydorenko (Святослав Сидоренко) <wk.cvs.github@sydorenko.org.ua>
Implemented as an extension of aio-libs#909, which made this change on Python 3.13 and later. Fixes aio-libs#926 (build failure observed with clang-16.0.6 and gcc-14). Co-authored-by: Sviatoslav Sydorenko (Святослав Сидоренко) <wk.cvs.github@sydorenko.org.ua>
Implemented as an extension of aio-libs#909, which made this change on Python 3.13 and later. Fixes aio-libs#926 (build failure observed with clang-16.0.6 and gcc-14). Co-authored-by: Sviatoslav Sydorenko (Святослав Сидоренко) <wk.cvs.github@sydorenko.org.ua>
Thanks for fixing this! ❤️ Praying for the 6.0.5 release pipeline to pass, you had some weird errors in there 😬 |
@tales-aparecida feel free to watch https://github.com/aio-libs/multidict/actions/runs/7746701945 now. |
Thanks @webknjaz! |
Thanks for the quick fix! |
Long story short
With the latest Fedora Rawhide which freshly contains
gcc-14
I'm not able to installmultidict
.Expected behaviour
Package successfully installed.
Actual behaviour
I see the following error:
Steps to reproduce
Install the latest rawhide.
Your environment
The text was updated successfully, but these errors were encountered: