source: chapter07/libstdc++-pass2.xml@ c4804e8

multilib-10.1
Last change on this file since c4804e8 was c4804e8, checked in by Thomas Trepl <thomas@…>, 4 years ago

Wording

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

  • Property mode set to 100644
File size: 4.6 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-pass2" role="wrap">
9 <?dbhtml filename="gcc-libstdc++-pass2.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 2</title>
18
19 <indexterm zone="ch-tools-libstdcpp-pass2">
20 <primary sortas="a-GCC">GCC</primary>
21 <secondary>tools, libstdc++ pass 2</secondary>
22 </indexterm>
23
24 <sect2 role="package">
25 <title/>
26
27 <para>When building <xref linkend="ch-tools-gcc-pass2"/> we had to defer
28 the installation of the C++ standard library because no suitable compiler
29 was available to compile it. We could not use the compiler built in that
30 section because it is a native compiler and should not be used outside of
31 chroot and risks polluting the libraries with some host components.</para>
32
33 <segmentedlist>
34 <segtitle>&buildtime;</segtitle>
35 <segtitle>&diskspace;</segtitle>
36
37 <seglistitem>
38 <seg>&libstdcpp-tmpp2-sbu;</seg>
39 <seg>&libstdcpp-tmpp2-du;</seg>
40 </seglistitem>
41 </segmentedlist>
42
43 </sect2>
44
45 <sect2 role="installation">
46 <title>Installation of Target Libstdc++</title>
47
48 <note>
49 <para><application>Libstdc++</application> is part of the GCC sources.
50 You should first unpack the GCC tarball and change to the
51 <filename>gcc-&gcc-version;</filename> directory.</para>
52 </note>
53
54 <para>Create a link which exists when building libstdc++ in the gcc tree:</para>
55
56<screen><userinput remap="pre">ln -s gthr-posix.h libgcc/gthr-default.h</userinput></screen>
57
58 <para>Create a separate build directory for libstdc++ and enter it:</para>
59
60<screen><userinput remap="pre">mkdir -v build
61cd build</userinput></screen>
62
63 <para>Prepare libstdc++ for compilation:</para>
64
65<screen arch="default"><userinput remap="configure">../libstdc++-v3/configure \
66 CXXFLAGS="-g -O2 -D_GNU_SOURCE" \
67 --prefix=/usr \
68 --disable-multilib \
69 --disable-nls \
70 --disable-libstdcxx-pch</userinput></screen>
71<screen arch="ml_32,ml_x32,ml_all"><userinput remap="configure">../libstdc++-v3/configure \
72 CXXFLAGS="-g -O2 -D_GNU_SOURCE" \
73 --prefix=/usr \
74 --enable-multilib \
75 --disable-nls \
76 --disable-libstdcxx-pch \
77 --host=x86_64-lfs-linux-gnu</userinput></screen>
78
79 <variablelist>
80 <title>The meaning of the configure options:</title>
81
82 <varlistentry>
83 <term><parameter>CXXFLAGS="-g -O2 -D_GNU_SOURCE"</parameter></term>
84 <listitem>
85 <para>These flags are passed by the top level Makefile when doing
86 a full build of GCC.</para>
87 </listitem>
88 </varlistentry>
89
90 <varlistentry>
91 <term><parameter>--disable-libstdcxx-pch</parameter></term>
92 <listitem>
93 <para>This switch prevents the installation of precompiled
94 include files, which are not needed at this stage.</para>
95 </listitem>
96 </varlistentry>
97
98 <varlistentry arch="ml_32,ml_x32,ml_all">
99 <term><parameter>--enable-multilib</parameter></term>
100 <listitem>
101 <para>This switch is set by default but it is added here
102 explicitly for documentary purpose. The libstdc++ libraries
103 will be built for every arch (m64, m32, mx32) which are
104 made available in <xref linkend="ch-tools-gcc-pass1"/>.</para>
105 </listitem>
106 </varlistentry>
107
108 <varlistentry arch="ml_32,ml_x32,ml_all">
109 <term><parameter>--host=x86_64-pc-linux-gnu</parameter></term>
110 <listitem>
111 <para>Since up to now the cross-compile tools are used. This
112 switch is set to ensure that the headers used for multilib are
113 placed in correct locations where the final system can pick
114 them up.</para>
115 </listitem>
116 </varlistentry>
117
118 </variablelist>
119
120 <para>Compile libstdc++ by running:</para>
121
122<screen><userinput remap="make">make</userinput></screen>
123
124 <para>Install the library:</para>
125
126<screen><userinput remap="install">make install</userinput></screen>
127
128 </sect2>
129
130 <sect2 role="content">
131 <title/>
132
133 <para>Details on this package are located in <xref linkend="contents-gcc" role="."/></para>
134
135 </sect2>
136
137</sect1>
Note: See TracBrowser for help on using the repository browser.