-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
Functions missing in libjulia.so.1.7, no longer able to generate FFI bindings due to missing headers #41464
Comments
|
The header problems were fixed in #41308 so that will be fine in beta3 that leaves |
In general I wonder what the relation between functions marked with |
I've submitted PR #41466. @Taaitaaiger if you apply the patches we pointed to and rebuild Julia, does it then work? Would be good to discover if there are other issues so that they can be resolved with beta3. |
Thanks for the quick replies and patches, I should be able to test this later today. |
I've applied the changes from the three PRs and rebuilt Julia, this solves all my issues. Everything compiles and the tests succeed. |
Today I tried to migrate jlrs, a crate that provides bindings to the Julia C API for Rust, to Julia 1.7.0-beta2. I've run into two problems.
The first is related to how the low-level bindings are created: this uses bindgen which automatically generates Rust FFI bindings to C and C++ libraries. Previously this worked without any problems in combination with Julia, but now causes an error because the support directory and its contents are not available in the include directory. This can be solved relatively easily by creating a symlink to the support directory.
The second, larger issue, is that some functions that should be exported aren't actually exported by libjulia.so. Both
jl_get_pgcstack
andjl_field_index
are marked asJL_DLLEXPORT
. I can find the latter if I inspect libjulia.so.1.6 with nm, but I can't find either in libjulia.so.1.7. Compilation of tests eventually fails due to a linker error because it can't find these functions. If I redefine these two functions to just callexit(1)
in a custom C library everything compiles and the tests run untiljl_get_pgcstack
is called "outside" Julia.My code can be found here if that's useful: https://github.com/Taaitaaiger/jlrs/tree/dev-1.7
The text was updated successfully, but these errors were encountered: