Skip to content

SerenityOS: Tracking Compiler Upstreaming Progress

This issue is a mirror of the SerenityOS issue tracking the same status. Current OS patches for Toolchain projects live here:

In order to upstream SerenityOS patches into llvm-project, binutils, and gcc, the following steps need taken:

In SerenityOS/serenity:

Loader/Kernel/LibELF:

LibC:

  • Make<ctype.h> POSIX and C standard compliant. Remove hax from libc++ and libstdc++ patches pretending to be newlib.
  • (Optional) Unify libdl, libpthread, libc and libm into a mega-library to avoid cyclic dependencies in libstdc++
  • scanf improperly reads some integer types on x86_64 (Tim has patch in the works)
  • Remove _aligned_alloc and _aligned_free

GNU Autotools:

  • config.sub
  • config.guess
  • libtool.m4

Binutils:

  • Possibly find a way to remove the changed default base address of non-PIE executables? Ask on binutils mailing list if the patch is reasonable (Tim has patch in the works)
  • Upstream the patch

GCC/libstdc++:

  • Split patch up
  • Upstream patches

LLVM:

  • Remove _aligned_alloc patches from libc++
  • Remove patches from libc++ in <initializer_list>
  • Upstream patches
Edited by Andrew Kaster
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information