-
Notifications
You must be signed in to change notification settings - Fork 112
fix lld/libomp misconfig in cibuildwheel #2248
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
base: main
Are you sure you want to change the base?
Conversation
34b6ac2 to
13b41e8
Compare
|
Going to run cibuildwheel locally to test this before merging it, on top of Alex's changes to the python deps |
|
ok so we actually have a slight problem here in that the manylinux specification forbids linking against openmp (linking against any shared lib not in this list implies noncompliance: https://peps.python.org/pep-0599/#the-manylinux2014-policy) I think to get this to work now I have to bundle |
|
Specifically Repairing wheel...
+ sh -c 'auditwheel repair -w /tmp/cibuildwheel/repaired_wheel /tmp/cibuildwheel/built_wheel/heir_py-0.0.2-cp311-abi3-linux_x86_64.whl'
INFO:auditwheel.main_repair:Repairing heir_py-0.0.2-cp311-abi3-linux_x86_64.whl
auditwheel: error: cannot repair "/tmp/cibuildwheel/built_wheel/heir_py-0.0.2-cp311-abi3-linux_x86_64.whl" to "manylinux_2_28_x86_64" ABI because of the presence of too-recent versioned symbols. You'll need to compile the wheel on an older toolchain.Repro (from a venv with CIBW_DEBUG_KEEP_CONTAINER=1 cibuildwheel --platform linux --archs x86_64Then after it fails, $ /opt/python/cp311-cp311/bin/python -m pip install auditwheel-symbols
$ /opt/python/cp311-cp311/bin/auditwheel-symbols --manylinux 2_28 /tmp/cibuildwheel/built_wheel/heir_py-0.0.2-cp311-abi3-linux_x86_64.whl
heir/abc is manylinux_2_28 compliant.
heir/heir-opt is not manylinux_2_28 compliant because it links the following forbidden libraries:
libgomp.so.1
heir/heir-translate is manylinux_2_28 compliant.
heir/libOPENFHEbinfhe.so is not manylinux_2_28 compliant because it links the following forbidden libraries:
libc.so.6 offending versions: GLIBC_2.32
libstdc++.so.6 offending versions: GLIBCXX_3.4.29
libm.so.6 offending versions: GLIBC_2.29
heir/libOPENFHEcore.so is not manylinux_2_28 compliant because it links the following forbidden libraries:
libc.so.6 offending versions: GLIBC_2.32
libm.so.6 offending versions: GLIBC_2.29
libstdc++.so.6 offending versions: GLIBCXX_3.4.29
heir/libOPENFHEpke.so is not manylinux_2_28 compliant because it links the following forbidden libraries:
libm.so.6 offending versions: GLIBC_2.29
libstdc++.so.6 offending versions: GLIBCXX_3.4.29, GLIBCXX_3.4.26
libc.so.6 offending versions: GLIBC_2.32
heir/libopenfhe.so is not manylinux_2_28 compliant because it links the following forbidden libraries:
libgomp.so.1
heir_py-0.0.2.data/data/bin/heir-opt is not manylinux_2_28 compliant because it links the following forbidden libraries:
libgomp.so.1
heir_py-0.0.2.data/data/bin/heir-translate is manylinux_2_28 compliant. |
|
The errors like |
|
Just to unblock releases at this point, I'm going to disable openmp in the heir-py build and file an issue. |
13b41e8 to
c0ae7ea
Compare
|
Another option: https://github.com/cerisier/toolchains_llvm_bootstrapped |
c0ae7ea to
957f26e
Compare
The forcing of the
lldlinker is breaking the cibuildwheel, and once I fixed that I found it was broken by a lack of openmp. I found a way to allowlibompandlibgompby using just the-fopenmpoption, which allows the compiler to pick the exact linker flag based on what's available on the system. Also needed to installlibgompin the cibuildwheel container.