Lighthouse

RISC-V support

Status: fails to build.

Log

Cross-compile

Install docker: Debian | Docker Docs

Add the user to the docker group: Post-installation steps | Docker Docs

Install cross:

$ cargo install cross
$ cross build --bin lighthouse --target riscv64gc-unknown-linux-gnu
...
error: failed to run custom build command for `xdelta3 v0.1.5 (http://github.com/sigp/xdelta3-rs?rev=4db64086bb02e9febb584ba93b9d16bb2ae3825a#4db64086)`

Caused by:
  process didn't exit successfully: `/target/debug/build/xdelta3-089e54b56a437ecd/build-script-build` (exit status: 101)
  --- stdout
  OUT_DIR = Some(/target/riscv64gc-unknown-linux-gnu/debug/build/xdelta3-544b6295ff28cbaf/out)
  OPT_LEVEL = Some(0)
  TARGET = Some(riscv64gc-unknown-linux-gnu)
  HOST = Some(x86_64-unknown-linux-gnu)
  cargo:rerun-if-env-changed=CC_riscv64gc-unknown-linux-gnu
  CC_riscv64gc-unknown-linux-gnu = None
  cargo:rerun-if-env-changed=CC_riscv64gc_unknown_linux_gnu
  CC_riscv64gc_unknown_linux_gnu = Some(riscv64-linux-gnu-gcc)
  cargo:rerun-if-env-changed=CC_KNOWN_WRAPPER_CUSTOM
  CC_KNOWN_WRAPPER_CUSTOM = None
  RUSTC_WRAPPER = None
  cargo:rerun-if-env-changed=CC_ENABLE_DEBUG_OUTPUT
  cargo:rerun-if-env-changed=CRATE_CC_NO_DEFAULTS
  CRATE_CC_NO_DEFAULTS = None
  DEBUG = Some(true)
  CARGO_CFG_TARGET_FEATURE = Some(a,c,m)
  cargo:rerun-if-env-changed=CFLAGS
  CFLAGS = None
  cargo:rerun-if-env-changed=TARGET_CFLAGS
  TARGET_CFLAGS = None
  cargo:rerun-if-env-changed=CFLAGS_riscv64gc_unknown_linux_gnu
  CFLAGS_riscv64gc_unknown_linux_gnu = None
  cargo:rerun-if-env-changed=CFLAGS_riscv64gc-unknown-linux-gnu
  CFLAGS_riscv64gc-unknown-linux-gnu = None
  CARGO_ENCODED_RUSTFLAGS = Some()
  cargo:rerun-if-env-changed=AR_riscv64gc-unknown-linux-gnu
  AR_riscv64gc-unknown-linux-gnu = None
  cargo:rerun-if-env-changed=AR_riscv64gc_unknown_linux_gnu
  AR_riscv64gc_unknown_linux_gnu = None
  cargo:rerun-if-env-changed=TARGET_AR
  TARGET_AR = None
  cargo:rerun-if-env-changed=AR
  AR = None
  cargo:rerun-if-env-changed=CROSS_COMPILE
  CROSS_COMPILE = None
  RUSTC_LINKER = Some(riscv64-linux-gnu-gcc)
  cargo:rerun-if-env-changed=ARFLAGS
  ARFLAGS = None
  cargo:rerun-if-env-changed=TARGET_ARFLAGS
  TARGET_ARFLAGS = None
  cargo:rerun-if-env-changed=ARFLAGS_riscv64gc_unknown_linux_gnu
  ARFLAGS_riscv64gc_unknown_linux_gnu = None
  cargo:rerun-if-env-changed=ARFLAGS_riscv64gc-unknown-linux-gnu
  ARFLAGS_riscv64gc-unknown-linux-gnu = None
  cargo:rustc-link-lib=static=xdelta3
  cargo:rustc-link-search=native=/target/riscv64gc-unknown-linux-gnu/debug/build/xdelta3-544b6295ff28cbaf/out
  cargo:rerun-if-env-changed=TARGET
  cargo:rerun-if-env-changed=BINDGEN_EXTRA_CLANG_ARGS_riscv64gc-unknown-linux-gnu
  cargo:rerun-if-env-changed=BINDGEN_EXTRA_CLANG_ARGS_riscv64gc_unknown_linux_gnu

  --- stderr

  thread 'main' panicked at /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bindgen-0.69.5/ir/context.rs:556:15:
  libclang error; possible causes include:
  - Invalid flag syntax
  - Unrecognized flags
  - Invalid flag arguments
  - File I/O errors
  - Host vs. target architecture mismatch
  If you encounter an error missing from this list, please file an issue or a PR!
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...
...
DEBUG: CMAKECONFIGDIR = /target/riscv64gc-unknown-linux-gnu/release/build/openssl-sys-919d683837af7360/out/openssl-build/install/lib/cmake/OpenSSL => CMAKECONFIGDIR = /target/riscv64gc-unknown-linux-gnu/release/build/openssl-sys-919d683837af7360/out/openssl-build/install/lib/cmake/OpenSSL, CMAKECONFIGDIR_REL_LIBDIR = cmake/OpenSSL
  "my" variable $KEYP masks earlier declaration in same scope at crypto/aes/asm/aes-riscv64-zkn.pl line 279.
  "my" variable $T0 masks earlier declaration in same scope at crypto/aes/asm/aes-riscv64-zkn.pl line 282.
  "my" variable $T1 masks earlier declaration in same scope at crypto/aes/asm/aes-riscv64-zkn.pl line 282.
  crypto/riscv64cpuid.s: Assembler messages:
  crypto/riscv64cpuid.s:67: Error: Instruction csrr requires absolute expression
  make[1]: *** [crypto/libcrypto-lib-riscv64cpuid.o] Error 1
  make[1]: *** Waiting for unfinished jobs....
  make: *** [build_libs] Error 2



  Error building OpenSSL:
      'make' reported failure with exit status: 2
      Command failed: cd "/target/riscv64gc-unknown-linux-gnu/release/build/openssl-sys-919d683837af7360/out/openssl-build/build/src" && MAKEFLAGS="-j --jobserver-fds=8,9 --jobserver-auth=8,9" "make" "build_libs"



make: *** [Makefile:72: build-riscv64] Error 101