Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

BUILD: move to manylinux_2_28 wheel builds #28436

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

Merged
merged 3 commits into from
Mar 7, 2025
Merged

Conversation

mattip
Copy link
Member

@mattip mattip commented Mar 6, 2025

As discussed in the mailing list, move to manylinux_2_28 wheels.
Also remove unused tool script

@mattip mattip added the 56 - Needs Release Note. Needs an entry in doc/release/upcoming_changes label Mar 6, 2025
@mattip mattip added 03 - Maintenance and removed 56 - Needs Release Note. Needs an entry in doc/release/upcoming_changes labels Mar 6, 2025
@mattip
Copy link
Member Author

mattip commented Mar 6, 2025

Should I add a link to the compliance table to the release note?

@mattip
Copy link
Member Author

mattip commented Mar 6, 2025

The free-threading wheel builds are failing with undefined symbol: __gxx_personality_v0. I guess the build is using gcc instead of g++, or it can use gcc ... -lstdc++. It is coming from here, where it explicitly asks for cython_language=cpp. Maybe a problem with meson? How did it work previously...

py3.extension_module(
'extending_cpp',
'extending_distributions.pyx',
install: false,
override_options : ['cython_language=cpp'],
cython_args: base_cython_args + ['--module-name', 'extending_cpp'],
include_directories: [npy_include_path],
dependencies: [npyrandom_lib, npymath_lib],
)

 E   ImportError: /tmp/pytest-of-root/pytest-0/popen-gw1/test_cython0/random/_examples/cython/build/extending_cpp.cpython-313t-x86_64-linux-gnu.so: undefined symbol: __gxx_personality_v0
  

@mattip
Copy link
Member Author

mattip commented Mar 6, 2025

Maybe something connected to mesonbuild/meson#14284 ?

@rgommers
Copy link
Member

rgommers commented Mar 6, 2025

Maybe something connected to mesonbuild/meson#14284 ?

I'd hope not, because that bug shouldn't be present in any release. The build output seems to show c++ is used, rather than cc:

  [8/9] c++ -Iextending_cpp.cpython-313t-x86_64-linux-gnu.so.p -I. -I.. -I/tmp/tmp.cFFLEoIa4p/venv/lib/python3.13t/site-packages/numpy/_core/include -I/opt/_internal/cpython-3.13.0-nogil/include/python3.13t -fvisibility=hidden -fvisibility-inlines-hidden -fdiagnostics-color=always -D_GLIBCXX_ASSERTIONS=1 -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -O0 -g -fPIC -MD -MQ extending_cpp.cpython-313t-x86_64-linux-gnu.so.p/meson-generated_extending_distributions.pyx.cpp.o -MF extending_cpp.cpython-313t-x86_64-linux-gnu.so.p/meson-generated_extending_distributions.pyx.cpp.o.d -o extending_cpp.cpython-313t-x86_64-linux-gnu.so.p/meson-generated_extending_distributions.pyx.cpp.o -c extending_cpp.cpython-313t-x86_64-linux-gnu.so.p/extending_distributions.pyx.cpp
  [9/9] c++  -o extending_cpp.cpython-313t-x86_64-linux-gnu.so extending_cpp.cpython-313t-x86_64-linux-gnu.so.p/meson-generated_extending_distributions.pyx.cpp.o -Wl,--as-needed -Wl,--allow-shlib-undefined -shared -fPIC -Wl,--start-group /tmp/tmp.cFFLEoIa4p/venv/lib/python3.13t/site-packages/numpy/random/lib/libnpyrandom.a /tmp/tmp.cFFLEoIa4p/venv/lib/python3.13t/site-packages/numpy/_core/lib/libnpymath.a -Wl,--end-group

Should I add a link to the compliance table to the release note?

That sounds useful, more people should know about that table and it is relevant here.

@rgommers rgommers added this to the 2.3.0 release milestone Mar 6, 2025
@ngoldbaum
Copy link
Member

Super weird that it only seems to matter on the free-threaded builds. Let me know if you want me to look closer at this.

It's hard to compare with the tests on the most recent wheel build because it uses pytest-xdist. It's possible the test was being skipped before, though.

@mattip
Copy link
Member Author

mattip commented Mar 6, 2025

It is only happening in the manylinux_2_28 builds. I wonder if the compiler is subtly broken there?

Let me know if you want me to look closer at this.

@ngoldbaum how can I say no to such an offer?

@mayeut
Copy link
Contributor

mayeut commented Mar 6, 2025

with #28415 merged, the version of manylinux_2_28 will be bumped. It uses a gcc 14 toolchain instead of gcc 13. It might be worth rebasing/merging main to see if this helps with the failing test.

@charris
Copy link
Member

charris commented Mar 7, 2025

In g++ version 14 I see the symbol defined in libstc++ (and only there). Perhaps is was elsewhere before?

charris@fedora [numpy.git (main)]$ nm -D /usr/lib64/libstdc++.so.6 | grep personality
000000000001b1c0 T __gxx_personality_v0@@CXXABI_1.3

@ngoldbaum
Copy link
Member

That seems to have fixed it. In it goes.

@ngoldbaum ngoldbaum merged commit b37750b into numpy:main Mar 7, 2025
69 checks passed
mattip added a commit to mattip/numpy that referenced this pull request Mar 11, 2025
@mayeut
Copy link
Contributor

mayeut commented Mar 23, 2025

Unfortunately, It's not fixed. The last commit did not trigger the wheel builder workflow.
More info on the failure in #28570

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants
Morty Proxy This is a proxified and sanitized view of the page, visit original site.