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

musllinux: builds OK, during testing symbols not found #1376

Open
brenthuisman opened this issue Dec 15, 2022 · 4 comments
Open

musllinux: builds OK, during testing symbols not found #1376

brenthuisman opened this issue Dec 15, 2022 · 4 comments

Comments

@brenthuisman
Copy link
Contributor

brenthuisman commented Dec 15, 2022

Description

I'm testing out building musl wheel in our project. The builds pass (after a tiny modification), but our tests don't. They go wrong in the tests where we call a secondary binary packaged with our wheels (modcc): errors like _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7reserveEm: symbol not found pop up, indicating a linking error.

Part of our workflow is a post repair-wheel command; we use scikit-build, see also pypa/auditwheel#363

When I remove that custom command, perhaps another hint reveals itself: ImportError: Error loading shared library libstdc++-a9383cce.so.6.0.28: No such file or directory (needed by /tmp/tmp.cPnBgl/venv/lib/python3.7/site-packages/arbor/_arbor.cpython-37m-x86_64-linux-gnu.so). Perhaps we're linking erroneously to libstdc++? I'm not sure if this is our fault, since modcc is separate and perhaps not seen by cibuildwheel, but maybe it should?

Build log

https://github.com/brenthuisman/arbor/actions/runs/3686509310/jobs/6238841756#step:7:6565

CI config

https://github.com/arbor-sim/arbor/blob/master/.github/workflows/ciwheel.yml

llandsmeer pushed a commit to arbor-sim/arbor that referenced this issue Dec 15, 2022
* Python Wheel workflow uses `ubuntu-20.04` to fix the build
  * In #2058 I forgot to update `ciwheel.yml`
* Why this is necessarily: still have not figured it out. `cibuildwheel`
builds and tests in it's own container...
  * [x] https://github.com/brenthuisman/arbor/actions/runs/3704419712
* Small change to make `musllinux` wheels build. They don't pass testing
yet, so I don't add them to the workflow but that can be solved/added
[later](pypa/cibuildwheel#1376)
* The reason for using `ubuntu-20.04` in the Spack workflow should [no
longer exist](actions/runner-images#6724).
@joerick
Copy link
Contributor

joerick commented Jan 16, 2023

It looks like this is an auditwheel issue, would you agree?

@brenthuisman
Copy link
Contributor Author

brenthuisman commented Jan 17, 2023

Possibly, but I'm not convinced yet. This may be due to my unfamiliarity with musl though. The libstdc++ error refers to a library that isn't bundled in the regular builds, not would I expect that. My first thought was that our CMake is not building against musl correctly (or at all). I just don't know which part is supposed to handle this, or is trying to handle it.

The wheel is passing other tests, not involving the external tool, which indicates auditwheel did work.

@joerick
Copy link
Contributor

joerick commented Apr 1, 2023

did you learn any more about this?

@brenthuisman
Copy link
Contributor Author

Unfortunately not. We merged the changes that make the build pass, but before we upload them, we'll need to check this issue again. If you have any idea of how to diagnose this further, I'd gladly take a look.

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

No branches or pull requests

2 participants