This is an incomplete(!) list of things that I noticed to be missing when trying to build SerenityOS inside SerenityOS (much less successfully building or running).
Generally, building currently only works with Clang as the host compiler (so remember to export CC=clang CXX=clang++
), as GCC is not position-independent and will quickly run into memory allocation issues.
The remaining ports that need to be installed can be found here. Remember to symlink bash
to /bin/sh
, as our Shell is not POSIX-compatible.
serenity-on-serenity-host
from https://github.com/timschumi/serenitySERENITY_RAM_SIZE
, 1G
is not enough/bin/sh
to bash
in your sync-local.sh
serenity-on-serenity
branchexport CC=clang CXX=clang++
./Meta/serenity.sh build i686 Clang
for the whole system (includes the toolchain on first run) or ./Toolchain/BuildClang.sh
for just the toolchainSO_REUSEADDR
netdev
atomics.c.o
(i.e. _c
-suffix is not removed) (needs something like 8844762, should be fixed upstream)texinfo
/makeinfo
(and by extension, perl
) [binutils]_Unwind_Resume
is "missing" [GCC]tar
(more precisely the path extensions for long file names) (#12876)unzip
(#12510)install -D
(#12573)curl
CA certificate validation without extra flags (#12959)RPATH
/RUNPATH
in the ELF loader (#12631)cmp
command [binutils] (#13137)install -c
(no-op?) [binutils] (#13018)size_t
mismatch between GCC and LLVM [LLVM] (#12991)X86GenDisassemblerTables
contains a malformed modRMTable [LLVM] (#13006)python3
build the _ctypes
module [LLVM runtimes]ninja
from invalidating all build output on x86_64
(#13581)x86_64
(#13637)pick_gcc
less annoying when building with Clang (#13677)compiler-rt
runtimes experience random missed includes ("di_int: type name requires a specifier or qualifier") while compiling (appears if llvm/llvm-project@19c5cf4 is present in the llvm
Port) (#13949)pls
viable as a sudo
-replacement (#14414)unzip
cp --preserve=...
(#14571)du -k
(#14633)liblagom-core
does not find syscall{1,2,3}
(#15768)tar
(tar -xJf
) and by extension LibCompress
(#17884)Most of these are currently worked around by additional patches (serenity-on-serenity-host for the modifications on the host, and serenity-on-serenity for the modifications for building), but obviously running patch-less is the target :^)
Pay now to fund the work behind this issue.
Get updates on progress being made.
Maintainer is rewarded once the issue is completed.
You're funding impactful open source efforts
You want to contribute to this effort
You want to get funding like this too