Public
Authored by Mikhail Chystsiakou 🤝

How to build Redox 0.5.0

Step-by-step description of how to build 0.5.0 version of Redox (actual on 29.05.19).

Edited
howto.md 1.91 KB
  • Sometimes package compilation fails because of ("use of unstable library feature 'transpose_result'"). This is because rust cross-compiler built for 0.5.0 does not support this feature without explicit declaration, but later one does. So #![feature(transpose_result)] was removed after 0.5.0 release from redox_syscall library. But recipes from redox 0.5.0 don't specify concrete version of this dependency and cargo tries to use redox_syscal v0.1.54 (without feature declaration already) and compilation fails. Solutions are:

    • hardcode path to local redox_syscall (0.1.51 for redox 0.5.0): redox_syscall = { path = "/home/mich/redox-old/redox5/kernel/syscall/"}
    • use cargo override : change version of local redox_syscall to 0.1.54 and add paths = ["/home/mich/redox-old/redox5/kernel/syscall/"] to ~/.cargo/config (about)
    Edited by Mikhail Chystsiakou
  • I've had the drivers recipe fail building because it references a SHA for mio-uds that doesn't exist as far as I can tell (https://gitlab.redox-os.org/redox-os/mio-uds#2936ef82070ea0c4aa8a7360455b8c512d8c88c0). To get around this, I manually set the Cargo.lock for drivers to something I'd thought would work. May be a better procedure here but this worked for me.

    diff --git a/Cargo.lock b/Cargo.lock                                                                                                                          
    index b1852a7..9d29638 100644
    --- a/Cargo.lock
    +++ b/Cargo.lock
    @@ -329,8 +329,8 @@ dependencies = [
    
     [[package]]
     name = "mio-uds"
    -version = "0.6.6"
    -source = "git+https://gitlab.redox-os.org/redox-os/mio-uds#2936ef82070ea0c4aa8a7360455b8c512d8c88c0"                                                        
    +version = "0.6.7"
    +source = "git+https://gitlab.redox-os.org/redox-os/mio-uds#22580ca398cdb5ed6f50fb61134e5579e2213999"                                                        
     dependencies = [
      "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
      "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)",
    
  • Similar issue with the netstack and netutils recipie

Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment