muslなstage3を使ったらそれだけで終了しちゃうので,1からブートストラップしてみる
crossdev: —llvmだとstage4でもmuslとcompiler-rtしかついてこない(clang-crossdev-wrappers) → コンパイルはできるがlibcxxが無くて使い物にならない…… → gccを使ってbootstrap
doas crossdev -s0 -S -oS crossdev x86_64-gentoo-linux-musl -P -v
doas btrfs subvol cre /mnt/Linux/@hoge
cd /mnt/Linux/@hoge
これだけの為にmerge-usr入れるのも癪なので手打ちで
mkdir -p usr/bin usr/lib{,64}
ln -s usr/bin bin
ln -s usr/bin sbin
ln -s bin usr/sbin
ln -s usr/lib lib
ln -s usr/lib64 lib64
mkdir dev proc run sys
Portageの設定
mkdir -p etc/portage
ln -s /var/db/repos/gentoo/profiles/default/linux/amd64/23.0/musl/llvm etc/portage/make.profile
vim etc/portage/make.conf
COMMON_FLAGS="-O2 -pipe -march=native -flto=thin"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
# these must be made explicit during cross-compilation
CHOST="x86_64-gentoo-linux-musl"
CC="${CHOST}-clang"
CXX="${CHOST}-clang++"
FEATURES="parallel-fetch parallel-install"
EMERGE_DEFAULT_OPTS="-tv -j16 -l16 --keep-going"
ACCEPT_KEYWORDS="~amd64"
ACCEPT_LICENSE="* -@EULA"
LC_MESSAGES="C.utf8"
alias musl-emerge="x86_64-gentoo-linux-musl-emerge --root=$(pwd) --sysroot=$(pwd) --config-root=$(pwd)"
musl-emerge -1 musl