Skip to content
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

Fix inconsistent CI workflows. #9

Closed
allemangD opened this issue Aug 19, 2024 · 3 comments · Fixed by #12
Closed

Fix inconsistent CI workflows. #9

allemangD opened this issue Aug 19, 2024 · 3 comments · Fixed by #12

Comments

@allemangD
Copy link
Collaborator

https://github.com/KitwareMedical/ITKHalideFilters/actions/runs/10426235433/job/28878788922

build-test-cxx suceeded on ubuntu-22.04, but failed on macos-12 and the other platforms were canceled. python-build-workflow succeeded on macos and windows, but failed on linux so the other platforms were canceled.

Some other notes in the comments of #8.

@allemangD
Copy link
Collaborator Author

allemangD commented Sep 16, 2024

The issue on linux is a linking error due to Halide and glibc interacting in manylinux.

https://github.com/KitwareMedical/ITKHalideFilters/actions/runs/10874257586/job/30201463932#step:5:451

Notes at the end like undefined reference to pow@GLIBC_2.29 or undefined reference to pthread_create@GLIBC_2.34.

Halide is built on Ubuntu LTS via Buildbot. It requires glibc 2.34, but the latest manylinux image provides only glibc 2.28.

https://github.com/pypa/manylinux?tab=readme-ov-file#manylinux_2_28-almalinux-8-based


The issue on MacOS is due to Halide GPU only targeting CUDA. Should update CMake to use cuda or metal depending on the target platform.


The issue on Windows is unclear; some linkage error: https://github.com/KitwareMedical/ITKHalideFilters/actions/runs/10885362184/job/30202791711#step:6:774

@allemangD
Copy link
Collaborator Author

allemangD commented Sep 16, 2024

https://open.cdash.org/builds/9907078/configure

I believe this is the root cause of the issues:

CMake Error: CMake can not determine linker language for target: HalideFilters
CMake Error in src/CMakeLists.txt:
Exporting the target "HalideFilters" is not allowed since its linker language cannot be determined

Due to HalideFilters library not having any source files; it only exports generated headers and Halide object file.

@allemangD
Copy link
Collaborator Author

allemangD commented Sep 16, 2024

Halide 19 is intended to be published on PyPI, and will provide CMake config files. It doesn't make sense at this point to handle our own workarounds to force the manylinux or other Python builds to work when this is already being done (and partially complete) in the Halide 19 PyPI efforts.

Once that work is complete, the best way to handle the Halide dependency will be to pip install halide, and link to it with CMake.

Halide could then simply be listed as a build dependency in the scikit-build pyproject.

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

Successfully merging a pull request may close this issue.

1 participant