Details on this package are located in Section 10.66.2, “Contents of Yaboot.”
The Yaboot package contains a PowerPC Boot Loader for machines using Open Firmware such as NewWorld Macintoshes.
The following patch adds stub functions for newer e2fsprogs releases.
patch -Np1 -i ../yaboot-1.3.17-stubfuncs-1.patch
The following patch allows ofpath to use PATH_PREFIX
like the other ybin
scripts:
patch -Np1 -i ../yaboot-1.3.17-ofpath_path_prefix-1.patch
The Makefile is already set to do kernel-style cross-compiling, but it will try to use strip to strip the second-stage loader. It also expects to be running as root for the install, and to install for the root user, which user CLFS cannot do. We also need to use the 64-bit compiler, and to force ld to use a 64-bit emulation. Userland tools attempt to use host headers and we do not want that. The following commands will fix and achieve this:
cp -v Makefile{,.orig} sed -e "s/\(-print-libgcc-file-name\)/${BUILD64} \1/" \ -e "s/\(strip \)/${CLFS_TARGET}-\1/" \ -e "s/\(-Bstatic\)/-melf64ppc \1/" \ -e 's/-melf32ppclinux//' \ -e 's/-o root -g root//' \ -e 's/-Werror//' \ -e '0,/UCFLAGS/s/usr/tools/' \ Makefile.orig > Makefile
Compile the package:
CFLAGS=${BUILD64} make CROSS=${CLFS_TARGET}-
The multilib install of yaboot can fail if you miss any of the patches or seds, or omit the CFLAGS variable. ld will issue warnings, but the install will appear to complete successfully. That would result in an unbootable system, so you need to log the output to check it.
Install the package:
make CROSS=${CLFS_TARGET}- ROOT=/tools PREFIX= install 2>&1 | tee instlog
To ensure that the install was successful, run the following command:
grep 'powerpc:common64' instlog
If the command gave you any output (... is incompatible with powerpc:common output) the build of yaboot is broken and you will have to correct your error(s) and repeat it.
Details on this package are located in Section 10.66.2, “Contents of Yaboot.”