Changing rust-root-task-demo from targeting aarch64 to x86_64

Dear Community,

I am a completely new seL4 developer wanting to explore possibilities with Rust on seL4. I have successfully booted the sel4/rust-root-task-demo repository’s system with the default configuration. However it builds for aarch64, and I would like to experiment by targeting x86_64 as I am more familiar with its virtual memory mechanisms and its instruction set so debugging and inspecting the system would be easier.

I changed the dockerfile to target the pc99 target platform instead of the default aarch64, however the sel4-platform-info crate throws an error because if I build this way, the support/platform_gen.yaml file is missing.

I tried to figure out the error on my own, but I got lost in the build system.

Does anyone have any idea about how could I resolve this problem?

Here are below two files - the first one is my Dockerfile, the second is the build log…

Thank you in advance.

Dockerfile:
https://paste.debian.net/hidden/53d0c421
Error:

https://paste.debian.net/hidden/a6857b98

Booting seL4 on x86 platforms works differently than arm and riscv platforms. The build error you observed is most immediately caused by the fact that platform_gen.yaml doesn’t exist on x86 platforms. However, the real issue is that the sel4-kernel-loaderprogram, which depends on the sel4-platform-info crate, is not needed to boot seL4 on x86 platforms, and it does not support those platforms.

This branch [1] shows how you could modify that demo’s Dockerfile and Makefile to target x86_64. Note how sel4-kernel-loaderis cut out.

[1] GitHub - nspin/rust-root-task-demo at demo/x86_64 · GitHub