Update lfs-uefi.txt
[linux_from_scratch_hints.git] / lfsppc32.txt
blob5b9bd5aed2f610d23ac1cffa4590dc72c5f24fcc
1 AUTHOR:                 Jimmy Anderson  <jimmy.anderson1057@gmail.com>
3 DATE:                   2011-02-12
5 LICENSE:                GNU Free Documentation License  Version 1.2
7 SYNOPSIS:               How to build LFS for PowerPC (32bit) 
10 DESCRIPTION:
12 Most of the LFS book instructions also work, as is, for building a PowerPC 
13 system.   But not all of them.   A few deviations from the instructions 
14 found in the LFS books are needed to build a PowerPC LFS system.
16 This hint describes how to build LFS versions 5.1.1, 6.3, 6.5, 
17 6.6 & 6.7 for PowerPC.   
19 This hint does not describe how to build the PowerPC kernel or boot
20 loader.   Those are left as an exercise for the reader.   The CLFS
21 book may be helpful in learning how to build a bootloader and kernel 
22 for a PowerPC system.  
24 This hint only describes building PowerPC 32bit architecture.   It  does 
25 not describe how to build LFS for the PowerPC 64 bit machines.
27 PREREQUISITES:
29 A PowerPC machine running the proper tool set is required to build LFS.   
30 A PowerPC eMAC G4 running Fedora 10 is known to work with the instructions 
31 in this hint (except for building LFS 5.1.1).   
33 Familiarity with building LFS for x86 machines.  The reader ought to
34 have built LFS for x86 at least once prior to attempting a build for
35 PowerPC.
38 HINT:
40 Always follow the instructions in the LFS book exactly as written 
41 except for the deviations as described in this hint...
43 The dynamic linker for PowerPC is ld.so.1.   So, in all cases, instead
44 of using the string 'ld-linux.so.2' as found in the LFS book, use 
45 'ld.so.1' instead.
47 Always skip the build step of the grub bootloader package.
48 It is not needed on PowerPC and typically will not even compile for 
49 PowerPC.  
51 LFS provides a 'uname' patch for the coreutils package which is applied 
52 during the Chapter 6 build of coreutils.   The 'uname' patch does not
53 work for PowerPC and the build of coreutils will fail if it is applied.
54 This patch does not appear to be crucial so simply do not apply it during 
55 building of coreutils.   If the fix provided by the 'uname' patch is 
56 important to the reader, a processor independent version of it might be 
57 available somewhere in the CLFS download area.
59 JHALFS can be used to build LFS for PowerPC but the user must download
60 the LFS book, apply the needed PowerPC changes to it, and then point JHALFS
61 at the modified book to use as a 'working copy'.   
63 LFS 5.1.1 specific instructions:
65    (5.1.1 is still interesting cause it is the last of the 2.4 based 
66    LFS books) 
68    Chap 5 & 6:
70    1) use ld.so.1 instead of ld-linux.so.2 when patching gcc specs file. 
71     
72    Chap 5:
73     
74    2) The gcc pass 2 specs patch is broken on PowerPC.   
75       Instead of the patch, you have to go find and fix up the sysv4.h 
76       file up by hand.
77     
78    Chap 6:
79     
80    3) Skip the coreutils uname patch.
81     
82    4) Skip grub bootloader build on ppc.
84    (Fedora 10 does not work for building LFS 5.1.1.  You'll need to 
85     find an older PowerPC distro to build 5.1.1.)
87 LFS 6.3 specific instructions:
89    The attached patch "lfs-6.3bookforppc.patch" can be applied to the 
90    LFS 6.3 release book to create a LFS 6.3 book that will build for 
91    PowerPC.  (It also contains some other changes not related to PowerPC).
93 LFS 6.4 does not build for PowerPC due to tool chain issues and it cannot
94    be easily made to do so.   
96 LFS 6.5 and LFS 6.6 build for PowerPC without any deviations from the book.
98 LFS 6.7:
100     When building zlib in Chapter 6, omit '-mstackrealign' from the
101     definition of CFLAGS.   It is an unsupported compiler option on
102     PowerPC.   
104 LFS 6.8:
106     6.8 is not yet released and so it is too early to say for sure but at 
107     this time, it looks like it may build for PowerPC with the only
108     needed deviation being as described above for LFS 6.7.
111 LITERATURE      :
115 ACKNOWLEDGEMENTS:
117 The excellent work of the LFS development team.
119 CHANGELOG:
121 [2011-02-12]
123 Initial version.