| 1 | <?xml version="1.0" encoding="ISO-8859-1"?>
 | 
|---|
| 2 | <!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
 | 
|---|
| 3 |   "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
 | 
|---|
| 4 |   <!ENTITY % general-entities SYSTEM "../../general.ent">
 | 
|---|
| 5 |   %general-entities;
 | 
|---|
| 6 | ]>
 | 
|---|
| 7 | 
 | 
|---|
| 8 | <sect1 id="ch-system-yaboot" role="wrap">
 | 
|---|
| 9 |   <?dbhtml filename="yaboot.html"?>
 | 
|---|
| 10 | 
 | 
|---|
| 11 |   <title>Yaboot-&yaboot-version;</title>
 | 
|---|
| 12 | 
 | 
|---|
| 13 |   <indexterm zone="ch-system-yaboot">
 | 
|---|
| 14 |     <primary sortas="a-Yaboot">Yaboot</primary>
 | 
|---|
| 15 |   </indexterm>
 | 
|---|
| 16 | 
 | 
|---|
| 17 |   <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
 | 
|---|
| 18 |   href="../ppc/yaboot.xml"
 | 
|---|
| 19 |   xpointer="xpointer(//*[@role='package'])"/>
 | 
|---|
| 20 | 
 | 
|---|
| 21 |   <sect2 role="installation">
 | 
|---|
| 22 |     <title>Installation of Yaboot</title>
 | 
|---|
| 23 | 
 | 
|---|
| 24 |     <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
 | 
|---|
| 25 |     href="../ppc/yaboot.xml"
 | 
|---|
| 26 |     xpointer="xpointer(//*[@os='a'])"/>
 | 
|---|
| 27 | 
 | 
|---|
| 28 |     <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
 | 
|---|
| 29 |     href="../ppc/yaboot.xml"
 | 
|---|
| 30 |     xpointer="xpointer(//*[@os='b'])"/>
 | 
|---|
| 31 | 
 | 
|---|
| 32 |     <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
 | 
|---|
| 33 |     href="../ppc/yaboot.xml"
 | 
|---|
| 34 |     xpointer="xpointer(//*[@os='c'])"/>
 | 
|---|
| 35 | 
 | 
|---|
| 36 |     <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
 | 
|---|
| 37 |     href="../ppc/yaboot.xml"
 | 
|---|
| 38 |     xpointer="xpointer(//*[@os='d'])"/>
 | 
|---|
| 39 | 
 | 
|---|
| 40 |     <para>Existing multilib distributions alter gcc to default to 32-bit
 | 
|---|
| 41 |     output.  Because our gcc defaults to 64-bit, we need to pass appropriate
 | 
|---|
| 42 |     options to both the compiler and the linker.  The Makefile already
 | 
|---|
| 43 |     overrides any CC and ignores LDFLAGS in favour of its own variables, so we
 | 
|---|
| 44 |     need to use the following seds for a successful compile and install.</para>
 | 
|---|
| 45 | 
 | 
|---|
| 46 | <screen><userinput>sed -i -e "s/\(-print-libgcc-file-name\)/${BUILD32} \1/" \
 | 
|---|
| 47 |     -e "s/\(-Bstatic\)/-melf32ppclinux \1/" Makefile
 | 
|---|
| 48 | </userinput></screen>
 | 
|---|
| 49 | 
 | 
|---|
| 50 |     <variablelist os="j">
 | 
|---|
| 51 |       <title>The meaning of the sed parameters:</title>
 | 
|---|
| 52 | 
 | 
|---|
| 53 |       <varlistentry>
 | 
|---|
| 54 |         <term><parameter>"s/\(-print-libgcc-file-name\)/${BUILD32} \1/"</parameter></term>
 | 
|---|
| 55 |         <listitem>
 | 
|---|
| 56 |           <para>This picks a convenient place within the Makefile's lgcc
 | 
|---|
| 57 |           variable and inserts the flag to force <command>gcc</command> to
 | 
|---|
| 58 |           create 32-bit code when compiling yaboot.</para>
 | 
|---|
| 59 |         </listitem>
 | 
|---|
| 60 |       </varlistentry>
 | 
|---|
| 61 |       <varlistentry>
 | 
|---|
| 62 |         <term><parameter>"s/\(-Bstatic\)/-melf32ppclinux \1/"</parameter></term>
 | 
|---|
| 63 |         <listitem>
 | 
|---|
| 64 |           <para>This picks the end of the LFLAGS which the Makefile passes to
 | 
|---|
| 65 |           the linker to create the second-stage linux loader, and inserts a
 | 
|---|
| 66 |           flag to force <command>ld</command> to use a suitable 32-bit
 | 
|---|
| 67 |           emulation picked from the output of <command>'ld -V'</command>.</para>
 | 
|---|
| 68 |         </listitem>
 | 
|---|
| 69 |       </varlistentry>
 | 
|---|
| 70 | 
 | 
|---|
| 71 |     </variablelist>
 | 
|---|
| 72 | 
 | 
|---|
| 73 |     <important>
 | 
|---|
| 74 |       <para>The above patches and seds are critical in ensuring a
 | 
|---|
| 75 |       successful build. In particular, the package will appear to install
 | 
|---|
| 76 |       correctly without the second sed, but will fail to load linux,
 | 
|---|
| 77 |       requiring you to use OF or a rescue disk to boot.</para>
 | 
|---|
| 78 |     </important>
 | 
|---|
| 79 | 
 | 
|---|
| 80 |     <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
 | 
|---|
| 81 |     href="../ppc/yaboot.xml"
 | 
|---|
| 82 |     xpointer="xpointer(//*[@os='e'])"/>
 | 
|---|
| 83 | 
 | 
|---|
| 84 |     <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
 | 
|---|
| 85 |     href="../ppc/yaboot.xml"
 | 
|---|
| 86 |     xpointer="xpointer(//*[@os='f'])"/>
 | 
|---|
| 87 | 
 | 
|---|
| 88 |     <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
 | 
|---|
| 89 |     href="../ppc/yaboot.xml"
 | 
|---|
| 90 |     xpointer="xpointer(//*[@os='g'])"/>
 | 
|---|
| 91 | 
 | 
|---|
| 92 |     <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
 | 
|---|
| 93 |     href="../ppc/yaboot.xml"
 | 
|---|
| 94 |     xpointer="xpointer(//*[@os='h'])"/>
 | 
|---|
| 95 | 
 | 
|---|
| 96 |     <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
 | 
|---|
| 97 |     href="../ppc/yaboot.xml"
 | 
|---|
| 98 |     xpointer="xpointer(//*[@os='i'])"/>
 | 
|---|
| 99 | 
 | 
|---|
| 100 |     <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
 | 
|---|
| 101 |     href="../ppc/yaboot.xml"
 | 
|---|
| 102 |     xpointer="xpointer(//*[@os='j'])"/>
 | 
|---|
| 103 | 
 | 
|---|
| 104 |   </sect2>
 | 
|---|
| 105 | 
 | 
|---|
| 106 |   <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
 | 
|---|
| 107 |   href="../ppc/yaboot.xml"
 | 
|---|
| 108 |   xpointer="xpointer(id('contents-yaboot'))"/>
 | 
|---|
| 109 | 
 | 
|---|
| 110 | </sect1>
 | 
|---|