aboutsummaryrefslogtreecommitdiffstats
path: root/chapter05/gcc-exp.xml
blob: 271a306635159f00697d74d72d4868bc7f153be0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<sect2>
<title>Command explanations</title>

<para><userinput>patch -Np1 -i ../gcc-&gcc-patch-version;.patch:</userinput>
This patch fixes a few bug fixes. See
<ulink url="http://www.zipworld.com.au/~gschafer/lfs-tweaks.html"/> for
more details.</para>

<para><userinput>--prefix=/static:</userinput> This is NOT a typo.  GCC hard
codes some paths while compiling and so we need to pass /static as the
prefix during ./configure.  We pass the real install prefix during the
make install command later.</para>

<para><userinput>--enable-languages=c:</userinput> This builds the C
compiler. The C++ compiler will be built in chapter 6, when we rebuild
GCC. Other compilers are available as well. If they are needed,
the --enable-languages parameter may be omitted.</para>

<para><userinput>--enable-threads=posix:</userinput> This enables C++ 
exception handling for multithreaded code.</para>

<para><userinput>--enable-__cxa-atexit:</userinput> This option will result
in C++ shared libraries and C++ programs that are interoperable with other
linux distributions.</para>

<para><userinput>make BOOT_LDFLAGS=-static:</userinput>
This is the equivalent to make LDFLAGS=-static as we use with other
packages to compile them statically.</para>

<para><userinput>ln -s gcc $LFS/static/bin/cc:</userinput> This
creates the $LFS/static/bin/gcc symlink which some packages need.</para>

</sect2>