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

Symbols __atomic_XXX not found in i686-linux-android target #1141

Open
dangeross opened this issue Dec 9, 2024 · 3 comments
Open

Symbols __atomic_XXX not found in i686-linux-android target #1141

dangeross opened this issue Dec 9, 2024 · 3 comments

Comments

@dangeross
Copy link
Collaborator

Symbols relating to atomics are not being found for the i686-linux-android target:

Caused by: java.lang.UnsatisfiedLinkError: Unable to load library 'breez_sdk_bindings':
    dlopen failed: cannot locate symbol "__atomic_fetch_add_8" referenced by "/data/app/com.cBreez.client.debug-1/base.apk!/lib/x86/libbreez_sdk_bindings.so"...
    dlopen failed: cannot locate symbol "__atomic_fetch_add_8" referenced by "/data/app/com.cBreez.client.debug-1/base.apk!/lib/x86/libbreez_sdk_bindings.so"...
    dlopen failed: cannot locate symbol "__atomic_fetch_add_8" referenced by "/data/app/com.cBreez.client.debug-1/base.apk!/lib/x86/libbreez_sdk_bindings.so"...
    Native library (android-x86/libbreez_sdk_bindings.so) not found in resource path (.)

This seems to originate from the rust-openssl crate where versions > 0.10.57 (openssl-sys > 0.9.92) where there is a mishandling of atomics for i686, and pinning the version to the following works:

openssl = { version = "=0.10.57", features = ["vendored"] }
openssl-sys = "=0.9.92"

sfackler/rust-openssl#2163
sfackler/rust-openssl#2043

@JssDWt
Copy link
Contributor

JssDWt commented Dec 12, 2024

Given the sdk has a 'soft' dependency to 0.10, clients have the option to downgrade openssl themselves. Perhaps we can document this issue for 32 bit devices and recommend developers to downgrade openssl themselves?

@dangeross
Copy link
Collaborator Author

Given the sdk has a 'soft' dependency to 0.10, clients have the option to downgrade openssl themselves. Perhaps we can document this issue for 32 bit devices and recommend developers to downgrade openssl themselves?

@JssDWt This would only work for Rust clients right?, not the bindings

@JssDWt
Copy link
Contributor

JssDWt commented Dec 12, 2024

@JssDWt This would only work for Rust clients right?, not the bindings

True, they would have to either build the bindings themselves, or replace the underlying sdk binaries.

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