-
Notifications
You must be signed in to change notification settings - Fork 540
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
[BUG] Regression: libHarfBuzzSharp.so uses symbols from the system libharfbuzz.so.0 which causes SIGSEGV #3038
Comments
I suspect that the proper solution would be to generate some wrappers with |
Also, linking with -Bsymbolic could help too:
|
It's not about the way the .NET or app itself resolve functions nor about the way they call those. It's about native symbols being misresolved by the native linux shared library loader when it lazy-loads parts of Unlike PE files, ELF shared libraries were designed to emulate static libraries, so the naming space is process-global and it's possible to accidentally replace internally used symbols that are externally visible. i. e. the following happens:
It can even happen if Yes, this is rather unexpected and surprising behavior, but the person who decided for it to work like that is probably not even alive today. The previous workaround was passing Note, that the issue doesn't manifest itself in every scenario and provided repro requires GtkSharp specifically, because GtkSharp uses The workaround I'm currently using is to load There are two ways to solve this issue:
|
I see. Are you able to build skia with Option 2 is a lot more work so hopefully option 1 works. I typically just exposed everything in the harfbuzz library via the generator, so it will be a lot to wrap. |
This was previously fixed by #2247, however LibraryLoader is only used for netfx builds, net6.0 build doesn't contain it anymore.
As of the issue details, see the original PR
Repro:
Use GtkSharp and the following code:
The text was updated successfully, but these errors were encountered: