-
Notifications
You must be signed in to change notification settings - Fork 6
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
Explore shared lib creation #645
Comments
This works just fine on Linux. There are some questions re: the |
This would be a great way to solve #625! |
|
Doing this right also means providing a Python API to find the shared lib, as we'll end up moving a good bit of the C++ back-end to the shared lib. We'll also want to enable LTO by default. |
Relevant to macOS: https://gitlab.kitware.com/cmake/community/-/wikis/doc/cmake/RPATH-handling |
It is not obvious what auditwheel/delocate will do here. For example, they copy dependent libs to a new location. If we install our shared lib as package data, then it is possible that a plugin causes multiple versions of a symbol to be present at run time. |
All is fine on Linux! (Still requires #683 for stress testing, tho.) |
There is a problem, actually. If the shared lib also links to GSL, then that dependency is not relocated by auditwheel. |
A partial solution is to build the shared lib in another directory, so that it looks "external". This relocates the shared lib, which is great for run time, but makes it difficult/impossible to have plug ins link to it. |
pypa/auditwheel#136 needs a solution before we can proceed. |
We can close this. The best solution for now is the static lib approach introduced in 0.18.0 |
We should test the link in the answer here.
If this works, it'll probably improve build times by a lot.
Main question: does pip install still work?
To-do:
The text was updated successfully, but these errors were encountered: