Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Register
  • Sign in
  • CMake CMake
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Issues 4,166
    • Issues 4,166
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 15
    • Merge requests 15
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • External wiki
    • External wiki
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • CMakeCMake
  • CMakeCMake
  • Issues
  • #23589
Closed
Open
Issue created Jun 04, 2022 by Andrew Kaster@ADKasterContributor10 of 15 checklist items completed10/15 checklist items

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:

  • (Optional) Support tls-model other than initial-exec: Will remove a patch from each llvm and gcc
    • https://www.akkadia.org/drepper/tls.pdf

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 Oct 14, 2022 by Andrew Kaster
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking