diff --git a/ai/metadata/cache/lfs-md5sums.txt b/ai/metadata/cache/lfs-md5sums.txt new file mode 100644 index 0000000..6eab539 --- /dev/null +++ b/ai/metadata/cache/lfs-md5sums.txt @@ -0,0 +1,93 @@ +590765dee95907dbc3c856f7255bd669 acl-2.3.2.tar.xz +227043ec2f6ca03c0948df5517f9c927 attr-2.5.2.tar.gz +1be79f7106ab6767f18391c5e22be701 autoconf-2.72.tar.xz +4017e96f89fca45ca946f1c5db6be714 automake-1.16.5.tar.xz +ad5b38410e3bf0e9bcc20e2765f5e3f9 bash-5.2.21.tar.gz +e249b1f86f886d6fb71c15f72b65dd3d bc-6.7.5.tar.xz +a075178a9646551379bfb64040487715 binutils-2.42.tar.xz +c28f119f405a2304ff0a7ccdcc629713 bison-3.8.2.tar.xz +67e051268d0c475ea773822f7500d0e5 bzip2-1.0.8.tar.gz +50fcafcecde5a380415b12e9c574e0b2 check-0.15.2.tar.gz +459e9546074db2834eefe5421f250025 coreutils-9.4.tar.xz +68c5208c58236eba447d7d6d1326b821 dejagnu-1.6.3.tar.gz +2745c50f6f4e395e7b7d52f902d075bf diffutils-3.10.tar.xz +6b4f18a33873623041857b4963641ee9 e2fsprogs-1.47.0.tar.gz +79ad698e61a052bea79e77df6a08bc4b elfutils-0.190.tar.bz2 +bd169cb11f4b9bdfddadf9e88a5c4d4b expat-2.6.0.tar.xz +00fce8de158422f5ccd2666512329bd2 expect5.45.4.tar.gz +26b2a96d4e3a8938827a1e572afd527a file-5.45.tar.gz +4a4a547e888a944b2f3af31d789a1137 findutils-4.9.0.tar.xz +2882e3179748cc9f9c23ec593d6adc8d flex-2.6.4.tar.gz +3bc52f1952b9a78361114147da63c35b flit_core-3.9.0.tar.gz +97c5a7d83f91a7e1b2035ebbe6ac7abd gawk-5.3.0.tar.xz +e0e48554cc6e4f261d55ddee9ab69075 gcc-13.2.0.tar.xz +8551961e36bf8c70b7500d255d3658ec gdbm-1.23.tar.gz +2d8507d003ef3ddd1c172707ffa97ed8 gettext-0.22.4.tar.xz +be81e87f72b5ea2c0ffe2bedfeb680c6 glibc-2.39.tar.xz +956dc04e864001a9c22429f761f2c283 gmp-6.3.0.tar.xz +9e251c0a618ad0824b51117d5d9db87e gperf-3.1.tar.gz +7c9bbd74492131245f7cdb291fa142c0 grep-3.11.tar.xz +5e4f40315a22bb8a158748e7d5094c7d groff-1.23.0.tar.gz +60c564b1bdc39d8e43b3aab4bc0fb140 grub-2.12.tar.xz +d5c9fc9441288817a4a0be2da0249e29 gzip-1.13.tar.xz +aed66d04de615d76c70890233081e584 iana-etc-20240125.tar.gz +9e5a6dfd2d794dc056a770e8ad4a9263 inetutils-2.5.tar.xz +12e517cac2b57a0121cda351570f1e63 intltool-0.51.0.tar.gz +35d8277d1469596b7edc07a51470a033 iproute2-6.7.0.tar.xz +caf5418c851eac59e70a78d9730d4cea Jinja2-3.1.3.tar.gz +e2fd7adccf6b1e98eb1ae8d5a1ce5762 kbd-2.6.4.tar.xz +6165867e1836d51795a11ea4762ff66a kmod-31.tar.xz +cf05e2546a3729492b944b4874dd43dd less-643.tar.gz +a236eaa9a1f699bc3fb6ab2acd7e7b6c lfs-bootscripts-20230728.tar.xz +4667bacb837f9ac4adb4a1a0266f4b65 libcap-2.69.tar.xz +0da1a5ed7786ac12dcbaf0d499d8a049 libffi-3.4.4.tar.gz +1a48b5771b9f6c790fb4efdb1ac71342 libpipeline-1.5.7.tar.gz +2fc0b6ddcd66a89ed6e45db28fa44232 libtool-2.4.7.tar.xz +b84cd4104e08c975063ec6c4d0372446 libxcrypt-4.4.36.tar.xz +370e1b6155ae63133380e421146619e0 linux-6.7.4.tar.xz +0d90823e1426f1da2fd872df0311298d m4-1.4.19.tar.xz +c8469a3713cbbe04d955d4ae4be23eeb make-4.4.1.tar.gz +67e0052fa200901b314fad7b68c9db27 man-db-2.12.0.tar.xz +26b39e38248144156d437e1e10cb20bf man-pages-6.06.tar.xz +8fe7227653f2fb9b1ffe7f9f2058998a MarkupSafe-2.1.5.tar.gz +2d0ebd3a24249617b1c4d30026380cf8 meson-1.3.2.tar.gz +5c9bc658c9fd0f940e8e3e0f09530c62 mpc-1.3.1.tar.gz +523c50c6318dde6f9dc523bc0244690a mpfr-4.2.1.tar.xz +c5367e829b6d9f3f97b280bb3e6bfbc3 ncurses-6.4-20230520.tar.xz +32151c08211d7ca3c1d832064f6939b0 ninja-1.11.1.tar.gz +c239213887804ba00654884918b37441 openssl-3.2.1.tar.gz +78ad9937e4caadcba1526ef1853730d5 patch-2.7.6.tar.xz +d3957d75042918a23ec0abac4a2b7e0a perl-5.38.2.tar.xz +bc29d74c2483197deb9f1f3b414b7918 pkgconf-2.1.1.tar.xz +2f747fc7df8ccf402d03e375c565cf96 procps-ng-4.0.4.tar.xz +ed3206da1184ce9e82d607dc56c52633 psmisc-23.6.tar.xz +e7c178b97bf8f7ccd677b94d614f7b3c Python-3.12.2.tar.xz +8a6310f6288e7f60c3565277ec3b5279 python-3.12.2-docs-html.tar.bz2 +4aa1b31be779e6b84f9a96cb66bc50f6 readline-8.2.tar.gz +6aac9b2dbafcd5b7a67a8a9bcb8036c3 sed-4.9.tar.xz +6f6eb780ce12c90d81ce243747ed7ab0 setuptools-69.1.0.tar.gz +452b0e59f08bf618482228ba3732d0ae shadow-4.14.5.tar.xz +c70599ab0d037fde724f7210c2c8d7f8 sysklogd-1.5.1.tar.gz +521cda27409a9edf0370c128fae3e690 systemd-255.tar.gz +1ebe54d7a80f9abf8f2d14ddfeb2432d systemd-man-pages-255.tar.xz +81a05f28d7b67533cfc778fcadea168c sysvinit-3.08.tar.xz +a2d8042658cfd8ea939e6d911eaf4152 tar-1.35.tar.xz +0e4358aade2f5db8a8b6f2f6d9481ec2 tcl8.6.13-src.tar.gz +4452f2f6d557f5598cca17b786d6eb68 tcl8.6.13-html.tar.gz +edd9928b4a3f82674bcc3551616eef3b texinfo-7.1.tar.xz +2349edd8335245525cc082f2755d5bf4 tzdata2024a.tar.gz +acd4360d8a5c3ef320b9db88d275dae6 udev-lfs-20230818.tar.xz +f3591e6970c017bb4bcd24ae762a98f5 util-linux-2.39.3.tar.xz +79dfe62be5d347b1325cbd5ce2a1f9b3 vim-9.1.0041.tar.gz +802ad6e5f9336fcb1c76b7593f0cd22d wheel-0.42.0.tar.gz +89a8e82cfd2ad948b349c0a69c494463 XML-Parser-2.47.tar.gz +7ade7bd1181a731328f875bec62a9377 xz-5.4.6.tar.xz +9855b6d802d7fe5b7bd5b196a2271655 zlib-1.3.1.tar.gz +63251602329a106220e0a5ad26ba656f zstd-1.5.5.tar.gz +2d1691a629c558e894dbb78ee6bf34ef bash-5.2.21-upstream_fixes-1.patch +6a5ac7e89b791aae556de0f745916f7f bzip2-1.0.8-install_docs-1.patch +cca7dc8c73147444e77bc45d210229bb coreutils-9.4-i18n-1.patch +9a5997c3452909b1769918c759eff8a2 glibc-2.39-fhs-1.patch +f75cca16a38da6caa7d52151f7136895 kbd-2.6.4-backspace-1.patch +9ed497b6cb8adcb8dbda9dee9ebce791 readline-8.2-upstream_fixes-3.patch +17ffccbb8e18c39e8cedc32046f3a475 sysvinit-3.08-consolidated-1.patch diff --git a/ai/metadata/cache/lfs-wget-list.txt b/ai/metadata/cache/lfs-wget-list.txt new file mode 100644 index 0000000..459b251 --- /dev/null +++ b/ai/metadata/cache/lfs-wget-list.txt @@ -0,0 +1,95 @@ +https://download.savannah.gnu.org/releases/acl/acl-2.3.2.tar.xz +https://download.savannah.gnu.org/releases/attr/attr-2.5.2.tar.gz +https://ftp.gnu.org/gnu/autoconf/autoconf-2.72.tar.xz +https://ftp.gnu.org/gnu/automake/automake-1.16.5.tar.xz +https://ftp.gnu.org/gnu/bash/bash-5.2.21.tar.gz +https://github.com/gavinhoward/bc/releases/download/6.7.5/bc-6.7.5.tar.xz +https://sourceware.org/pub/binutils/releases/binutils-2.42.tar.xz +https://ftp.gnu.org/gnu/bison/bison-3.8.2.tar.xz +https://www.sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz +https://github.com/libcheck/check/releases/download/0.15.2/check-0.15.2.tar.gz +https://ftp.gnu.org/gnu/coreutils/coreutils-9.4.tar.xz +https://dbus.freedesktop.org/releases/dbus/dbus-1.14.10.tar.xz +https://ftp.gnu.org/gnu/dejagnu/dejagnu-1.6.3.tar.gz +https://ftp.gnu.org/gnu/diffutils/diffutils-3.10.tar.xz +https://downloads.sourceforge.net/project/e2fsprogs/e2fsprogs/v1.47.0/e2fsprogs-1.47.0.tar.gz +https://sourceware.org/ftp/elfutils/0.190/elfutils-0.190.tar.bz2 +https://prdownloads.sourceforge.net/expat/expat-2.6.0.tar.xz +https://prdownloads.sourceforge.net/expect/expect5.45.4.tar.gz +https://astron.com/pub/file/file-5.45.tar.gz +https://ftp.gnu.org/gnu/findutils/findutils-4.9.0.tar.xz +https://github.com/westes/flex/releases/download/v2.6.4/flex-2.6.4.tar.gz +https://pypi.org/packages/source/f/flit-core/flit_core-3.9.0.tar.gz +https://ftp.gnu.org/gnu/gawk/gawk-5.3.0.tar.xz +https://ftp.gnu.org/gnu/gcc/gcc-13.2.0/gcc-13.2.0.tar.xz +https://ftp.gnu.org/gnu/gdbm/gdbm-1.23.tar.gz +https://ftp.gnu.org/gnu/gettext/gettext-0.22.4.tar.xz +https://ftp.gnu.org/gnu/glibc/glibc-2.39.tar.xz +https://ftp.gnu.org/gnu/gmp/gmp-6.3.0.tar.xz +https://ftp.gnu.org/gnu/gperf/gperf-3.1.tar.gz +https://ftp.gnu.org/gnu/grep/grep-3.11.tar.xz +https://ftp.gnu.org/gnu/groff/groff-1.23.0.tar.gz +https://ftp.gnu.org/gnu/grub/grub-2.12.tar.xz +https://ftp.gnu.org/gnu/gzip/gzip-1.13.tar.xz +https://github.com/Mic92/iana-etc/releases/download/20240125/iana-etc-20240125.tar.gz +https://ftp.gnu.org/gnu/inetutils/inetutils-2.5.tar.xz +https://launchpad.net/intltool/trunk/0.51.0/+download/intltool-0.51.0.tar.gz +https://www.kernel.org/pub/linux/utils/net/iproute2/iproute2-6.7.0.tar.xz +https://pypi.org/packages/source/J/Jinja2/Jinja2-3.1.3.tar.gz +https://www.kernel.org/pub/linux/utils/kbd/kbd-2.6.4.tar.xz +https://www.kernel.org/pub/linux/utils/kernel/kmod/kmod-31.tar.xz +https://www.greenwoodsoftware.com/less/less-643.tar.gz +https://www.linuxfromscratch.org/lfs/downloads/12.1/lfs-bootscripts-20230728.tar.xz +https://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/libcap-2.69.tar.xz +https://github.com/libffi/libffi/releases/download/v3.4.4/libffi-3.4.4.tar.gz +https://download.savannah.gnu.org/releases/libpipeline/libpipeline-1.5.7.tar.gz +https://ftp.gnu.org/gnu/libtool/libtool-2.4.7.tar.xz +https://github.com/besser82/libxcrypt/releases/download/v4.4.36/libxcrypt-4.4.36.tar.xz +https://www.kernel.org/pub/linux/kernel/v6.x/linux-6.7.4.tar.xz +https://ftp.gnu.org/gnu/m4/m4-1.4.19.tar.xz +https://ftp.gnu.org/gnu/make/make-4.4.1.tar.gz +https://download.savannah.gnu.org/releases/man-db/man-db-2.12.0.tar.xz +https://www.kernel.org/pub/linux/docs/man-pages/man-pages-6.06.tar.xz +https://pypi.org/packages/source/M/MarkupSafe/MarkupSafe-2.1.5.tar.gz +https://github.com/mesonbuild/meson/releases/download/1.3.2/meson-1.3.2.tar.gz +https://ftp.gnu.org/gnu/mpc/mpc-1.3.1.tar.gz +https://ftp.gnu.org/gnu/mpfr/mpfr-4.2.1.tar.xz +https://anduin.linuxfromscratch.org/LFS/ncurses-6.4-20230520.tar.xz +https://github.com/ninja-build/ninja/archive/v1.11.1/ninja-1.11.1.tar.gz +https://www.openssl.org/source/openssl-3.2.1.tar.gz +https://ftp.gnu.org/gnu/patch/patch-2.7.6.tar.xz +https://www.cpan.org/src/5.0/perl-5.38.2.tar.xz +https://distfiles.ariadne.space/pkgconf/pkgconf-2.1.1.tar.xz +https://sourceforge.net/projects/procps-ng/files/Production/procps-ng-4.0.4.tar.xz +https://sourceforge.net/projects/psmisc/files/psmisc/psmisc-23.6.tar.xz +https://www.python.org/ftp/python/3.12.2/Python-3.12.2.tar.xz +https://www.python.org/ftp/python/doc/3.12.2/python-3.12.2-docs-html.tar.bz2 +https://ftp.gnu.org/gnu/readline/readline-8.2.tar.gz +https://ftp.gnu.org/gnu/sed/sed-4.9.tar.xz +https://pypi.org/packages/source/s/setuptools/setuptools-69.1.0.tar.gz +https://github.com/shadow-maint/shadow/releases/download/4.14.5/shadow-4.14.5.tar.xz +https://www.infodrom.org/projects/sysklogd/download/sysklogd-1.5.1.tar.gz +https://github.com/systemd/systemd/archive/v255/systemd-255.tar.gz +https://anduin.linuxfromscratch.org/LFS/systemd-man-pages-255.tar.xz +https://github.com/slicer69/sysvinit/releases/download/3.08/sysvinit-3.08.tar.xz +https://ftp.gnu.org/gnu/tar/tar-1.35.tar.xz +https://downloads.sourceforge.net/tcl/tcl8.6.13-src.tar.gz +https://downloads.sourceforge.net/tcl/tcl8.6.13-html.tar.gz +https://ftp.gnu.org/gnu/texinfo/texinfo-7.1.tar.xz +https://www.iana.org/time-zones/repository/releases/tzdata2024a.tar.gz +https://anduin.linuxfromscratch.org/LFS/udev-lfs-20230818.tar.xz +https://www.kernel.org/pub/linux/utils/util-linux/v2.39/util-linux-2.39.3.tar.xz +https://github.com/vim/vim/archive/v9.1.0041/vim-9.1.0041.tar.gz +https://pypi.org/packages/source/w/wheel/wheel-0.42.0.tar.gz +https://cpan.metacpan.org/authors/id/T/TO/TODDR/XML-Parser-2.47.tar.gz +https://github.com/tukaani-project/xz/releases/download/v5.4.6/xz-5.4.6.tar.xz +https://zlib.net/fossils/zlib-1.3.1.tar.gz +https://github.com/facebook/zstd/releases/download/v1.5.5/zstd-1.5.5.tar.gz +https://www.linuxfromscratch.org/patches/lfs/12.1/bash-5.2.21-upstream_fixes-1.patch +https://www.linuxfromscratch.org/patches/lfs/12.1/bzip2-1.0.8-install_docs-1.patch +https://www.linuxfromscratch.org/patches/lfs/12.1/coreutils-9.4-i18n-1.patch +https://www.linuxfromscratch.org/patches/lfs/12.1/glibc-2.39-fhs-1.patch +https://www.linuxfromscratch.org/patches/lfs/12.1/kbd-2.6.4-backspace-1.patch +https://www.linuxfromscratch.org/patches/lfs/12.1/readline-8.2-upstream_fixes-3.patch +https://www.linuxfromscratch.org/patches/lfs/12.1/sysvinit-3.08-consolidated-1.patch +https://www.linuxfromscratch.org/patches/lfs/12.1/systemd-255-upstream_fixes-1.patch diff --git a/ai/metadata/index.json b/ai/metadata/index.json index 684b1d8..0245bc5 100644 --- a/ai/metadata/index.json +++ b/ai/metadata/index.json @@ -1,15 +1,45 @@ { - "generated_at": "2025-10-01T04:35:27.106227+00:00", + "generated_at": "2025-10-01T05:54:56.228701+00:00", "packages": [ { "book": "mlfs", - "id": "mlfs/binutils/pass1", + "id": "mlfs/linux", + "name": "Linux", + "path": "packages/mlfs/linux-headers.json", + "stage": "cross-toolchain", + "status": "draft", + "variant": null, + "version": "6.16.9 API Headers" + }, + { + "book": "mlfs", + "id": "mlfs/glibc", + "name": "Glibc", + "path": "packages/mlfs/glibc.json", + "stage": "cross-toolchain", + "status": "draft", + "variant": null, + "version": "2.42" + }, + { + "book": "mlfs", + "id": "mlfs/binutils-pass-1", "name": "Binutils", - "path": "packages/mlfs/binutils-pass1.json", + "path": "packages/mlfs/binutils-pass-1.json", "stage": "cross-toolchain", "status": "draft", "variant": "Pass 1", "version": "2.45" + }, + { + "book": "mlfs", + "id": "mlfs/gcc-pass-1", + "name": "GCC", + "path": "packages/mlfs/gcc-pass-1.json", + "stage": "cross-toolchain", + "status": "draft", + "variant": "Pass 1", + "version": "15.2.0" } ], "schema_version": "v0.1.0" diff --git a/ai/metadata/packages/mlfs/gcc-pass-1.json b/ai/metadata/packages/mlfs/gcc-pass-1.json new file mode 100644 index 0000000..2c06010 --- /dev/null +++ b/ai/metadata/packages/mlfs/gcc-pass-1.json @@ -0,0 +1,174 @@ +{ + "artifacts": { + "disk": 5, + "install_prefix": null, + "sbu": 3.0 + }, + "build": [ + { + "commands": [ + "tar -xf ../mpfr-4.2.2.tar.xz", + "mv -v mpfr-4.2.2 mpfr", + "tar -xf ../gmp-6.3.0.tar.xz", + "mv -v gmp-6.3.0 gmp", + "tar -xf ../mpc-1.3.1.tar.gz", + "mv -v mpc-1.3.1 mpc" + ], + "cwd": null, + "notes": null, + "phase": "setup", + "requires_root": false + }, + { + "commands": [ + "sed -e '/m64=/s/lib64/lib/' \\", + "-e '/m32=/s/m32=.*/m32=..\\/lib32$(call if_multiarch,:i386-linux-gnu)/' \\", + "-i.orig gcc/config/i386/t-linux64" + ], + "cwd": null, + "notes": null, + "phase": "build", + "requires_root": false + }, + { + "commands": [ + "sed '/STACK_REALIGN_DEFAULT/s/0/(!TARGET_64BIT \\&\\& TARGET_SSE)/' \\", + "-i gcc/config/i386/i386.h" + ], + "cwd": null, + "notes": null, + "phase": "build", + "requires_root": false + }, + { + "commands": [ + "mkdir -v build", + "cd build" + ], + "cwd": null, + "notes": null, + "phase": "setup", + "requires_root": false + }, + { + "commands": [ + "mlist=m64,m32", + "../configure \\", + "--target=$LFS_TGT \\", + "--prefix=$LFS/tools \\", + "--with-glibc-version=2.42 \\", + "--with-sysroot=$LFS \\", + "--with-newlib \\", + "--without-headers \\", + "--enable-default-pie \\", + "--enable-default-ssp \\", + "--enable-initfini-array \\", + "--disable-nls \\", + "--disable-shared \\", + "--enable-multilib --with-multilib-list=$mlist \\", + "--disable-decimal-float \\", + "--disable-threads \\", + "--disable-libatomic \\", + "--disable-libgomp \\", + "--disable-libquadmath \\", + "--disable-libssp \\", + "--disable-libvtv \\", + "--disable-libstdcxx \\", + "--enable-languages=c,c++" + ], + "cwd": null, + "notes": null, + "phase": "configure", + "requires_root": false + }, + { + "commands": [ + "make" + ], + "cwd": null, + "notes": null, + "phase": "build", + "requires_root": false + }, + { + "commands": [ + "make install" + ], + "cwd": null, + "notes": null, + "phase": "install", + "requires_root": false + }, + { + "commands": [ + "cd ..", + "cat gcc/limitx.h gcc/glimits.h gcc/limity.h > \\", + "`dirname $($LFS_TGT-gcc -print-libgcc-file-name)`/include/limits.h" + ], + "cwd": null, + "notes": null, + "phase": "build", + "requires_root": false + } + ], + "dependencies": { + "build": [], + "runtime": [] + }, + "environment": { + "users": [], + "variables": [] + }, + "optimizations": { + "cflags": [ + "-O3", + "-flto" + ], + "enable_lto": true, + "enable_pgo": true, + "ldflags": [ + "-flto" + ], + "profdata": null + }, + "package": { + "anchors": { + "section": "https://linuxfromscratch.org/~thomas/multilib-m32/chapter05/gcc-pass1.html#ch-tools-gcc-pass1" + }, + "book": "mlfs", + "chapter": 5, + "id": "mlfs/gcc-pass-1", + "name": "GCC", + "section": "5.3", + "stage": "cross-toolchain", + "upstream": null, + "variant": "Pass 1", + "version": "15.2.0" + }, + "provenance": { + "book_release": "lfs-ml-12.4-40-multilib", + "content_hash": "439fb0bf6a99414e9ddf1301e603948e073d5df2dcf897ac5581c399bd99f045", + "page_url": "https://linuxfromscratch.org/~thomas/multilib-m32/chapter05/gcc-pass1.html", + "retrieved_at": "2025-10-01T05:30:05.164831+00:00" + }, + "schema_version": "v0.1.0", + "source": { + "archive": "mpfr-4.2.2.tar.xz", + "checksums": [ + { + "alg": "md5", + "value": "7c32c39b8b6e3ae85f25156228156061" + } + ], + "urls": [ + { + "kind": "primary", + "url": "https://ftp.gnu.org/gnu/gcc/gcc-15.2.0/gcc-15.2.0.tar.xz" + } + ] + }, + "status": { + "issues": [], + "state": "draft" + } +} \ No newline at end of file diff --git a/ai/metadata/packages/mlfs/glibc.json b/ai/metadata/packages/mlfs/glibc.json new file mode 100644 index 0000000..1f45180 --- /dev/null +++ b/ai/metadata/packages/mlfs/glibc.json @@ -0,0 +1,289 @@ +{ + "artifacts": { + "disk": 870, + "install_prefix": null, + "sbu": 1.0 + }, + "build": [ + { + "commands": [ + "ln -sfv ../lib/ld-linux-x86-64.so.2 $LFS/lib64", + "ln -sfv ../lib/ld-linux-x86-64.so.2 $LFS/lib64/ld-lsb-x86-64.so.3" + ], + "cwd": null, + "notes": null, + "phase": "build", + "requires_root": false + }, + { + "commands": [ + "patch -Np1 -i ../glibc-2.42-fhs-1.patch" + ], + "cwd": null, + "notes": null, + "phase": "build", + "requires_root": false + }, + { + "commands": [ + "mkdir -v build", + "cd build" + ], + "cwd": null, + "notes": null, + "phase": "setup", + "requires_root": false + }, + { + "commands": [ + "echo \"rootsbindir=/usr/sbin\" > configparms" + ], + "cwd": null, + "notes": null, + "phase": "build", + "requires_root": false + }, + { + "commands": [ + "../configure \\", + "--prefix=/usr \\", + "--host=$LFS_TGT \\", + "--build=$(../scripts/config.guess) \\", + "--disable-nscd \\", + "libc_cv_slibdir=/usr/lib \\", + "--enable-kernel=5.4" + ], + "cwd": null, + "notes": null, + "phase": "configure", + "requires_root": false + }, + { + "commands": [ + "make" + ], + "cwd": null, + "notes": null, + "phase": "build", + "requires_root": false + }, + { + "commands": [ + "make DESTDIR=$LFS install" + ], + "cwd": null, + "notes": null, + "phase": "build", + "requires_root": false + }, + { + "commands": [ + "sed '/RTLDLIST=/s@/usr@@g' -i $LFS/usr/bin/ldd" + ], + "cwd": null, + "notes": null, + "phase": "build", + "requires_root": false + }, + { + "commands": [ + "echo 'int main(){}' | $LFS_TGT-gcc -x c - -v -Wl,--verbose &> dummy.log", + "readelf -l a.out | grep ': /lib'" + ], + "cwd": null, + "notes": null, + "phase": "build", + "requires_root": false + }, + { + "commands": [ + "grep -E -o \"$LFS/lib.*/S?crt[1in].*succeeded\" dummy.log" + ], + "cwd": null, + "notes": null, + "phase": "build", + "requires_root": false + }, + { + "commands": [ + "grep -B3 \"^ $LFS/usr/include\" dummy.log" + ], + "cwd": null, + "notes": null, + "phase": "build", + "requires_root": false + }, + { + "commands": [ + "grep 'SEARCH.*/usr/lib' dummy.log |sed 's|; |\\n|g'" + ], + "cwd": null, + "notes": null, + "phase": "build", + "requires_root": false + }, + { + "commands": [ + "grep \"/lib.*/libc.so.6 \" dummy.log" + ], + "cwd": null, + "notes": null, + "phase": "build", + "requires_root": false + }, + { + "commands": [ + "grep found dummy.log" + ], + "cwd": null, + "notes": null, + "phase": "build", + "requires_root": false + }, + { + "commands": [ + "rm -v a.out dummy.log" + ], + "cwd": null, + "notes": null, + "phase": "build", + "requires_root": false + }, + { + "commands": [ + "make clean", + "find .. -name \"*.a\" -delete" + ], + "cwd": null, + "notes": null, + "phase": "build", + "requires_root": false + }, + { + "commands": [ + "CC=\"$LFS_TGT-gcc -m32\" \\", + "CXX=\"$LFS_TGT-g++ -m32\" \\", + "../configure \\", + "--prefix=/usr \\", + "--host=$LFS_TGT32 \\", + "--build=$(../scripts/config.guess) \\", + "--disable-nscd \\", + "--with-headers=$LFS/usr/include \\", + "--libdir=/usr/lib32 \\", + "--libexecdir=/usr/lib32 \\", + "libc_cv_slibdir=/usr/lib32 \\", + "--enable-kernel=5.4" + ], + "cwd": null, + "notes": null, + "phase": "configure", + "requires_root": false + }, + { + "commands": [ + "make" + ], + "cwd": null, + "notes": null, + "phase": "build", + "requires_root": false + }, + { + "commands": [ + "make DESTDIR=$PWD/DESTDIR install", + "cp -a DESTDIR/usr/lib32 $LFS/usr/", + "install -vm644 DESTDIR/usr/include/gnu/{lib-names,stubs}-32.h \\", + "$LFS/usr/include/gnu/", + "ln -svf ../lib32/ld-linux.so.2 $LFS/lib/ld-linux.so.2" + ], + "cwd": null, + "notes": null, + "phase": "build", + "requires_root": false + }, + { + "commands": [ + "echo 'int main(){}' > dummy.c", + "$LFS_TGT-gcc -m32 dummy.c", + "readelf -l a.out | grep '/ld-linux'" + ], + "cwd": null, + "notes": null, + "phase": "build", + "requires_root": false + }, + { + "commands": [ + "rm -v dummy.c a.out" + ], + "cwd": null, + "notes": null, + "phase": "build", + "requires_root": false + } + ], + "dependencies": { + "build": [], + "runtime": [] + }, + "environment": { + "users": [], + "variables": [] + }, + "optimizations": { + "cflags": [ + "-O3", + "-flto" + ], + "enable_lto": true, + "enable_pgo": true, + "ldflags": [ + "-flto" + ], + "profdata": null + }, + "package": { + "anchors": { + "section": "https://linuxfromscratch.org/~thomas/multilib-m32/chapter05/glibc.html#ch-tools-glibc" + }, + "book": "mlfs", + "chapter": 5, + "id": "mlfs/glibc", + "name": "Glibc", + "section": "5.5", + "stage": "cross-toolchain", + "upstream": null, + "variant": null, + "version": "2.42" + }, + "provenance": { + "book_release": "lfs-ml-12.4-40-multilib", + "content_hash": "52b9b51a37f960c3d8694d06cfd1a8ef297a3a2e473e565f402765b24c4e2329", + "page_url": "https://linuxfromscratch.org/~thomas/multilib-m32/chapter05/glibc.html", + "retrieved_at": "2025-10-01T05:30:28.195848+00:00" + }, + "schema_version": "v0.1.0", + "source": { + "archive": "glibc-2.42.tar.xz", + "checksums": [ + { + "alg": "md5", + "value": "23c6f5a27932b435cae94e087cb8b1f5" + } + ], + "urls": [ + { + "kind": "primary", + "url": "https://ftp.gnu.org/gnu/glibc/glibc-2.42.tar.xz" + }, + { + "kind": "primary", + "url": "https://www.linuxfromscratch.org/patches/lfs/development/glibc-2.42-fhs-1.patch" + } + ] + }, + "status": { + "issues": [], + "state": "draft" + } +} \ No newline at end of file diff --git a/ai/metadata/packages/mlfs/linux-headers.json b/ai/metadata/packages/mlfs/linux-headers.json new file mode 100644 index 0000000..4eaed2e --- /dev/null +++ b/ai/metadata/packages/mlfs/linux-headers.json @@ -0,0 +1,81 @@ +{ + "artifacts": { + "disk": 1, + "install_prefix": null, + "sbu": 0.0 + }, + "build": [ + { + "commands": [ + "make mrproper" + ], + "cwd": null, + "notes": null, + "phase": "build", + "requires_root": false + }, + { + "commands": [ + "make headers", + "find usr/include -type f ! -name '*.h' -delete", + "cp -rv usr/include $LFS/usr" + ], + "cwd": null, + "notes": null, + "phase": "build", + "requires_root": false + } + ], + "dependencies": { + "build": [], + "runtime": [] + }, + "environment": { + "users": [], + "variables": [] + }, + "optimizations": { + "cflags": [ + "-O3", + "-flto" + ], + "enable_lto": true, + "enable_pgo": true, + "ldflags": [ + "-flto" + ], + "profdata": null + }, + "package": { + "anchors": { + "section": "https://linuxfromscratch.org/~thomas/multilib-m32/chapter05/linux-headers.html#ch-tools-linux-headers" + }, + "book": "mlfs", + "chapter": 5, + "id": "mlfs/linux", + "name": "Linux", + "section": "5.4", + "stage": "cross-toolchain", + "upstream": null, + "variant": null, + "version": "6.16.9 API Headers" + }, + "provenance": { + "book_release": "lfs-ml-12.4-40-multilib", + "content_hash": "cd251fbfaaa5da1eb43185331f5beaa07cdd9d50c79f19be266435781195b66d", + "page_url": "https://linuxfromscratch.org/~thomas/multilib-m32/chapter05/linux-headers.html", + "retrieved_at": "2025-10-01T05:30:14.291785+00:00" + }, + "schema_version": "v0.1.0", + "source": { + "archive": null, + "checksums": [], + "urls": [] + }, + "status": { + "issues": [ + "No source URLs with archive extensions detected" + ], + "state": "draft" + } +} \ No newline at end of file diff --git a/src/pkgs/by_name/bi/binutils_pass_1/mod.rs b/src/pkgs/by_name/bi/binutils_pass_1/mod.rs new file mode 100644 index 0000000..3724fb1 --- /dev/null +++ b/src/pkgs/by_name/bi/binutils_pass_1/mod.rs @@ -0,0 +1,38 @@ +// MLFS metadata: stage: cross-toolchain, variant: Pass 1 + +use crate::pkgs::package::{OptimizationSettings, PackageDefinition}; + +pub fn definition() -> PackageDefinition { + let mut pkg = PackageDefinition::new("Binutils", "2.45"); + pkg.source = + Some("https://sourceware.org/pub/binutils/releases/binutils-2.45.tar.xz".to_string()); + pkg.md5 = Some("dee5b4267e0305a99a3c9d6131f45759".to_string()); + pkg.configure_args = Vec::new(); + pkg.build_commands = vec![ + "mkdir -v build".to_string(), + "cd build".to_string(), + "../configure --prefix=$LFS/tools \\".to_string(), + "--with-sysroot=$LFS \\".to_string(), + "--target=$LFS_TGT \\".to_string(), + "--disable-nls \\".to_string(), + "--enable-gprofng=no \\".to_string(), + "--disable-werror \\".to_string(), + "--enable-new-dtags \\".to_string(), + "--enable-default-hash-style=gnu".to_string(), + "make".to_string(), + ]; + pkg.install_commands = vec!["make install".to_string()]; + pkg.dependencies = Vec::new(); + let profdata = None; + let profdata_clone = profdata.clone(); + pkg.optimizations = match profdata_clone { + Some(path) => OptimizationSettings::for_pgo_replay(path), + None => OptimizationSettings::default(), + }; + pkg.optimizations.enable_lto = true; + pkg.optimizations.enable_pgo = true; + pkg.optimizations.cflags = vec!["-O3".to_string(), "-flto".to_string()]; + pkg.optimizations.ldflags = vec!["-flto".to_string()]; + pkg.optimizations.profdata = profdata; + pkg +} diff --git a/src/pkgs/by_name/bi/mod.rs b/src/pkgs/by_name/bi/mod.rs index 3148c5b..af583cc 100644 --- a/src/pkgs/by_name/bi/mod.rs +++ b/src/pkgs/by_name/bi/mod.rs @@ -1 +1,2 @@ pub mod binutils; +pub mod binutils_pass_1; diff --git a/src/pkgs/by_name/gc/gcc_pass_1/mod.rs b/src/pkgs/by_name/gc/gcc_pass_1/mod.rs new file mode 100644 index 0000000..0d1f0b9 --- /dev/null +++ b/src/pkgs/by_name/gc/gcc_pass_1/mod.rs @@ -0,0 +1,66 @@ +// MLFS metadata: stage: cross-toolchain, variant: Pass 1 + +use crate::pkgs::package::{OptimizationSettings, PackageDefinition}; + +pub fn definition() -> PackageDefinition { + let mut pkg = PackageDefinition::new("GCC", "15.2.0"); + pkg.source = Some("https://ftp.gnu.org/gnu/gcc/gcc-15.2.0/gcc-15.2.0.tar.xz".to_string()); + pkg.md5 = Some("7c32c39b8b6e3ae85f25156228156061".to_string()); + pkg.configure_args = Vec::new(); + pkg.build_commands = vec![ + "tar -xf ../mpfr-4.2.2.tar.xz".to_string(), + "mv -v mpfr-4.2.2 mpfr".to_string(), + "tar -xf ../gmp-6.3.0.tar.xz".to_string(), + "mv -v gmp-6.3.0 gmp".to_string(), + "tar -xf ../mpc-1.3.1.tar.gz".to_string(), + "mv -v mpc-1.3.1 mpc".to_string(), + "sed -e '/m64=/s/lib64/lib/' \\".to_string(), + "-e '/m32=/s/m32=.*/m32=..\\/lib32$(call if_multiarch,:i386-linux-gnu)/' \\".to_string(), + "-i.orig gcc/config/i386/t-linux64".to_string(), + "sed '/STACK_REALIGN_DEFAULT/s/0/(!TARGET_64BIT \\&\\& TARGET_SSE)/' \\".to_string(), + "-i gcc/config/i386/i386.h".to_string(), + "mkdir -v build".to_string(), + "cd build".to_string(), + "mlist=m64,m32".to_string(), + "../configure \\".to_string(), + "--target=$LFS_TGT \\".to_string(), + "--prefix=$LFS/tools \\".to_string(), + "--with-glibc-version=2.42 \\".to_string(), + "--with-sysroot=$LFS \\".to_string(), + "--with-newlib \\".to_string(), + "--without-headers \\".to_string(), + "--enable-default-pie \\".to_string(), + "--enable-default-ssp \\".to_string(), + "--enable-initfini-array \\".to_string(), + "--disable-nls \\".to_string(), + "--disable-shared \\".to_string(), + "--enable-multilib --with-multilib-list=$mlist \\".to_string(), + "--disable-decimal-float \\".to_string(), + "--disable-threads \\".to_string(), + "--disable-libatomic \\".to_string(), + "--disable-libgomp \\".to_string(), + "--disable-libquadmath \\".to_string(), + "--disable-libssp \\".to_string(), + "--disable-libvtv \\".to_string(), + "--disable-libstdcxx \\".to_string(), + "--enable-languages=c,c++".to_string(), + "make".to_string(), + "cd ..".to_string(), + "cat gcc/limitx.h gcc/glimits.h gcc/limity.h > \\".to_string(), + "`dirname $($LFS_TGT-gcc -print-libgcc-file-name)`/include/limits.h".to_string(), + ]; + pkg.install_commands = vec!["make install".to_string()]; + pkg.dependencies = Vec::new(); + let profdata = None; + let profdata_clone = profdata.clone(); + pkg.optimizations = match profdata_clone { + Some(path) => OptimizationSettings::for_pgo_replay(path), + None => OptimizationSettings::default(), + }; + pkg.optimizations.enable_lto = true; + pkg.optimizations.enable_pgo = true; + pkg.optimizations.cflags = vec!["-O3".to_string(), "-flto".to_string()]; + pkg.optimizations.ldflags = vec!["-flto".to_string()]; + pkg.optimizations.profdata = profdata; + pkg +} diff --git a/src/pkgs/by_name/gc/mod.rs b/src/pkgs/by_name/gc/mod.rs new file mode 100644 index 0000000..e6d0006 --- /dev/null +++ b/src/pkgs/by_name/gc/mod.rs @@ -0,0 +1 @@ +pub mod gcc_pass_1; diff --git a/src/pkgs/by_name/gl/glibc/mod.rs b/src/pkgs/by_name/gl/glibc/mod.rs new file mode 100644 index 0000000..59b863b --- /dev/null +++ b/src/pkgs/by_name/gl/glibc/mod.rs @@ -0,0 +1,74 @@ +// MLFS metadata: stage: cross-toolchain + +use crate::pkgs::package::{OptimizationSettings, PackageDefinition}; + +pub fn definition() -> PackageDefinition { + let mut pkg = PackageDefinition::new("Glibc", "2.42"); + pkg.source = Some("https://ftp.gnu.org/gnu/glibc/glibc-2.42.tar.xz".to_string()); + pkg.md5 = Some("23c6f5a27932b435cae94e087cb8b1f5".to_string()); + pkg.configure_args = Vec::new(); + pkg.build_commands = vec![ + "ln -sfv ../lib/ld-linux-x86-64.so.2 $LFS/lib64".to_string(), + "ln -sfv ../lib/ld-linux-x86-64.so.2 $LFS/lib64/ld-lsb-x86-64.so.3".to_string(), + "patch -Np1 -i ../glibc-2.42-fhs-1.patch".to_string(), + "mkdir -v build".to_string(), + "cd build".to_string(), + "echo \"rootsbindir=/usr/sbin\" > configparms".to_string(), + "../configure \\".to_string(), + "--prefix=/usr \\".to_string(), + "--host=$LFS_TGT \\".to_string(), + "--build=$(../scripts/config.guess) \\".to_string(), + "--disable-nscd \\".to_string(), + "libc_cv_slibdir=/usr/lib \\".to_string(), + "--enable-kernel=5.4".to_string(), + "make".to_string(), + "make DESTDIR=$LFS install".to_string(), + "sed '/RTLDLIST=/s@/usr@@g' -i $LFS/usr/bin/ldd".to_string(), + "echo 'int main(){}' | $LFS_TGT-gcc -x c - -v -Wl,--verbose &> dummy.log".to_string(), + "readelf -l a.out | grep ': /lib'".to_string(), + "grep -E -o \"$LFS/lib.*/S?crt[1in].*succeeded\" dummy.log".to_string(), + "grep -B3 \"^ $LFS/usr/include\" dummy.log".to_string(), + "grep 'SEARCH.*/usr/lib' dummy.log |sed 's|; |\\n|g'".to_string(), + "grep \"/lib.*/libc.so.6 \" dummy.log".to_string(), + "grep found dummy.log".to_string(), + "rm -v a.out dummy.log".to_string(), + "make clean".to_string(), + "find .. -name \"*.a\" -delete".to_string(), + "CC=\"$LFS_TGT-gcc -m32\" \\".to_string(), + "CXX=\"$LFS_TGT-g++ -m32\" \\".to_string(), + "../configure \\".to_string(), + "--prefix=/usr \\".to_string(), + "--host=$LFS_TGT32 \\".to_string(), + "--build=$(../scripts/config.guess) \\".to_string(), + "--disable-nscd \\".to_string(), + "--with-headers=$LFS/usr/include \\".to_string(), + "--libdir=/usr/lib32 \\".to_string(), + "--libexecdir=/usr/lib32 \\".to_string(), + "libc_cv_slibdir=/usr/lib32 \\".to_string(), + "--enable-kernel=5.4".to_string(), + "make".to_string(), + "make DESTDIR=$PWD/DESTDIR install".to_string(), + "cp -a DESTDIR/usr/lib32 $LFS/usr/".to_string(), + "install -vm644 DESTDIR/usr/include/gnu/{lib-names,stubs}-32.h \\".to_string(), + "$LFS/usr/include/gnu/".to_string(), + "ln -svf ../lib32/ld-linux.so.2 $LFS/lib/ld-linux.so.2".to_string(), + "echo 'int main(){}' > dummy.c".to_string(), + "$LFS_TGT-gcc -m32 dummy.c".to_string(), + "readelf -l a.out | grep '/ld-linux'".to_string(), + "rm -v dummy.c a.out".to_string(), + ]; + pkg.install_commands = Vec::new(); + pkg.dependencies = Vec::new(); + let profdata = None; + let profdata_clone = profdata.clone(); + pkg.optimizations = match profdata_clone { + Some(path) => OptimizationSettings::for_pgo_replay(path), + None => OptimizationSettings::default(), + }; + pkg.optimizations.enable_lto = true; + pkg.optimizations.enable_pgo = true; + pkg.optimizations.cflags = vec!["-O3".to_string(), "-flto".to_string()]; + pkg.optimizations.ldflags = vec!["-flto".to_string()]; + pkg.optimizations.profdata = profdata; + pkg +} diff --git a/src/pkgs/by_name/gl/mod.rs b/src/pkgs/by_name/gl/mod.rs new file mode 100644 index 0000000..bfcf232 --- /dev/null +++ b/src/pkgs/by_name/gl/mod.rs @@ -0,0 +1 @@ +pub mod glibc; diff --git a/src/pkgs/by_name/li/linux/mod.rs b/src/pkgs/by_name/li/linux/mod.rs new file mode 100644 index 0000000..48d1d48 --- /dev/null +++ b/src/pkgs/by_name/li/linux/mod.rs @@ -0,0 +1,30 @@ +// MLFS metadata: stage: cross-toolchain + +use crate::pkgs::package::{OptimizationSettings, PackageDefinition}; + +pub fn definition() -> PackageDefinition { + let mut pkg = PackageDefinition::new("Linux", "6.16.9 API Headers"); + pkg.source = None; + pkg.md5 = None; + pkg.configure_args = Vec::new(); + pkg.build_commands = vec![ + "make mrproper".to_string(), + "make headers".to_string(), + "find usr/include -type f ! -name '*.h' -delete".to_string(), + "cp -rv usr/include $LFS/usr".to_string(), + ]; + pkg.install_commands = Vec::new(); + pkg.dependencies = Vec::new(); + let profdata = None; + let profdata_clone = profdata.clone(); + pkg.optimizations = match profdata_clone { + Some(path) => OptimizationSettings::for_pgo_replay(path), + None => OptimizationSettings::default(), + }; + pkg.optimizations.enable_lto = true; + pkg.optimizations.enable_pgo = true; + pkg.optimizations.cflags = vec!["-O3".to_string(), "-flto".to_string()]; + pkg.optimizations.ldflags = vec!["-flto".to_string()]; + pkg.optimizations.profdata = profdata; + pkg +} diff --git a/src/pkgs/by_name/li/mod.rs b/src/pkgs/by_name/li/mod.rs new file mode 100644 index 0000000..057cec9 --- /dev/null +++ b/src/pkgs/by_name/li/mod.rs @@ -0,0 +1 @@ +pub mod linux; diff --git a/src/pkgs/by_name/mod.rs b/src/pkgs/by_name/mod.rs index 517c3a3..7a7244f 100644 --- a/src/pkgs/by_name/mod.rs +++ b/src/pkgs/by_name/mod.rs @@ -1 +1,4 @@ pub mod bi; +pub mod gc; +pub mod gl; +pub mod li;