Happy New Year 2026
Happy New Year 2026
Disable isl (Graphite) by default and increase POSIX compliance
musselmussel is the shortest and fastest script available today to build working cross
compilers that target musl libc
musl libc, and runs fully under dashinstall-strip where applicableDOCUMENTATION.md
file that includes state of the art information explaining what is being done
and whyTo confirm you have all required packages, please execute ./check
./mussel (arch) (flags)
(arch): See Supported Architectures below
(flags):
f | -f | --enable-fortran Enable optional Fortran support
k | -k | --enable-pkg-config Enable optional pkg-config support
l | -l | --enable-linux-headers Enable optional Linux Headers support
o | -o | --enable-openmp Enable optional OpenMP support
p | -p | --parallel Use all available cores on the host system
q | -q | --enable-quadmath Enable optional libquadmath support (default for Fortran)
s | -s | --min-size Optimize for minimum size
x | -x | --disable-cxx Disable optional C++ support
g | -g | --enable-isl Enable isl Library support (Graphite loop optimisations)
T | -T | --custom-vendor Sets a custom vendor for tuple, requires architecture to be set before
./mussel (command)
(command):
c | -c | --clean Clean mussel's build environment
h | -h | --help Display this help message
Sources will be preserved
binutils: 2.45gcc: 15.2.0gmp: 6.3.0isl: 0.27linux: 6.17.7 (Optional Linux Headers Support) (Disabled by default)mpc: 1.3.1mpfr: 4.2.2musl: 1.2.5pkgconf: 2.5.1 (Optional pkg-config Support) (Disabled by default)mussel Doing It?musl headersbinutilsgcc (with libgcc-static)musllibgcc-sharedlibstdc++-v3 (Optional C++ Support) (Enabled by default)libgomp (Optional OpenMP Support) (Disabled by default)libquadmath (Optional Quadruple-precision Support)
(Disabled by default, Enabled for Fortran)libgfortran (Optional Fortran Support) (Disabled by default)linux-headers (Optional Linux Headers Support) (Disabled by default)pkgconf (Optional pkg-config Support)
(Disabled by default)mussel With Host's pkg-config or pkgconfThe reason we included pkgconf with mussel as an optional step is
because we can easily configure the host's pkg-config or pkgconf to work
with mussel without having to build our own version of pkg-config or
pkgconf.
Here are the five magical environment variables that we need to set to configure
the host's pkg-config or pkgconf to work with mussel:
export PKG_CONFIG_PATH=$MSYSROOT/usr/lib/pkgconfig:$MSYSROOT/usr/share/pkgconfig
export PKG_CONFIG_LIBDIR=$MSYSROOT/usr/lib/pkgconfig:$MSYSROOT/usr/share/pkgconfig
export PKG_CONFIG_SYSROOT_DIR=$MSYSROOT
export PKG_CONFIG_SYSTEM_INCLUDE_PATH=$MSYSROOT/usr/include
export PKG_CONFIG_SYSTEM_LIBRARY_PATH=$MSYSROOT/usr/lib
The last two I believe are pkgconf specific but setting them won't do any harm.
mussel With Host's mesonmussel now provides cross-compilation configuration files for meson that
support all listed architectures, and a wrapper around host's meson
(mussel-meson) in an effort to make dealing with meson a bit easier.
musselmussel is possible thanks to the awesome work done by Aurelian, Rich
Felker, qword, The Managarm Project, glaucus and
musl-cross-make
Firas Khana (firasuke) <[email protected]>
mussel is licensed under the Internet Systems Consortium (ISC) license
mussel is dedicated to all those that believe setting up a cross compiler
targeting musl libc is a complicated process.