Skip to content

fix wheel/sdist build #145

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

Open
wants to merge 5 commits into
base: main
Choose a base branch
from
Open

fix wheel/sdist build #145

wants to merge 5 commits into from

Conversation

lgarrison
Copy link
Member

The release pipeline is all kinds of broken! Both sdist and wheel builds are failing.

The sdist fix should be a quick one. The wheel build is failing on MacOS with a delocation error:

  delocate.libsana.DelocationError: Library dependencies do not satisfy target MacOS version 11.0:
  /private/var/folders/y6/nj790rtn62lfktb1sh__79hc0000gn/T/tmpnfrjuj62/wheel/jax_finufft/.dylibs/libfftw3f.3.dylib has a minimum target of 14.0
  /private/var/folders/y6/nj790rtn62lfktb1sh__79hc0000gn/T/tmpnfrjuj62/wheel/jax_finufft/.dylibs/libfftw3.3.dylib has a minimum target of 14.0
  Set the environment variable 'MACOSX_DEPLOYMENT_TARGET=14.0' to update minimum supported macOS for this wheel.

I think this is because we're brew-installing fftw, which is installing it for the current runner (macos-14) rather than the target platform (11.0). cibuildwheel mentions this pitfall: https://cibuildwheel.pypa.io/en/stable/faq/#macos-library-dependencies-do-not-satisfy-target-macos

finufft is now smart enough to fetch and build its own fftw through CPM, so if we're lucky, simply removing the brew install will be enough to fix this.

@lgarrison
Copy link
Member Author

FFTW is failing to compile:

2025-06-06T21:30:45.5680980Z   /Users/runner/work/jax-finufft/jax-finufft/build/cp310-cp310-macosx_11_0_arm64/_deps/fftw3-src/simd-support/x86-cpuid.h:137:16: error: invalid output constraint '+a' in asm
2025-06-06T21:30:45.5681060Z                : "+a" (*eax), "+r" (*ebx), "+c" (*ecx), "+d" (*edx));

etc.

But finufft appears to be doing what we're trying to do, so let's try copying their config.

@lgarrison
Copy link
Member Author

Well, now the error has moved to libomp, which we're brew-installing:

  /private/var/folders/y6/nj790rtn62lfktb1sh__79hc0000gn/T/tmpl6vtqjie/wheel/jax_finufft/.dylibs/libomp.dylib has a minimum target of 14.0
  Set the environment variable 'MACOSX_DEPLOYMENT_TARGET=14.0' to update minimum supported macOS for this wheel.

Our options at this point may be (1) disabling libomp for old macos wheels, (2) not building wheels for old macos (I think we could do >=13 for Intel and >=14 for ARM via GH Actions), or (3) trying to set up builds using an old macos image on Jenkins.

I'm inclined to go with (2), unless @dfm has any ideas?

@dfm
Copy link
Collaborator

dfm commented Jun 6, 2025

Let me take a look later this weekend!

@dfm dfm mentioned this pull request Jun 7, 2025
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 this pull request may close these issues.

2 participants