Skip to content

Releases: dslm4515/CMLFS

Stable 2.0.0 - LLVM 12.0.0 x86_64

24 Jul 06:16
Compare
Choose a tag to compare

Stable Version 2.0.0

New features:

  • Upgraded to LLVM 12.0.0
  • GCC now builds for llvmtools and final system
  • Eliminated /opt/gnu and /llvmtools/gnu. GCC will now be installed in /llvmtools and /usr
  • Elfutils can be patched to build under LLVM
  • Added script to switch between GCC or LLVM as system compiler system
  • Added script to switch between GNU's binutils or LLVM's binary tools
  • Zlib or Zlib-ng can be built
  • Ninja or Samurai can be built.
  • Build initramfs image without the mkinitramfs script

Issues:

  • Skarnet's utmps segfaults if built with clang
  • Diskboot.img of grub is not correctly built with clang. Grub requires GCC and patching.
  • Perl 5.34.0 fails to cross-compile for llvmtools. Use perl 5.32.1 for llvmtools and perl 5.34.0 for final system
  • Perl will not build with system installed zlib-ng. Use perl's bundled zlib source as a workaround.

Changelog

  • Upgraded to LLVM 12.0.0
  • Added ncurses to llvmtools
  • Ncurses now must be built before LLVM for both llvmtools and final system
  • Removed libffi and libuv from llvmtools, CMake and Python will build with bundled versions
  • No longer install GCC, gmp, mpfr, & mpc in /opt/gnu and /llvmtools/gnu
  • Added patch for kernel headers to build under Musl
  • Added os-release file
  • Upgraded procps to 3.3.17
  • Upgraded findutils to 4.8.0 for llvmtools
  • Upgraded expat to 2.4.1
  • Updated build for inetutils 2.0
  • Upgraded bison to 2.7.6
  • Upgraded libcap to 2.50
  • Upgraded acl to 2.3.1
  • Upgraded attr to 2.5.1
  • Upgraded utmps to 0.1.0.2
  • Upgraded cmake to 3.20.4
  • Upgraded GCC to 10.3.1_git20210424 (Alpine Linux fork)
  • Added -fPIC cflag to bzip2 build
  • Changed LLVM builds from MinSizeRel to Release
  • Switched build files from ninja to make
  • llvmtools: build optional GCC with cgnutools, instead of cross-tools.

Release Files

  • cgnutools-LLVM12-musl_amd64-2.0.0.tar.xz : cgnutools that runs on x86_64 musl hosts
  • gnutools-LLVM12-glibc_amd64-2.0.0.tar.xz : cgnutools that runs on x86_64 glibc hosts
  • llvmtools-LLVM12-AMD64-cmlfs4-2.0.0.tar.xz : llvmtools that runs on both x86_64 glibc/musl hosts

First Completed Build

25 Apr 07:12
8a4b629
Compare
Choose a tag to compare

First completed build. Build is rough, but boots and runs. Several built libraries and binaries have messy run paths like:

/usr/bin/../lib/libLLVM-11.so

Instead of

/usr/lib/libLLVM-11.so

Libelf from elfutils still requires GCC to build and building grub with clang results in a grub install with a malformed diskboot.img that is 525 bytes instead of 125mb/513mb.

Beta 0.1.3 for x86_64

21 Apr 04:35
Compare
Choose a tag to compare
Beta 0.1.3 for x86_64 Pre-release
Pre-release

First successful build of CMLFS! Clang+LLVM are the main system toolchain with GCC+GNU-Binutils as secondary toolchain in /opt/gnu. GMP, MPFR, and MPC were installed in /opt/gnu. In next release, all three will probably be installed in /usr instead.

LLVM's lld is the system default linker and ld.bfd and ld.gold are available in /opt/gnu/bin

Userland is built, but not the kernel yet.

First Release (Broken Build)

06 Apr 20:32
Compare
Choose a tag to compare
Pre-release

First attempt in creating a LLVM toolchain without GCC. Stage 2 clang fails to build. Using LLVM 11.0.0.
Based on Genshen's docker-clang-toolchain