-
Notifications
You must be signed in to change notification settings - Fork 59
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
Fat binaries of static libraries are not supported in the wheel #229
Comments
Got the same error here: https://github.com/njzjz/mdtraj/actions/runs/10816173115/job/30006767453 |
Oh, it seems that it has been discussed in #227 |
This is a duplicate of #227, but this issue was better researched and written than the other one. This check was specifically to figure out compatibility of the whole wheel, so it makes sense to check every file, even those not touched by Delocate.
|
Sorry for opening a new issue, I didn't see that it was the same. I ran
Of interest is probably Note that |
It'd just need to replace delocate/delocate/delocating.py Line 602 in b0c3781
I was hoping that there might be some easy way to parse the output into a Python object. So that it can be used as easily as
Sometimes it's also
When you use |
Command
|
Describe the bug
The new check to ensure the minimum macOS version of all MachO generates an error when fat binaries of static libraries are included in the wheel.
Our python wheel includes JIT compilation support using LLVM. For this we need to bundle some static libraries in the wheel that are used by the JIT linker. One of these static libraries
libclang_rt.osx.a
is a fat binary containing multiple architectures (e.g.arm64
andarm64e
). The other "simple" static libraries are correctly ignored.To Reproduce
Steps used to reproduce the behavior, such as the delocate commands used.
python -m delocate.cmd.delocate_wheel $WHEEL_PATH -w $WHEELHOUSE_PATH
Expected behavior
Delocating the wheel is successful, as in version 0.10.7.
Proposals:
Wheels used
Unfortunately the wheel is private by my company.
Platform (please complete the following information):
Additional context
My understanding of the problem is as follows. The
_calculate_minimum_wheel_name
looks at all the files in the wheel. It sees the static library and because it's a fat binary it contains the MachO magic number (0xCAFEBABF). Now it assumes that it's a dynamic library and looks for the magic number (0xFEEDFACF) for single binaries at the offsets given by the header. This magic number is missing because it's a static library, not a dynamic one.The text was updated successfully, but these errors were encountered: