I am a newbie of seL4 and I am trying to get some understanding of it.
So, my first question is about the build system of seL4:
1. Why cmake has been taken to build it? I think there are at least two
shortcomings about current build system based on CMakeLists.txt:
- Some build options were implied in the CMakeLists.txt. It's not
easy to get a complete and comprehensive understanding of all the
options. And some options depends on other options. Such as,
./init-build.sh -DPLATFORM=odroidc2 -DAARCH64=1
A new guys couldn't get a support list of PLATFORM option, and
know AARCH64 is only for ARMv8 SoC easily.
- There are too much branches of platform or SoC Architectures. Such
if(KernelArmMach STREQUAL "exynos")
Linux Build System places the special build options and source files
into the directory related with each architectures, and will
generated a configure file (.config) during building. It's very good
in my opinion.
In Android Build System, a given project building inherits a common
build options set, and update these parts only related the given
project. It's very good for integration.
And I want to know if there is a plan to update the build system or
accept patches from volunteer?
2. I notice that, all kernel source files have been concatenated into a
kernel_all.c, and compile the kernel_all.c. Is there some special
reason for this step? It's a slight strange for me?
Anyway, I am a new guy. I just want to understand it and if I could
provide something to change it. Any comments are appreciated.
Show replies by date