All about bootstrapping Fedora on RISC-V.
Bootstrapping happens in several stages which are outlined in detail in the
Makefile in this repository.
The general idea is that we go in stages (numbered for historical reasons):
x86_64 disk image, but remove all the binaries and libraries from it. The binaries and libraries are cross-compiled from the host using the riscv64-unknown-linux-gnu-gcc compiler.
After building the stage 3 disk image in this way, it is bootable under qemu-system-riscv64 and has working gcc and rpmbuild:
Tue Dec 19 22:47:00 UTC 2017 Welcome to the Fedora/RISC-V stage3 disk image https://fedoraproject.org/wiki/Architectures/RISC-V stage3:/# ls bin dev home lib lost+found mnt proc rpmbuild sbin sys usr boot etc init lib64 media opt root run srv tmp var stage3:/# uname -a Linux stage3 4.15.0-rc3-01064-g418457520fbb #2 Tue Dec 19 22:31:06 GMT 2017 riscv64 GNU/Linux stage3:/# gcc --version gcc (GCC) 7.2.0 Copyright (C) 2017 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. stage3:/# rpmbuild --version RPM version 4.12.90
Using the stage 3 disk image, running under qemu, we build RPMs for many core packages.
Eventually we have built enough RPMs that we can build a clean stage 4 disk image entirely from RPMs.
After stage 4
Using the clean stage 4 disk image we now go on to build the remaining packages from Fedora. This is a very long, incremental processes aided by an autobuilder which picks up new packages from real Fedora and tries to build them for RISC-V. In addition we build and fix packages by hand.