-
Notifications
You must be signed in to change notification settings - Fork 163
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
iroh doesn't compiles on Android with Neon - ld: error: duplicate symbol: blake3_compress_in_place_portable
#1805
Comments
n0-computer/iroh-blake3#2 should fix this (hopefully) |
So the issue is that we had to fork blake3 to get some performance improvements for bao in. But it exports symbols, so if you have the normal blake3 in your dependencies there will be a collision. One way to solve this would be to directly use our iroh-blake3 instead of blake3 in your other code. But we realize that this is not always possible. We hope to get these very minor changes upstreamed to blake3 soon. |
Same here, just failed to compile deltachat/deltachat-core-rust#5041 on Android.
I tried to use
But it tries to replace with Trying to also use
If I try to use only patch, I fail because of rust-lang/cargo#9227:
results in
|
I also looked into fixing it in a generic way (with -fvisibility=hidden or so), but there is a single linking step that links libdeltachat, libblake3 and libiroh-blake3 together, at which point libdeltachat cannot say whether it wants a C symbol from libblake3 or libiroh-blake3 at each place:
|
@link2xt did you see n0-computer/iroh-blake3#2 as the fix to this? We should merge and depend on that really. |
Now that n0-computer/iroh-blake3#2 is merged, I can do
and this compiles on Android. I compiled deltachat/deltachat-core-rust#5041 and gossip works, but for some reason sending works only from Desktop to Android but not from Android to Desktop. Probably has something to do with missing syscalls on old Linux kernel that my Android phone is running and stuff like that, at least now I can debug it. |
i think this should be solved by the changes in iroh-blake3, and will be solved permanently by the new blake3 guts api that will allow us to directly build on blake3 without fork: https://github.com/BLAKE3-team/BLAKE3/tree/guts_api/rust/guts |
I believe this is fixed in the latest releases |
Android build settings:
iroh: v0.10
Error:
But if I disable Neon in my app crate with
iroh-blake3 = { version = "*", features = ["no_neon"]}
it compiles.The text was updated successfully, but these errors were encountered: