blob: 22e90a7e79d9b48ce9dd2128e058b0e838be1568 [file] [log] [blame]
<section xmlns="http://docbook.org/ns/docbook" version="5.0"
xml:id="manual.intro.setup.prereq" xreflabel="Prerequisites">
<?dbhtml filename="prerequisites.html"?>
<info><title>Prerequisites</title>
<keywordset>
<keyword>ISO C++</keyword>
<keyword>Prerequisites</keyword>
</keywordset>
</info>
<para>
Because libstdc++ is part of GCC, the primary source for
installation instructions is
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://gcc.gnu.org/install/">the GCC install page</link>.
In particular, list of prerequisite software needed to build the library
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://gcc.gnu.org/install/prerequisites.html">
starts with those requirements.</link> The same pages also list
the tools you will need if you wish to modify the source.
</para>
<para>
Additional data is given here only where it applies to libstdc++.
</para>
<para>As of GCC 4.0.1 the minimum version of binutils required to build
libstdc++ is <code>2.15.90.0.1.1</code>.
Older releases of libstdc++ do not require such a recent version,
but to take full advantage of useful space-saving features and
bug-fixes you should use a recent binutils whenever possible.
The configure process will automatically detect and use these
features if the underlying support is present.
</para>
<para>
To generate the API documentation from the sources you will need
Doxygen, see <link linkend="appendix.porting.doc">Documentation
Hacking</link> in the appendix for full details.
</para>
<para>
Finally, a few system-specific requirements:
</para>
<variablelist>
<varlistentry>
<term>linux</term>
<listitem>
<para>
If GCC 3.1.0 or later on is being used on GNU/Linux, an attempt
will be made to use "C" library functionality necessary for
C++ named locale support. For GCC 4.6.0 and later, this
means that glibc 2.3 or later is required.
</para>
<para>
If the 'gnu' locale model is being used, the following
locales are used and tested in the libstdc++ testsuites.
The first column is the name of the locale, the second is
the character set it is expected to use.
</para>
<programlisting>
de_DE ISO-8859-1
de_DE@euro ISO-8859-15
en_GB ISO-8859-1
en_HK ISO-8859-1
en_PH ISO-8859-1
en_US ISO-8859-1
en_US.ISO-8859-1 ISO-8859-1
en_US.ISO-8859-15 ISO-8859-15
en_US.UTF-8 UTF-8
es_ES ISO-8859-1
es_MX ISO-8859-1
fr_FR ISO-8859-1
fr_FR@euro ISO-8859-15
is_IS UTF-8
it_IT ISO-8859-1
ja_JP.eucjp EUC-JP
ru_RU.ISO-8859-5 ISO-8859-5
ru_RU.UTF-8 UTF-8
se_NO.UTF-8 UTF-8
ta_IN UTF-8
zh_TW BIG5
</programlisting>
<para>Failure to have installed the underlying "C" library
locale information for any of the above regions means that
the corresponding C++ named locale will not work: because of
this, the libstdc++ testsuite will skip named locale tests
which need missing information. If this isn't an issue, don't
worry about it. If a named locale is needed, the underlying
locale information must be installed. Note that rebuilding
libstdc++ after "C" locales are installed is not necessary.
</para>
<para>
To install support for locales, do only one of the following:
</para>
<itemizedlist>
<listitem>
<para>install all locales</para>
</listitem>
<listitem>
<para>install just the necessary locales</para>
<itemizedlist>
<listitem>
<para>with Debian GNU/Linux:</para>
<para> Add the above list, as shown, to the file
<code>/etc/locale.gen</code> </para>
<para> run <code>/usr/sbin/locale-gen</code> </para>
</listitem>
<listitem>
<para>on most Unix-like operating systems:</para>
<para><code> localedef -i de_DE -f ISO-8859-1 de_DE </code></para>
<para>(repeat for each entry in the above list) </para>
</listitem>
<listitem>
<para>
Instructions for other operating systems solicited.
</para>
</listitem>
</itemizedlist>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
</variablelist>
</section>