Fixed
Details
Details
Assignee
Scott Murray
Scott MurrayReporter
Scott Murray
Scott MurrayFix versions
Labels
Contract ID
Components
Affects versions
Priority
Created August 23, 2023 at 7:12 PM
Updated February 9, 2024 at 4:50 PM
Resolved December 21, 2023 at 9:38 PM
While testing the fix for , it was observed that the databroker fails to build for qemuriscv64. Upon investigation, the root cause is a crate ("ring") in the dependency hierarchy that builds and wraps C and asm cryptography implementations. This issue will track working up a fix/workaround to get the databroker to build. Initial investigation indicates:
The ring crate does not have RISC-V support upstream, but there have been several different pull requests with different implementations over the last few years.
None of the RISC-V support pull requests apply in a straightforward way to the stable release of the crate that is currently available (0.16.20). That release is roughly three years old.
Applying a patch to a crate in the kuksa-databroker recipe is workable with careful setting of the patchdir option in SRC_URI.
cargo has some provision for configuring a different version and/or source of a crate with its own patch directive in Cargo.toml. Any changes seem likely to require also patching Cargo.lock to match.
It is likely that a fix will be either:
Working up a set of patches on top of ring 0.16.20 that get one of the RISC-V pull request patches to usefully apply.
Forcing the use of either the 0.17 alpha version of ring from crates.io, or an explicit clone of the github repo, then patching the RISC-V support from the latest pull request on top.