# 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
<ul>
<li>i686/i586 : Stable and tested. Stable enough to build Xorg, Qt5 (without QT-webengine), Rust, and Firefox.</li>
<li>x86_64 : Stable and tested. Stable enough to build Xorg, Qt5, Rust, and Firefox.</li>
<li>aarch64: Stable and tested. Stable enough to build Xorg, Qt5, Rust, and Firefox.</li>
<li>armv7/armv6: Builds fine. Requires modification to suit target hardware.</li>
</ul>
## Goals:
<ul>
<li> [x] Properly name patches to reflect origin (i.e. Alpine or void) </li>
<li> [ ] Create a list for wget to download sources.</li>
<li> [ ] Create md5s list for sources</li>
<li> [ ] Update s6-rc & s6 to lastest version </li>
<li> [x] Redesign tool chain build to avoid two build passes of binutils and GCC</li>
<li> [ ] Generate HTML 'book' like LFS</li>
<li> [ ] Add utmp/utmpx implementation</li>
<li> [ ] Transition from pkgconfig to pkgconf</li>
<li> [ ] Transition from gettext to gettext-tiny?</li>
<li> [ ] POSIX compatibility </li>
</ul>
## 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.
<ul>
<li>Musl C Library
https://www.musl-libc.org/</li>
<li>Musl-FTS
https://github.com/pullmoll/musl-fts</li>
<li>Musl-Obstack
https://github.com/pullmoll/musl-obstack</li>
<li>Musl-RPmatch
https://github.com/pullmoll/musl-rpmatch</li>
<li>Musl-Legacy-Compatibility Headers
https://github.com/void-linux/void-packages/blob/master/srcpkgs/musl-legacy-compat </li>
<li>Argp-Standalone
https://github.com/jahrome/argp-standalone</li>
</ul>
## Optional Packages:
<ul>
<li>LibreSSL (instead of OpenSSL)
https://www.libressl.org/</li>
<li>GNU Nano (Text Editor)
https://www.nano-editor.org/ </li>
</ul>
## Projects of Interest
<ul>
<li>gCompat - "The gcompat project provides a glibc-compatible runtime environment for distributions that use musl libc."
https://code.foxkit.us/adelie/gcompat</li>
<li> Locales - "Locale program for musl libc"
https://github.com/rilian-la-te/musl-locales </li>
<li>Mussel - "...the shortest and fastest script available today to build working cross compilers that target musl libc."
https://github.com/firasuke/mussel </li>
<li>shimmy - POSIX:registered: compatibility shims for Linux (and other environments)
https://code.foxkit.us/adelie/shimmy</li>
<li>gettext-tiny - It provides lightweight replacements for tools typically used from the GNU gettext suite.
https://github.com/AdelieLinux/gettext-tiny</li>
</ul>
## Layout
<ul>
<li>build-scripts - [WIP] Build scripts to use to semi-automate building /cross-tools, /tools, and the final system</li>
<li>contrib - Additional sources that are hard to find or re-packed
<li>doc - Build instructions to build a LFS installation that uses Musl instead of Glibc and S6 instead of SysVint.</li>
<li>extra - Helpful scripts to mount, chroot, and umount a MLFS build.</li>
<li>files - Files that will be needed during the build</li>
<li>patches - All patches used to patch sources to work/recognize Musl C Library</li>
<li>sources.list - List of sources to download
</ul>
## Changelog (since 6.00)
<ul>
<li>Upgraded to GCC-10.2.0 and several other packages</li>
<li>Added musl-rpmatch to build</li>
<li>Add zstd to build</li>
<li>Changed tool chain build flow to build binutils and GCC once</li>
<li>Added nano text editor for tool chain - Helps with troubleshooting</li>
<li>Updated patches and files directory scheme to reflect origins</li>
<li>Removed porg. Recommend use of Slackware's pkgtools</li>
</ul>
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
肌肉LFS Linux From Scratch,使用Musl作为Libc和S6 + S6-rc作为初始化系统 这是基于Linux From Scratch( )的工作,该工作使用GLibc和SysVinit / systemD。 其他工作来自Void Linux( ),Alpine Linux( )和Dragora Linux( )。 为了在开发工具链期间进行日志记录,我使用了porg。 该项目的目的是使用Musl( )代替GNU的Glibc和S6( )创建一个Linux系统,而不是SysVinit。 支持的架构 i686 / i586:稳定且经过测试。 足够稳定,可以构建Xorg,Qt5(无QT-webengine),Rust和Firefox。 x86_64:稳定且经过测试。 足够稳定以构建Xorg,Qt5,Rust和Firefox。 aarch64:稳定且经过测试
资源详情
资源评论
资源推荐
收起资源包目录
Musl-LFS:使用Musl作为LibcLinux From Scratch (292个子文件)
00-headers 571B
00-Musl 812B
000-Preparation 3KB
001-Cross-Tools-Kernel_Headers 549B
001-CT-BUILD 488B
002-Cross-Tools-Binutils 552B
002-TC-BUILD 440B
003-Cross-Tools-GCC-Static 1KB
004-Cross-Tools-Musl 848B
005-Cross-Tools-GCC-Final 2KB
006-Cross-Tools-File 215B
007-Tool_Chain-Musl 1KB
008-Adjust_Cross_ToolChain 2KB
009-Tool_Chain-Binutils 1KB
01-Adjust_toolchain 1KB
01-binutils 604B
010-Tool_Chain-GCC 4KB
011-Tool_Chain-Kernel_Headers 604B
012-Tool_Chain-Adjust_Tool_Chain 2KB
013-Tool_Chain-Libstdcxx 2KB
014-Tool_Chain-TCL 837B
015-Tool_Chain-Expect 1KB
016-Tool_Chain-DejaGNU 648B
017-Tool_Chain-M4 569B
018-Tool_Chain-Ncurses 765B
019-Tool_Chain-Bash 1KB
02-Binutils 1KB
02-gcc-static 1KB
020-Tool_Chain-Bison 576B
021-Tool_Chain-Bzip2 936B
022-Tool_Chain-Coreutils 1KB
023-Tool_Chain-Diffutils 584B
024-Tool_Chain-File 644B
025-Tool_Chain-Findutils 765B
026-Tool_Chain-Gawk 573B
027-Tool_Chain-Gettext 699B
028-Tool_Chain-Grep 559B
029-Tool_Chain-Gzip 561B
03-GCC 3KB
03-musl 495B
030-Tool_Chain-Make 609B
031-Tool_Chain-Patch 579B
032-Tool_Chain-Perl 1KB
033-Tool_Chain-Sed 566B
034-Tool_Chain-Tar 568B
035-Tool_Chain-Texinfo 579B
036-Tool_Chain-Xz 577B
037-Tool_Chain-Lzip 715B
038-Tool_Chain-Nano 818B
039-Stripping_and_Ownership 2KB
04-gcc_final 2KB
04-Headers 514B
040-Prepare_VKFS 530B
041-Enter_Chroot 285B
042-Create_Directories 686B
043-Create_Essential_Files_and_Links 2KB
044-Final_System-Kernel_Headers 1019B
045-Final_System-Man_pages 170B
046-Final_System-Musl 2KB
047-Final_System-Adjust_Toolchain 3KB
048-Final_System-Time_Zone_Utilities 945B
049-Final-System-Argp-standalone 429B
05-file 367B
05-libstcxx 2KB
050-Final-System-Zlib 321B
051-Final-System-File 209B
052-Final-System-Readline 741B
053-Final-System-M4 205B
054-Final-System-Bc 269B
055-Final_System-Binutils 2KB
056-Final_System-GMP 666B
057-Final_System-MPFR 381B
058-Final_System-MPC 297B
059-Final_System-Shadow 1015B
06-TCL 846B
060-Final_System-GCC 7KB
061-Final_System-Bzip2 651B
062-Final_System-Pkg_config 390B
063-Final_System-Ncurses 1KB
064-Final_System-attr 452B
065-Final_System-ACL 460B
066-Final_System-Libcap 415B
067-Final_System-Sed 181B
068-Final_System-PSMisc 257B
069-Final_System-Iana-etc 172B
07-Expect 1KB
070-Final_System-Bison 216B
071-Final_System-Flex 296B
072-Final_System-Grep 189B
073-Final_System-Bash 357B
074-Final_System-Libtool 189B
075-Final_System-GDBM 313B
076-Final_System-Gperf 209B
077-Final_System-Expat 270B
078-Final_System-Inetutils 476B
079-Final_System-Perl 1KB
08-dejagnu 685B
080-Final_System-XML_Parser 197B
081-Final_System-Intltool 262B
082-Final_System-Autoconf 238B
共 292 条
- 1
- 2
- 3
Dilwanga
- 粉丝: 23
- 资源: 4682
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0