user: implement mlibc as the libc, finally.

It's finally done..

Signed-off-by: kaguya <vpshinomiya@protonmail.com>
This commit is contained in:
kaguya
2026-05-02 03:31:49 -04:00
parent 2fa39ad85a
commit 9a9b91c940
2387 changed files with 152741 additions and 315 deletions
+228
View File
@@ -0,0 +1,228 @@
declare_options:
- name: arch
default: x86_64
- name: compiler
default: gcc
sources:
- name: mlibc
git: 'https://github.com/managarm/mlibc.git'
branch: 'master'
- name: linux
url: 'https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.14.tar.xz'
extract_path: 'linux-6.14'
format: 'tar.xz'
version: '6.14'
- name: libdrm
subdir: 'ports'
git: 'https://gitlab.freedesktop.org/mesa/drm.git'
tag: 'libdrm-2.4.124'
version: '2.4.124'
tools: []
packages:
- name: mlibc
architecture: '@OPTION:arch@'
from_source: mlibc
pkgs_required:
- linux-headers
- libdrm-headers
configure:
- args:
- 'meson'
- 'setup'
- '--prefix=/usr'
- '--libdir=lib'
- '--buildtype=debugoptimized'
- "-Dc_args=['-Wno-error=maybe-uninitialized', '-Wno-unknown-warning-option']"
- "-Dcpp_args=['-Wno-error=maybe-uninitialized', '-Wno-unknown-warning-option']"
- "-Dlibgcc_dependency=false"
- "-Duse_freestnd_hdrs=enabled"
- "-Dbuild_tests=true"
- "-Db_sanitize=undefined"
- "-Ddefault_library=both"
- "-Dwerror=true"
- '-Dlinux_kernel_headers=@BUILD_ROOT@/packages/linux-headers/usr/include'
- "--cross-file=@THIS_SOURCE_DIR@/ci/linux-@OPTION:arch@-@OPTION:compiler@.cross-file"
- '@THIS_SOURCE_DIR@'
environ:
CFLAGS: '-Wno-error=maybe-uninitialized'
CXXFLAGS: '-Wno-error=maybe-uninitialized'
LDFLAGS: '-Wl,/tmp/libgcc-@OPTION:arch@.a'
build:
- args: ['ninja']
- args: ['ninja', 'install']
environ:
DESTDIR: '@THIS_COLLECT_DIR@'
quiet: true
- name: mlibc-static
architecture: '@OPTION:arch@'
from_source: mlibc
pkgs_required:
- linux-headers
- libdrm-headers
configure:
- args:
- 'meson'
- 'setup'
- '--prefix=/usr'
- '--libdir=lib'
- '--buildtype=debugoptimized'
- "-Dc_args=['-Wno-error=maybe-uninitialized']"
- "-Dcpp_args=['-Wno-error=maybe-uninitialized']"
- "-Dlibgcc_dependency=false"
- "-Duse_freestnd_hdrs=enabled"
- "-Dbuild_tests=true"
- "-Db_sanitize=undefined"
- "-Ddefault_library=static"
- "-Dwerror=true"
- '-Dlinux_kernel_headers=@BUILD_ROOT@/packages/linux-headers/usr/include'
- "--cross-file=@THIS_SOURCE_DIR@/ci/linux-@OPTION:arch@-@OPTION:compiler@.cross-file"
- '@THIS_SOURCE_DIR@'
environ:
LDFLAGS: '-Wl,/tmp/libgcc-@OPTION:arch@.a'
build:
- args: ['ninja']
- args: ['ninja', 'install']
environ:
DESTDIR: '@THIS_COLLECT_DIR@'
quiet: true
- name: mlibc-shared
from_source: mlibc
pkgs_required:
- linux-headers
- libdrm-headers
configure:
- args:
- 'meson'
- 'setup'
- '--prefix=/usr'
- '--libdir=lib'
- '--buildtype=debugoptimized'
- "-Dc_args=['-Wno-error=maybe-uninitialized']"
- "-Dcpp_args=['-Wno-error=maybe-uninitialized']"
- "-Dlibgcc_dependency=false"
- "-Duse_freestnd_hdrs=enabled"
- "-Dbuild_tests=true"
- "-Db_sanitize=undefined"
- "-Ddefault_library=shared"
- "-Dwerror=true"
- '-Dlinux_kernel_headers=@BUILD_ROOT@/packages/linux-headers/usr/include'
- "--cross-file=@THIS_SOURCE_DIR@/ci/linux-@OPTION:arch@-@OPTION:compiler@.cross-file"
- '@THIS_SOURCE_DIR@'
environ:
LDFLAGS: '-Wl,/tmp/libgcc-@OPTION:arch@.a'
build:
- args: ['ninja']
- args: ['ninja', 'install']
environ:
DESTDIR: '@THIS_COLLECT_DIR@'
quiet: true
- name: mlibc-ansi-only
architecture: '@OPTION:arch@'
from_source: mlibc
pkgs_required:
- linux-headers
- libdrm-headers
configure:
- args:
- 'meson'
- 'setup'
- '--prefix=/usr'
- '--libdir=lib'
- '--buildtype=debugoptimized'
- "-Dc_args=['-Wno-error=maybe-uninitialized']"
- "-Dcpp_args=['-Wno-error=maybe-uninitialized']"
- "-Dlibgcc_dependency=false"
- "-Duse_freestnd_hdrs=enabled"
- "-Dbuild_tests=true"
- "-Db_sanitize=undefined"
- "-Ddefault_library=both"
- "-Dwerror=true"
- "-Dposix_option=disabled"
- "-Dlinux_option=disabled"
- "-Dglibc_option=disabled"
- "-Dbsd_option=disabled"
- '-Dlinux_kernel_headers=@BUILD_ROOT@/packages/linux-headers/usr/include'
- "--cross-file=@THIS_SOURCE_DIR@/ci/linux-@OPTION:arch@-@OPTION:compiler@.cross-file"
- '@THIS_SOURCE_DIR@'
environ:
LDFLAGS: '-Wl,/tmp/libgcc-@OPTION:arch@.a'
build:
- args: ['ninja']
- args: ['ninja', 'install']
environ:
DESTDIR: '@THIS_COLLECT_DIR@'
quiet: true
- name: mlibc-headers-only
architecture: '@OPTION:arch@'
from_source: mlibc
pkgs_required:
- linux-headers
- libdrm-headers
configure:
- args:
- 'meson'
- 'setup'
- '--prefix=/usr'
- '--libdir=lib'
- '--buildtype=debugoptimized'
- "-Dc_args=['-Wno-error=maybe-uninitialized']"
- "-Dcpp_args=['-Wno-error=maybe-uninitialized']"
- "-Dlibgcc_dependency=false"
- "-Duse_freestnd_hdrs=enabled"
- "-Db_sanitize=undefined"
- "-Dwerror=true"
- "-Dheaders_only=true"
- '-Dlinux_kernel_headers=@BUILD_ROOT@/packages/linux-headers/usr/include'
- "--cross-file=@THIS_SOURCE_DIR@/ci/linux-@OPTION:arch@-@OPTION:compiler@.cross-file"
- '@THIS_SOURCE_DIR@'
environ:
LDFLAGS: '-Wl,/tmp/libgcc-@OPTION:arch@.a'
build:
- args: ['ninja']
- args: ['ninja', 'install']
environ:
DESTDIR: '@THIS_COLLECT_DIR@'
quiet: true
- name: linux-headers
architecture: '@OPTION:arch@'
from_source: linux
configure:
# custom build system requires in tree-ish builds
- args: ['cp', '-Tr', '@THIS_SOURCE_DIR@/', '.']
build:
- args: |
LINUX_ARCH="@OPTION:arch@"
case "$LINUX_ARCH" in
"aarch64")
LINUX_ARCH="arm64"
;;
"riscv64")
LINUX_ARCH="riscv"
;;
"loongarch64")
LINUX_ARCH="loongarch"
;;
esac
make O=@THIS_COLLECT_DIR@ ARCH="$LINUX_ARCH" headers_install
- name: libdrm-headers
architecture: '@OPTION:arch@'
from_source: 'libdrm'
build:
- args: ['mkdir', '-p', '@THIS_COLLECT_DIR@/usr/src/libdrm-headers']
- args: |
cat << EOF > @THIS_COLLECT_DIR@/usr/src/libdrm-headers/meson.build
project('libdrm-headers')
libdrm_dep = declare_dependency(include_directories: include_directories('include'))
EOF
- args: ['cp', '-r', '@THIS_SOURCE_DIR@/include', '@THIS_COLLECT_DIR@/usr/src/libdrm-headers/include']