source: chapter05/libstdc++.xml@ eef83ea

ml-11.0 multilib
Last change on this file since eef83ea was 6dfcfecc, checked in by Xℹ Ruoyao <xry111@…>, 3 years ago

Update to new lfs structure

git-svn-id: http://svn.linuxfromscratch.org/LFS/branches/multilib@11986 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689

  • Property mode set to 100644
File size: 4.2 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../general.ent">
5 %general-entities;
6]>
7
8<sect1 id="ch-tools-libstdcpp-pass1" role="wrap">
9 <?dbhtml filename="gcc-libstdc++-pass1.html"?>
10
11 <sect1info condition="script">
12 <productname>gcc-libstdc++</productname>
13 <productnumber>&gcc-version;</productnumber>
14 <address>&gcc-url;</address>
15 </sect1info>
16
17 <title>Libstdc++ from GCC-&gcc-version;, Pass 1</title>
18
19 <indexterm zone="ch-tools-libstdcpp-pass1">
20 <primary sortas="a-GCC">GCC</primary>
21 <secondary>tools, libstdc++ pass 1</secondary>
22 </indexterm>
23
24 <sect2 role="package">
25 <title/>
26
27 <para>Libstdc++ is the standard C++ library. It is needed
28 to compile C++ code
29 (part of GCC is written in C++), but we had to defer its installation
30 when we built <xref linkend="ch-tools-gcc-pass1"/>
31 because it depends on glibc, which was not yet available in the target
32 directory.
33 </para>
34
35 <segmentedlist>
36 <segtitle>&buildtime;</segtitle>
37 <segtitle>&diskspace;</segtitle>
38
39 <seglistitem>
40 <seg>&libstdcpp-tmpp1-sbu;</seg>
41 <seg>&libstdcpp-tmpp1-du;</seg>
42 </seglistitem>
43 </segmentedlist>
44
45 </sect2>
46
47 <sect2 role="installation">
48 <title>Installation of Target Libstdc++</title>
49
50 <note>
51 <para><application>Libstdc++</application> is part of the GCC sources.
52 You should first unpack the GCC tarball and change to the
53 <filename>gcc-&gcc-version;</filename> directory.</para>
54 </note>
55
56 <para>Create a separate build directory for libstdc++ and enter it:</para>
57
58<screen><userinput remap="pre">mkdir -v build
59cd build</userinput></screen>
60
61 <para>Prepare libstdc++ for compilation:</para>
62
63<screen><userinput remap="configure">../libstdc++-v3/configure \
64 --host=$LFS_TGT \
65 --build=$(../config.guess) \
66 --prefix=/usr \
67 --disable-multilib \
68 --disable-nls \
69 --disable-libstdcxx-pch \
70 --with-gxx-include-dir=/tools/$LFS_TGT/include/c++/&gcc-version;</userinput></screen>
71
72 <variablelist>
73 <title>The meaning of the configure options:</title>
74
75 <varlistentry>
76 <term><parameter>--host=...</parameter></term>
77 <listitem>
78 <para>Specifies the use the cross compiler we have just built
79 instead of the one in <filename>/usr/bin</filename>.</para>
80 </listitem>
81 </varlistentry>
82
83 <varlistentry arch="ml_32,ml_x32,ml_all">
84 <term><parameter>--disable-multilib</parameter></term>
85 <listitem>
86 <para>Even when building the multilib version, this switch is
87 given. This is because the additionally built libraries are
88 not required in this stage and some disk space and compile
89 time can be saved.</para>
90 </listitem>
91 </varlistentry>
92
93 <varlistentry>
94 <term><parameter>--disable-libstdcxx-pch</parameter></term>
95 <listitem>
96 <para>This switch prevents the installation of precompiled
97 include files, which are not needed at this stage.</para>
98 </listitem>
99 </varlistentry>
100
101 <varlistentry>
102 <term><parameter>--with-gxx-include-dir=/tools/$LFS_TGT/include/c++/&gcc-version;</parameter></term>
103 <listitem>
104 <para>This is the location where the C++ compiler should search for the
105 standard include files. In a normal build, this information
106 is automatically passed to the libstdc++ <command>configure</command>
107 options from the top level directory. In our case, this information
108 must be explicitly given.</para>
109 </listitem>
110 </varlistentry>
111
112 </variablelist>
113
114 <para>Compile libstdc++ by running:</para>
115
116<screen><userinput remap="make">make</userinput></screen>
117
118 <para>Install the library:</para>
119
120<screen><userinput remap="install">make DESTDIR=$LFS install</userinput></screen>
121
122 </sect2>
123
124 <sect2 role="content">
125 <title/>
126
127 <para>Details on this package are located in
128 <xref linkend="contents-gcc" role="."/></para>
129
130 </sect2>
131
132</sect1>
Note: See TracBrowser for help on using the repository browser.