Skip to content

Ruffle won't build due to cross-compilation problem

Ruffle fails to build due to the following twists and turns:

  • Ruffle has a build.rs that uses Camino. This build.rs is compiled for the Linux target, but our toolchain is causing it to use the Redox std:: library.
  • Redox has a modified std library with std::path::Path containing a Prefix variant. The Prefix variant is not guarded, it applies to all targets. The Prefix variant should be marked deprecated; it is mostly not needed now but there may be some programs that are still using it. Someone needs to verify.
  • Camino's published crate does not support the Prefix variant, and it was decided that we should not upstream that support as Prefix should be deprecated.
  • There exists a Redox fork of Camino with support for Prefix at https://github.com/rw-vanc/camino on branch redox-scheme. However, the Prefix support is guarded so it is only present on the "redox" target.
  • So, build.rs does not compile.
  • A short-term fix would be to create a Camino fork that has support for Prefix that is not guarded.
  • A better fix would be to not use Redox's std:: library when compiling build.rs files on Linux.
  • The best fix would be to determine if we can eliminate the Prefix variant from std::path::Path.
Edited by Ribbon