Details on this package are located in Section 10.71.2, “Contents of Yaboot.”
The Yaboot package contains a PowerPC Boot Loader for machines using Open Firmware such as NewWorld Macintoshes.
Yaboot has a compilation error. The following patch properly fixes the issue:
patch -Np1 -i ../yaboot-1.3.13-fix-1.patch
The following patch removes a redundant test which prevents ofpath from executing against SATA disks:
patch -Np1 -i ../yaboot-1.3.13-ofpath_sata-1.patch
The following patch allows ofpath to use PATH_PREFIX like the other ybin scripts:
patch -Np1 -i ../yaboot-1.3.13-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 32-bit compiler, and to force ld to use a 32-bit emulation. The following commands will fix and achieve this:
cp Makefile,{.orig} sed -e "s/\(-print-libgcc-file-name\)/${BUILD32} \1/" \ -e "s/\(-Bstatic\)/-melf32ppclinux \1/" \ -e "s/\(strip \)/${CLFS_TARGET}-\1/" \ -e 's/-o root -g root//' \ Makefile.orig > Makefile
Compile the package:
CFLAGS=${BUILD32} make CROSS=${CLFS_TARGET}-
Install the package:
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.
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.71.2, “Contents of Yaboot.”