musl: split out script to setup build

This makes it easier to set up a local build with musl:
$ tools/setup-musl-build.sh build-meson
$ ninja -C build-meson
This commit is contained in:
Zbigniew Jędrzejewski-Szmek
2025-11-16 20:36:07 +01:00
parent 6edbf6a2c7
commit 31d3b96293
2 changed files with 87 additions and 70 deletions

View File

@@ -20,73 +20,5 @@ cleanup() (
trap cleanup EXIT ERR INT TERM
mkdir -p "${TMPDIR}/build"
mkdir -p "${TMPDIR}/usr/include"
CFLAGS="-idirafter ${TMPDIR}/usr/include"
LINKS=(
acl
archive.h
archive_entry.h
asm
asm-generic
audit-records.h
audit_logging.h
bpf
bzlib.h
curl
dwarf.h
elfutils
fido.h
gcrypt.h
gelf.h
gnutls
gpg-error.h
idn2.h
libaudit.h
libcryptsetup.h
libelf.h
libkmod.h
linux
lz4.h
lz4frame.h
lz4hc.h
lzma
lzma.h
microhttpd.h
mtd
openssl
pcre2.h
pwquality.h
qrencode.h
seccomp-syscalls.h
seccomp.h
security
selinux
sys/acl.h
sys/capability.h
tss2
xen
xkbcommon
zconf.h
zlib.h
zstd.h
zstd_errors.h
)
for t in "${LINKS[@]}"; do
[[ -e /usr/include/"$t" ]]
link="${TMPDIR}"/usr/include/"${t}"
mkdir -p "${link%/*}"
ln -s /usr/include/"$t" "$link"
done
env \
CC=musl-gcc \
CXX=musl-gcc \
CFLAGS="$CFLAGS" \
CXXFLAGS="$CFLAGS" \
meson setup --werror -Ddbus-interfaces-dir=no -Dlibc=musl "${TMPDIR}"/build
ninja -v -C "${TMPDIR}"/build
tools/setup-musl-build.sh "${TMPDIR}/build"
ninja -v -C "${TMPDIR}/build"