source: final-system/ppc64/yaboot.xml @ 4c9012f

Last change on this file since 4c9012f was 26332de, checked in by Jim Gifford <clfs@…>, 18 years ago

r3599@server (orig r1638): ken | 2006-05-22 16:15:27 -0700
Brown-paper-bag fix that I noticed while trying to build yaboot for chapter 7.

  • Property mode set to 100644
File size: 4.3 KB
Line 
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<screen os="h"><userinput>CFLAGS="${BUILD32}" make PREFIX=/usr</userinput></screen>
93
94    <important>
95      <para>The CFLAGS on the above command are equally critical
96      for a successful install.</para>
97    </important>
98
99    <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
100    href="../ppc/yaboot.xml"
101    xpointer="xpointer(//*[@os='i'])"/>
102
103<screen><userinput>make PREFIX=/usr install 2&gt;&amp;1 &gt;instlog</userinput></screen>
104
105    <para os='k'>To ensure that the install was successful, run the following
106    command:</para>
107
108<screen os='l'><userinput>grep 'powerpc:common64' instlog</userinput></screen>
109
110    <para os='m'>If the command gave you <emphasis>any</emphasis> output
111    (... is incompatible with powerpc:common output) the build is broken and
112    you will have to repeat it with <emphasis>all</emphasis> of the items
113    marked as important.</para>
114
115  </sect2>
116
117  <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
118  href="../ppc/yaboot.xml"
119  xpointer="xpointer(id('contents-yaboot'))"/>
120
121</sect1>
Note: See TracBrowser for help on using the repository browser.