** text licensed under CC-BY 4.0 https://creativecommons.org/licenses/by/4.0/legalcode
-
install crossdev
-
add musl repo to the system if doing musl port.
You don't have to enable it in system, just have a fresh checkout in/var/db/repos/musl
-
prepare crossdev repo
https://wiki.gentoo.org/wiki/Custom_ebuild_repository#Crossdev
mkdir -p /var/db/repos/crossdev/{profiles,metadata}
echo 'crossdev' > /var/db/repos/crossdev/profiles/repo_name
echo 'masters = gentoo' > /var/db/repos/crossdev/metadata/layout.conf
echo 'thin-manifests = true' >> /var/db/repos/crossdev/metadata/layout.conf
chown -R portage:portage /var/db/repos/crossdev
/etc/portage/repos.conf/crossdev.conf:
[crossdev]
location = /var/db/repos/crossdev
priority = 10
masters = gentoo
auto-sync = no
- initialize target ( don't use unstable for musl )
crossdev --init-target --stable --target powerpc-gentoo-linux-musl
- inspect
/var/db/repos/crossdev/cross-powerpc-gentoo-linux-musl
for musl we want some ebuilds come from musl repo, like
/var/db/repos/crossdev # ls -la cross-powerpc-gentoo-linux-musl/gcc
cross-powerpc-gentoo-linux-musl/gcc -> /var/db/repos/musl/sys-devel/gcc
- build target toolchain
crossdev --stable --target powerpc-gentoo-linux-musl
- update target profile in
/usr/powerpc-gentoo-linux-musl/etc/portage
:
don't use hardened this time due to https://bugs.gentoo.org/706210 and https://bugs.gentoo.org/747346
make.profile -> /var/db/repos/gentoo/profiles/default/linux/ppc/17.0/musl
- update make.conf in
/usr/powerpc-gentoo-linux-musl/etc/portage
:
mkdir /var/tmp/portage/powerpc-gentoo-linux-musl
...
ACCEPT_KEYWORDS="${ARCH}"
# avoid some failing or optional deps for now
USE="${ARCH} -pam -acl -nls -caps -filecaps -ssp -rsync-verify"
PORTAGE_TMPDIR="/var/tmp/portage/${CHOST}"
and other options as required
- add musl repo to cross portage config directory
mkdir /usr/powerpc-gentoo-linux-musl/etc/portage/repos.conf
cp /etc/portage/repos.conf/musl.conf /usr/powerpc-gentoo-linux-musl/etc/portage/repos.conf/
- reinstall
libc
inside, this will replace files ofpowerpc-gentoo-linux-musl/musl
package:
powerpc-gentoo-linux-musl-emerge musl -v1 # ( you may need 1.2.2-r4 to fix symlink issue)
- repeat for:
binutils
gcc
linux-headers
now emerge @system
, there will be failures, continue restarting the merge until most of the failures resolve:
powerpc-gentoo-linux-musl-emerge @system -v1 --keep-going
- After most of the
@system
is built you will need to cleanup/usr/powerpc-gentoo-linux-musl/etc/portage
from crossdev hacks/configs.
tar
/usr/powerpc-gentoo-linux-musl
, it's your seed stage3.
-
Feed this stage3 to catalyst to build fresh
stage1->stage2(optional)->stage3
-
Rebuild
stage3
again, with previous catalyststage3
doing full chain again:stage3 -> stage1 -> stage3