Closed iamdavidcz closed 2 years ago
Have you tried using libsignal
's pinned Rust version, which currently is nightly-2021-09-16
?
Regarding the compilation issues, there's an ICE that appears to have already been reported in https://github.com/rust-lang/rust/issues/91015 (it could be worth mentioning this issue there explicitly as another example of where it might occur). According to https://github.com/rust-lang/rust/issues/91015#issuecomment-974094077, the issue may be solved if you turn off incremental compilation (I think that can be done by setting the environment variable CARGO_INCREMENTAL=0
).
Regarding error[E0786]: found invalid metadata files
, perhaps running cargo clean
and then building again may resolve it?
Not sure what specifically you could do about error: cannot determine resolution for the derive macro
but it may be better to first resolve the other issues, especially the ICE, after which this one might resolve itself.
@u32i64 I can confirm that with rust version 1.57.0-nightly (2c7bc5e33 2021-09-15)
toolchain libsignal
compiles just fine.
@jrose-signal what is the status of stable toolchain support on aarch64? I can see that https://github.com/signalapp/libsignal/pull/337 has been already merged. Does it mean that stable rust toolchain is now supported on aarch64 or there are still some blockers there?
The only use of nightly is to enable aarch64 builtins in some of our dependent packages that would otherwise run more slowly, so you should be able to use stable to compile; we just don't ourselves. There might be some places where this is enabled unconditionally by target, but that should only be in the bridge crates, not the base ones you'd use from other Rust code.
I just did a cross-compile cargo +stable check --target aarch64-unknown-linux-gnu
and it worked fine, so you should be good to go with stable. If that solves your immediate use case, let's close this; if not…we should probably still close this, cause you hit a nightly compiler bug rather than a bug in this library.
@jrose-signal I can confirm that with the latest stable toolchain rust version 1.60.0 (7737e0b5c 2022-04-04)
libsignal compiles fine. Probably it would be good idea to eventually migrate to stable toolchain instead of still relying on old nightly...
We can't do that without taking a speed hit, but we do update to newer nightlies every now and then.