Skip to content

Missing ports for partial self-hosting #39

@Dennisbonke

Description

@Dennisbonke

For managarm to be partially self hosting, meaning that we can compile managarm-kernel and managarm-system on managarm with the sources patched and available from the host, so that we only need to configure and build them, the following packages are needed (possible incomplete list):

  • meson, managarm's primary build system is meson.
  • ninja, managarm's primary builder is ninja.
  • xbstrap, managarm's master build system is executed by xbstrap, this needs some additional python modules as well.
  • pyyaml, xbstrap depends on pyyaml.
  • colorama, xbstrap depends on colorama.
  • jsonschema, xbstrap depends on this python module.
  • attrs, xbstrap depends on this python module.
  • pyrsistent, xbstrap depends on this python module.
  • llvm + clang, while we do build llvm, we do not build clang, the kernel is compiled with clang, and as such, this is needed.
  • setuptools, required dependency for pip.
  • pip, in order to be able to install python packages without much trouble, pip is required. Porting pip and setuptools, and having the proper networking support to back it up, can remove the requiremenst on pyyaml, colorama and xbstrap, as we can pull them from pip directly in that case.

Furthermore, the following ports require extra attention:

  • binutils, currently works, but when called from a makefile as crashes
  • gcc, gcc works, but invoking g++ fails, furthermore, calling gcc as cc (a symlink mandated by the FHS, and used for compatibility reasons in many build systems), crashes in mlibc (see issue Crash when executing a symlink mlibc#93) (This has been fixed in the meantime)
  • python, more modules need to be available, and several python packages need to be ported
  • pkg-config, fails when running, complains about ungetc()

Metadata

Metadata

Type

No type

Projects

Status

In progress

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions