dslm4515 / Musl-LFS

Linux From Scratch using Musl as Libc
GNU General Public License v3.0
170 stars 21 forks source link
lfs musl-lfs musl-libc

Musl-LFS

Linux From Scratch using Musl as Libc and S6+S6-rc as init system

This is based on the works of Linux From Scratch (http://www.linuxfromscratch.org), which use GLibc and SysVinit/systemD. Additional work was derived from Void Linux (https://voidlinux.org), Alpine Linux (https://alpinelinux.org), and Dragora Linux (https://dragora.org). For logging during development of tool chains, I used porg from http://porg.sourceforge.net/.

The aim of this project is to create a create a Linux system using Musl (www.musl-libc.org) instead of GNU's Glibc and S6 (https://skarnet.org/) instead SysVinit.

Supported Architectures

Goals:

Build Method

MLFS is based on LFS 9.1 and composed of 3 stages: cross-tools, tools, and chroot.

  1. Cross-Tools -- Create a very basic toolchain with host's own tool chain. THis will be used to build the next stage. It also allows the next stage to use Musl Libc instead of Glibc.
  2. Tools -- Creates the tool chain that will be used in the next stage. Resulting toolchain is sandboxed from host and uses its own libc: Musl
  3. Chroot -- Last stage in which the final Musl system is built, using the tool chain built in the previous stage

Starting with LFS 10.x, LFS now uses as new method and has not been tested to work with MLFS at this time.

Tested Builds

Host Target Build Status
i686-musl i686-musl Pass
i686-glibc i686-musl Pending
x86_64-musl x86_64-musl Pass
x86_64-glibc x86_64-musl Pass
aarch64-glibc aarch64-musl Pass
armv7l-glibc armv7l-musl Pass
armv7l-musl armv7l-musl Pending
armv6-glibc armv6-musl Pending
armv6-musl armv6-musl Pending

ARM builds will need some modification based on specific hardware

Additional Required Packages

If pursuing BLFS, some packages will fail to compile due certain implementions left out in the Musl C Library.

Optional Packages:

Projects of Interest

Layout

Changelog (since 8.00)