seL4 / microkit

Microkit - A simple operating system framework for the seL4 microkernel
Other
70 stars 37 forks source link

Building "release" config fails #25

Closed podhrmic closed 1 year ago

podhrmic commented 1 year ago

The build seems to be currently broken:

...
-- Installing: /work/galois-sel4cp/build/imx8mm/release/sel4/install/libsel4/include
CMake Error at build/imx8mm/release/sel4/build/cmake_install.cmake:51 (file):
  file INSTALL cannot duplicate symlink

    /work/breakaway-seL4/libsel4/sel4_plat_include/imx8mm-evk

  at

    /work/galois-sel4cp/build/imx8mm/release/sel4/install/libsel4/include

  because: A directory already exists at that location

This seems to be related to something in https://github.com/BreakawayConsulting/seL4/tree/sel4cp-core-support because building the SDK works with this fork of the kernel: https://gitlab.com/coliasgroup/seL4/-/commits/rust-sel4cp?ref_type=heads

The build also works (==it compiles, I haven't tested it further) with the latest master of the kernel: https://github.com/seL4/seL4

Could the vanilla version of the kernel be used?

Ivan-Velickovic commented 1 year ago

I believe this is the same issue as https://github.com/BreakawayConsulting/sel4cp/issues/22. The mainline kernel cannot be used as there is a patch to the kernel's boot process required (https://github.com/BreakawayConsulting/seL4/commit/c8ef493d038b81cc43f82c0190788e4b3bdb4d9d). You'll see that Nick's fork of the kernel also contains the same patch.

podhrmic commented 1 year ago

Got it, thanks - I will close this one as a duplicate. Is the kernel patch sufficiently mature so it can be merged upstream? Or does it have some wider implications?

Ivan-Velickovic commented 1 year ago

The only issue I see with it is that it would affect other bootloaders that jump to seL4 as the patch adds two arguments to the kernel's entry point. I will try discuss upstreaming it with @bennoleslie.